Puncte:0

Nagios check_procs nu raportează procesele care nu sunt generate de root

drapel ph

Încerc să configurez Nagios pentru a monitoriza serviciul nginx pe echilibrerul meu de încărcare, dar nu am reușit să-l fac să arate că serviciul este activ. Definiția comenzii și a serviciului este mai jos. Se pare că orice proces care nu este generat de rădăcină nu se va afișa ca rulant. Procesul nginx este rulat de www-data. Am încercat chiar și ceva la fel de simplu, cum ar fi să verifice procesul „de sus” pe care îl rulam sub alt utilizator. Ceea ce am prezentat mai jos funcționează bine atâta timp cât aleg un proces rulat de root. Dacă procesul este generat de orice alt utilizator, acesta se arată ca fiind critic și nu funcționează. Ceva gânduri?

    define comanda {
        nume_comandă verifica_nginx
        linia de comandă $USER1$/check_procs -c 1: -C nginx
}


definește serviciul {
   utilizați serviciul local
   numele_gazdă gazda_mea
   service_description Serviciul de echilibrare a încărcăturii
   check_command check_nginx
}
tbielaszewski avatar
drapel ng
gânduri: 1. ceva ciudat se întâmplă cu sistemul de operare, deoarece check_procs doar citește informații din /proc, așa că poate un container sau un mecanism de securitate limitează ceea ce poți vedea. 2. jucați cu opțiunea ` -u, --user=USER` și poate ` -g, --cgroup-hierarchy`
Jim Miller avatar
drapel ph
De fapt, am încercat opțiunea de utilizator, dar nu am avut noroc. Am ajuns să merg pe un alt traseu și am scris un plugin/script Python pentru a realiza acest lucru. Detaliile vor fi mai jos.
Puncte:0
drapel ph

După ce am încercat toate opțiunile diferite incluse cu pluginul check_proc și nu am ajuns nicăieri, am decis să merg pe o altă cale. Am creat următorul script python și l-am inclus în directorul de pluginuri. Numele scriptului python este check_service.py. Dacă numiți altceva, va trebui să modificați serviciile și comenzile de mai jos în consecință.

   import os

status = os.system('systemctl is-active --quiet nginx')
dacă starea == 768:
  print('Critic, serviciul nu rulează')
  ieșire (2)
stare elif == 0:
 print('OK, serviciul rulează')
 ieșire(0)

Am adăugat apoi următoarea comandă în fișierul commands.cfg. $ARG1$ este acolo pentru o versiune viitoare a scriptului la care lucrez. Nu este necesar.

definește comanda{
    nume_comandă serviciu_verificare
    linia de comandă $USER1$/check_nrpe -H $HOSTADDRESS$ -c serviciu_verificare $ARG1$
    }

Am definit serviciul astfel

definește serviciul {
    utilizați serviciul local
    nume_gazdă debian
    service_description Serviciul de echilibrare a încărcăturii
    check_command check_service
    }

Apoi pe client am adăugat această comandă în fișierul nrpe.cfg

comandă[check_service]=python3 /usr/lib/nagios/plugins/check_service.py

Sper că asta ajută pe cineva undeva pe drum.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.