tux1996
Goto Top

Nagios Check selber schreiben

Guten Tag,

bis jetzt musste ich nie ein Nagios Plugin Schreiben da die benötigten Plugins schon vorhanden waren.
Ich würde gerne einen Nagios Check schreiben der prüft ob php-fpm noch läuft. Dafür hab ich folgendes Skript geschrieben.

#!/bin/bash

systemctl status php-fpm.service | grep "active (running)" > /dev/null  
if [ $? -eq 0 ];then
	echo UP
else
	echo DOWN
fi

Das Skript funktioniert auch soweit jedoch weiß ich nicht wie ich jetzt Nagios mitteilen kann wenn der Status "DOWN" kommt das er denn Current Status auf "CRITICAL" setzt und beim Status "UP" auf Current Status "OK"
Momentan liefert der NRPE Deamon folgende Meldung zurück "NRPE: Command 'check_php-fpm.sh' not defined". Denn Check hab ich natürlich schon in die "/etc/nagios/nrpe.cfg" eingetragen.

Was muss ich noch genau einbauen das Nagios die Statusmeldung verarbeiten kann?

LG,

tux1996

Content-Key: 266852

Url: https://administrator.de/contentid/266852

Printed on: April 25, 2024 at 21:04 o'clock

Member: Cthluhu
Solution Cthluhu Mar 19, 2015 updated at 21:56:02 (UTC)
Goto Top
Hallo,

Für nagios-plugins (auch selbstgeschriebene) gibt es Richtlinien: https://nagios-plugins.org/doc/guidelines.html
Wenn du dich daran hälts, erkennt auch nagios den Zustand deines checks.

mfg

Cthluhu
Member: Cthluhu
Solution Cthluhu Mar 19, 2015 updated at 21:56:07 (UTC)
Goto Top
Hi
Zitat von @tux1996:

Momentan liefert der NRPE Deamon folgende Meldung zurück "NRPE: Command 'check_php-fpm.sh' not defined".
Denn Check hab ich natürlich schon in die "/etc/nagios/nrpe.cfg" eingetragen.
Bzgl "NRPE: Command not defined" liefert google hunderte Fehlerquellen. Am wahrscheinlichsten ist, dass der Pfad nicht passt (unterschiedlich auf lokaler bzw remote Maschine) oder Rechte nicht gesetzt sind (nagios braucht Ausführrechte für systemctl und dein Skript)

mfg

Cthluhu
Member: tux1996
tux1996 Mar 19, 2015 at 21:43:58 (UTC)
Goto Top
Hey Cthluhu,

danke für deine Antwort. Der Nrpe darf das Skript ausführen jedoch versteh ich nicht wie ich die Nagios Status-Code in mein Skript einbauen muss. Ich wer auch offen für einen anderen Lösungsansatz, da ich mir gut vorstellen kann das andere sicher auch die selbe Problematik schon hatten. Mir geht es eigentlich nur darum das ich irgendwie Prüfen kann ob php-fpm läuft.
Member: tux1996
tux1996 Mar 19, 2015 at 21:55:49 (UTC)
Goto Top
Ok es geht jetzt. Es hat der Exit Code gefällt.

#!/bin/bash

systemctl status php-fpm.service | grep "active (running)" > /dev/null  
if [ $? -eq 0 ];then
        echo UP
        exit 0
else
        echo DOWN
        exit 2
fi