Ich versuche, Nagios so einzurichten, dass es den Nginx-Dienst auf meinem Load Balancer überwacht, aber es ist mir nicht gelungen, es so einzurichten, dass es anzeigt, dass der Dienst aktiv ist. Die Befehls- und Dienstdefinition finden Sie weiter unten. Es scheint, dass jeder Prozess, der nicht von Root gestartet wird, nicht als ausgeführt angezeigt wird. Der Nginx-Prozess wird von www-data ausgeführt. Ich habe sogar etwas so Einfaches versucht, wie es nach dem „Top“-Prozess suchen zu lassen, den ich unter einem anderen Benutzer ausgeführt habe. Was ich unten dargestellt habe, funktioniert einwandfrei, solange ich einen Prozess auswähle, der von Root ausgeführt wird. Wenn der Prozess von einem anderen Benutzer gestartet wird, wird er als kritisch angezeigt und funktioniert nicht. Irgendwelche Ideen?
define command {
command_name check_nginx
command_line $USER1$/check_procs -c 1: -C nginx
}
define service {
use local-service
host_name my_host
service_description Load Balance Service
check_command check_nginx
}
Antwort1
Nachdem ich alle verschiedenen Optionen des check_proc-Plugins ausprobiert hatte und nicht weiterkam, entschied ich mich für einen anderen Weg. Ich erstellte das folgende Python-Skript und fügte es in das Plugin-Verzeichnis ein. Der Name des Python-Skripts lautet check_service.py. Wenn Sie ihm einen anderen Namen geben, müssen Sie die folgenden Dienste und Befehle entsprechend ändern.
import os
status = os.system('systemctl is-active --quiet nginx')
if status == 768:
print('Critical, Service is not running')
exit(2)
elif status == 0:
print('OK, Service is Running')
exit(0)
Ich habe dann den folgenden Befehl zur Datei commands.cfg hinzugefügt. Das $ARG1$ ist für eine zukünftige Version des Skripts, an dem ich arbeite, vorhanden. Es ist nicht erforderlich.
define command{
command_name check_service
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_service $ARG1$
}
Definierte den Dienst wie folgt
define service {
use local-service
host_name debian
service_description Load Balance Service
check_command check_service
}
Dann habe ich auf dem Client diesen Befehl zur Datei nrpe.cfg hinzugefügt
command[check_service]=python3 /usr/lib/nagios/plugins/check_service.py
Hoffe, dass dies irgendwann jemandem hilft.