check command für Nagios (checkcommands.cfg)
define command{
command_name check_nrpe
command_line /usr/local/nagios/libexec/eventhandlers/event.sh $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$ $HOSTADDRESS$ $SERVICEDESC$
}
* Zusatz für Dienste in services.cfg
event_handler check_nrpe event_handler_enabled 1
* Eventhandler Script
# Variablen Festlegen:
# Variablen werden in der Reihenfolge des checkcommands übergeben:
# (s.o.: /usr/local/nagios/libexec/eventhandlers/event.sh $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$ $HOSTADDRESS$)
# Variable 1 ($1) die übergeben wird, kürzen wir ab und nennen sie "SSTATE" usw....
SSTATE=$1
SSTATETYPE=$2
SATTEMP=$3
HOSTADDRESS=$4
SDESC=$5
# In welchem Status befindet sich der Dienst?
case "$SSTATE" in
OK)
# Der Dienst ist wieder erreichbar, es ist also nichts zu tun...
;;
WARNING)
# Wir kümmern uns hier nicht über warnende Stati, da der Dienst möglicherweise immernoch
# normal läuft...
;;
UNKNOWN)
# Wir wissen nicht was evtl. einen unbekannten Status verursacht, deswegen tun wir nichts...
;;
CRITICAL)
# Der Dienst scheint ein Problem zu haben - vielleicht sollten wir den Dienst
# neu zu starten...
# Ist dies ein "softer" oder ein "harter" Status?
case "$SSTATETYPE" in
# der Dienst befindet sich in einem "soften" Status, d.h. Nagios verursacht gerade die
# Dienst-Überprüfungen erneut durchzuführen, bevor es einen "harten" Status ausgibt und
# die Kontaktpersonen informiert...
SOFT)
# Der wievielte Versuch einer Dienst-Überprüfung wurde gerade ausgeführt?
# Man sollte den Dienst nicht bei dem ersten Versuch neu starten, da es evtl.
# nur ein Fehlalarm ist!
case "$SATTEMP" in
# Der Dienst wird erst neu gestartet, wenn wenn vorerst drei Mal versucht wurde
# den Dienst zu erreichen.
# Falls die Überprüfung ein viertes Mal fehlschlägt (nachdem wir den Dienst
# neu gestartet haben), wechselt der Status in einen "harten" Fehler-Status und
# Nagios informiert die Administratoren über das Problem.
# Hoffentlich startet dieses Skript den Dienst erfolgreich neu, so das die
# vierte Überprüfung hoffentlich eine "softe" Wiederherstellung liefert. Falls dies
# der Fall ist wird niemand informiert, da das Problem automatisch von Nagios
# behoben wurde!
2)
echo -n "Restarting Service (3rd soft critical state)..."
# Aufruf des Init-Skriptes zum Neustart des Services
/usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS -c $SDESC
;;
esac
;;
# Der Dienst ist trotz des Neustarts des Dienstes in einen "harten" Status gewechselt.
# Geben wir ihm trotzdem eine letzte Chance, trotzdem die Administratoren bereits von
# Nagios über das Problem informiert wurden (ausser es wurden Benachrichtigungen für diesen
# Dienst deaktiviert).
HARD)
echo -n "Restarting service..."
# Aufruf des Init-Skriptes zum Neustart des Services
/usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS -c $SDESC
;;
esac
;;
esac
exit 0
* NRPE.CFG auf dem Windows Server (Beispiel MS-Exchange 2003)
command[NT_Exchange]=C:\Programme\Nagios_NRPE\Batches\exchange.bat
* HINWEIS: Da der Parameter $SERVICEDESC$ mit übergeben wird, muss der command für die Batch genau so heissen, wie der in Nagios überwachte Dienst !!
* Inhalt exchange.bat
net start msexchangemta net start msexchangeis net start msexchangesa net start msexchangemgmt net start smtpsvc net start resvc net start pop3svc net start imap4svc