Trinn 1: Legg til Sensu-depotet
Trinn 2: Installer nødvendige plugins
Trinn 3: Legg til konfigurasjonsfiler
Trinn 4: Gi tillatelser til sensu-brukeren
I veiledningen " Hvordan installere og konfigurere Sensu-overvåking på CentOS 7 " lærte du hvordan du setter opp en Sensu-server. Denne opplæringen er den andre delen, hvor du lærer hvordan du legger til en Sensu-klient. En Sensu-klient er en server som Sensu overvåker.
Jeg antar at Sensu-klienten er en CentOS 7 virtuell maskin. Logg på SSH og følg trinnene nedenfor. Du trenger ikke å endre noe på Sensu-serveren. Så lenge Sensu-klienten autentiserer seg med Sensu-serveren, vil sjekker automatisk bli utført.
Før vi setter i gang, sørg for at brannmuren din er riktig konfigurert. Med et standardoppsett åpner du utgående TCP-porter 5671og 5672.
Trinn 1: Legg til Sensu-depotet
Pakken sensu-clienter ikke i standard CentOS-lagrene. Legg til depotet ved å lime inn følgende innhold i filen /etc/yum.repos.d/sensu.repo:
[sensu]
name=sensu
baseurl=https://sensu.global.ssl.fastly.net/yum/$releasever/$basearch/
gpgcheck=0
enabled=1
Oppdater yumog installer deretter sensu-client:
yum update
yum install sensu
Alle tjenester ( sensu-server, sensu-clientog sensu-api) vil bli installert ved å installere sensupakken. Du kan trygt ignorere alle tjenester bortsett fra den sensu-clientvi skal bruke. Ikke start tjenesten ennå.
Trinn 2: Installer nødvendige plugins
Sensus modell er å fordele belastning over klienter som er resultatet av å utføre sjekker og pushe sjekkresultater. Som et resultat må du installere Sensu-plugins på selve klientene i stedet for på Sensu-serveren. Noen plugins er kompilert lokalt, noe som betyr at vi trenger byggeverktøy på klientene:
yum groupinstall "Development tools"
Følgende plugins er veldig populære og brukes til mange sjekker. Utfør hver av disse kommandoene for å installere pluginene når utviklingsverktøypakkene er installert. Avhengig av størrelsen på serveren din, kan dette ta litt tid:
sensu-install -p uptime-checks
sensu-install -p process-checks
sensu-install -p http
sensu-install -p filesystem-checks
sensu-install -p cpu-checks
sensu-install -p memory-checks
sensu-install -p disk-checks
sensu-install -p load-checks
sensu-install -p network-checks
Trinn 3: Legg til konfigurasjonsfiler
Vi vil legge til fire konfigurasjonsfiler til Sensu-klienten.
/etc/sensu/conf.d/client.json:
Denne filen inneholder abonnementer, IP-adressen til Sensu-klienten og klientnavnet. Bytt ut verdiene ipaddressog hostnamemed verdier som beskriver klienten du legger til. Spesifiser også abonnementer definert på Sensu-serveren eller, hvis du ikke har noen, fjern hele subscriptionsdelen. Ikke glem å fjerne kommaet etter namehvis du gjør:
{
"client": {
"address": "-----ipaddress-----",
"environment": "production",
"name": "-----hostname-----",
"subscriptions": [
"linux"
]
}
}
/etc/sensu/conf.d/transport.json:
I denne filen definerer vi transporten som brukes. Som standard er transporten som brukes RabbitMQ. Lim inn følgende innhold i filen. Ingen verdier må endres:
{
"transport": {
"name": "rabbitmq",
"reconnect_on_error": true
}
}
/etc/sensu/conf.d/rabbitmq.json:
RabbitMQ-serveren og legitimasjonen er spesifisert i denne filen. Erstatt hostnamemed DNS-navnet. Som standard er porten 5672for ukrypterte tilkoblinger. RabbitMQ-brukeren og passordet bør også byttes ut. Disse detaljene kan variere for hver Sensu-klient eller være den samme for alle klienter. Dette er en praktisk avgjørelse som tas av brukeren.
Det vhoster /som standard, men det endres ofte til /sensu. Hvis du ikke er sikker på hvilken du skal bruke, prøv begge:
{
"rabbitmq": {
"host": "-----hostname-----",
"password": "-----rabbitmq_password-----",
"port": 5672,
"user": "-----username-----",
"vhost": "/sensu"
}
}
/etc/sensu/conf.d/checks.json:
Sensu støtter to typer sjekker: frittstående sjekker og abonnementssjekker. Abonnementssjekker er definert på Sensu-serveren og abonnementene er definert i client.jsonfilen på en Sensu-klient. Frittstående sjekker er sjekker som er definert på Sensu-klientene selv. Dette er vanligvis kontroller som kun gjelder for én bestemt server. For eksempel, en sjekk som vil være i et abonnement er en sjekk for å se om webserveren fortsatt kjører. En frittstående sjekk kan være en sjekk for å se om server A kan nå server B. Ingen annen server trenger den kontrollen.
Frittstående kontroller er definert i denne filen. Nedenfor finner du et eksempel på en checks.jsonfil med noen eksempler på frittstående sjekker:
{
"checks": {
"httpd": {
"command": "sudo check-process.rb -p httpd",
"handlers": [
"default",
"pushover"
],
"interval": 180,
"occurences": 3,
"refresh": "1800",
"standalone": true,
"ttl": 1200
},
"mysqld": {
"command": "sudo check-process.rb -p mysqld",
"handlers": [
"default",
"pushover"
],
"interval": 180,
"occurences": 3,
"refresh": "1800",
"standalone": true,
"ttl": 1200
}
}
}
Etter at du har fullført konfigurasjonen av Sensu-klienten, endre rettighetene:
chown -R sensu:sensu /etc/sensu/conf.d
Trinn 4: Gi tillatelser til sensubrukeren
Kontroller utføres som bruker sensu. Naturligvis har denne brukeren begrensede rettigheter. Noen kontroller trenger imidlertid roottillatelser for å utføres. Vi vil tillate brukeren sensuå utføre en hvilken som helst sjekk, rootmen begrense dens andre tillatelser.
Lim inn følgende innhold i filen /etc/sudoers.d/sensu:
Defaults:sensu
secure_path=/opt/sensu/embedded/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
sensu ALL=(ALL) NOPASSWD: /opt/sensu/embedded/bin/check*.rb *
sensu ALL=(ALL) NOPASSWD: /opt/sensu/embedded/bin/metrics*.rb *
De to første linjene definerer standardbanen som lar deg spesifisere kun skriptnavnet i kontrollkommandoen i stedet for hele banen. For eksempel vil bare bruk av kommandoen sudo check-process.rb -p mysqldfungere uten å måtte spesifisere hele banen ( /opt/sensu/embedded/bin/check-process.rb -p mysqld).
De andre linjene lar sensubrukeren kjøre et hvilket som helst kontrollskript som root.
Til slutt, start sensu-clienttjenesten og start den automatisk ved oppstart:
systemctl start sensu-client
systemctl enable sensu-client
Hvis du har Uchiwa installert, skal den nye klienten vises i listen. Hvis ikke, feilsøk sensu-clientved å inspisere loggfilen/var/log/sensu/sensu-client.log