În ghidul „ Cum instalați și configurați monitorizarea Sensu pe CentOS 7 ”, ați învățat cum să configurați un server Sensu. Acest tutorial este a doua parte, unde veți învăța cum să adăugați un client Sensu. Un client Sensu este un server pe care Sensu îl monitorizează.
Presupun că clientul Sensu este o mașină virtuală CentOS 7. Conectați-vă la SSH și urmați pașii de mai jos. Nu va trebui să modificați nimic pe serverul Sensu. Atâta timp cât clientul Sensu se autentifică cu succes cu serverul Sensu, verificările vor fi executate automat.
Înainte de a începe, asigurați-vă că firewall-ul dvs. este configurat corect. Cu o configurație implicită, deschideți porturile TCP de ieșire 5671și 5672.
Pasul 1: Adăugați depozitul Sensu
Pachetul sensu-clientnu se află în depozitele CentOS implicite. Adăugați depozitul lipind următorul conținut în fișier /etc/yum.repos.d/sensu.repo:
[sensu]
name=sensu
baseurl=https://sensu.global.ssl.fastly.net/yum/$releasever/$basearch/
gpgcheck=0
enabled=1
Apoi, actualizați yumși instalați sensu-client:
yum update
yum install sensu
Toate serviciile ( sensu-server, sensu-clientși sensu-api) vor fi instalate prin instalarea sensupachetului. Puteți ignora în siguranță toate serviciile, cu excepția celor pe sensu-clientcare le vom folosi. Nu începeți încă serviciul.
Pasul 2: Instalați pluginurile necesare
Modelul Sensu este de a distribui sarcina peste clienți, care rezultă din executarea verificărilor și împingerea rezultatelor verificării. Prin urmare, trebuie să instalați plugin-uri Sensu pe clienții înșiși, mai degrabă decât pe serverul Sensu. Unele pluginuri sunt compilate local, ceea ce înseamnă că vom avea nevoie de instrumente de construire pentru clienți:
yum groupinstall "Development tools"
Următoarele pluginuri sunt foarte populare și sunt utilizate pentru multe verificări. Executați fiecare din aceste comenzi pentru a instala plugin-urile după ce pachetele de instrumente de dezvoltare au fost instalate. În funcție de dimensiunea serverului dvs., acest lucru poate dura puțin:
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
Pasul 3: Adăugați fișiere de configurare
Vom adăuga patru fișiere de configurare pentru clientul Sensu.
-
/etc/sensu/conf.d/client.json:
Acest fișier conține abonamente, adresa IP a clientului Sensu și numele clientului. Înlocuiți valorile ipaddressși hostnamecu valorile care descriu clientul pe care îl adăugați. De asemenea, specificați abonamentele definite pe serverul Sensu sau, dacă nu aveți, eliminați întreaga subscriptionssecțiune. Nu uitați să eliminați virgula după namece faceți:
{
"client": {
"address": "-----ipaddress-----",
"environment": "production",
"name": "-----hostname-----",
"subscriptions": [
"linux"
]
}
}
-
/etc/sensu/conf.d/transport.json:
În acest fișier, definim transportul utilizat. În mod implicit, transportul utilizat este RabbitMQ. Lipiți următorul conținut în fișier. Nu trebuie modificate valori:
{
"transport": {
"name": "rabbitmq",
"reconnect_on_error": true
}
}
-
/etc/sensu/conf.d/rabbitmq.json:
Serverul RabbitMQ și datele de acreditare sunt specificate în acest fișier. Înlocuiți hostnamecu numele DNS. În mod implicit, portul este 5672destinat conexiunilor necriptate. Utilizatorul și parola RabbitMQ ar trebui să fie înlocuite, de asemenea. Aceste detalii pot diferi pentru fiecare client Sensu sau pot fi aceleași pentru toți clienții. Aceasta este o decizie practică care este luată de utilizator.
vhostEste /în mod implicit , dar este schimbat de multe ori la /sensu. Dacă nu sunteți sigur pe care să-l utilizați, încercați ambele:
{
"rabbitmq": {
"host": "-----hostname-----",
"password": "-----rabbitmq_password-----",
"port": 5672,
"user": "-----username-----",
"vhost": "/sensu"
}
}
-
/etc/sensu/conf.d/checks.json:
Sensu acceptă două tipuri de verificări: verificări autonome și controale de abonament. Verificările abonamentelor sunt definite pe serverul Sensu, iar abonamentele sunt definite în client.jsonfișier pe un client Sensu. Verificările autonome sunt verificări care sunt definite chiar de clienții Sensu. Acestea sunt de obicei verificări care se aplică numai unui anumit server. De exemplu, o verificare care ar fi într-un abonament este o verificare pentru a vedea dacă serverul web este încă în execuție. O verificare autonomă ar putea fi o verificare pentru a vedea dacă serverul A poate ajunge la serverul B. Niciun alt server nu are nevoie de această verificare.
Verificările individuale sunt definite în acest fișier. Mai jos veți găsi un exemplu de checks.jsonfișier cu câteva exemple de verificări autonome:
{
"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
}
}
}
După ce ați terminat configurarea clientului Sensu, modificați drepturile:
chown -R sensu:sensu /etc/sensu/conf.d
Pasul 4: dați permisiunile sensuutilizatorului
Verificările sunt executate ca utilizator sensu. Desigur, acest utilizator are drepturi limitate. Cu toate acestea, unele verificări au nevoie de rootpermisiuni pentru a executa. Vom permite utilizatorului sensusă execute orice verificare, rootdar să limităm celelalte permisiuni.
Lipiți următorul conținut în fișier /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 *
Primele două linii definesc calea implicită care vă permite să specificați doar numele scriptului în comanda de verificare, mai degrabă decât pe întreaga cale. De exemplu, utilizarea simplă a comenzii sudo check-process.rb -p mysqldva funcționa fără a fi necesar să specificăm întreaga cale ( /opt/sensu/embedded/bin/check-process.rb -p mysqld).
Celelalte linii permit sensuutilizatorului să execute orice script de validare sub forma root.
În cele din urmă, porniți sensu-clientserviciul și porniți-l automat la pornire:
systemctl start sensu-client
systemctl enable sensu-client
Dacă aveți Uchiwa instalat, noul client ar trebui să apară în listă. În caz contrar, debugați-l sensu-clientinspectând fișierul jurnal/var/log/sensu/sensu-client.log