IT-Knowledgebase
de DevOps monitoring omd

Nagios kompatible Checks schreiben

Nagios bietet die Möglichkeit in jeder Programmiersprache oder Scriptsprache, die auf dem Worker ausgeführt werden kann eigene Checks zu definieren. Dabei mmuss man lediglich bei der Ausgabe und dem Exit-Code auf bestimmte Dinge achten.

Die Ausgabe

Die Ausgabe bei einem Check soll lediglich den Status und die Ausgabe wiedergeben. Dabei hat es sich als Standard herausgestellt folgendes Beizubehalten.

1STATUS - TEXT | PERF_DATEN
2LONG MESSAGE
3LONG MESSAGE
Stelle Beschreibung
STATUS Gibt einen Nagios kompatiblen Status an (OK,WARNING,CRITICAL,UNKNOWN)
TEXT Ist eine Ausgabe, die bei Thruk z.B. direkt auf der Übersicht erscheint
PERF_DATEN Sind die Performance Daten für einen Check wie z.B. CPU Auslastung oder Usercount (dabei sieht es vor, zuerst den Namen und dann folgende Werte mit einem Semikolon getrennt anzugeben. NAME=WARN;CRIT;MIN;MAX )
LONG MESSAGE Gibt eine Lange Nachricht an. Bei Thruk ist das über ein Hover oder erst in den Details sichtbar. Hier ist html verfügbar

Dabei muss nur der STATUS gesetzt werden bzw. der Text. Es ist nicht nötig eine LONG_MESSAGE oder PERF_DATEN zu setzen

Einige Beispiele wären damit z.B. folgende:

1OK - Es sind ausreichend Ressourcen verfügbar
2
3CRITICAL - Cluster DOWN | count=1;2;4;;
4
5UNKNOWN - Verbindung nicht möglich |
6Die Verbindung zu folgenden Servern im Cluster ist nicht möglich
7hostname1 = UNKNOWN
8hostname2 = UNKNOWN
9hostname3 = OK

Der ExitCode

Der Exit Code spiegelt ebenfalls den Nagios Status wieder und kann in jeder Sprache gesetzt werden.

Status Wert Beschreibung
OK 0 Der Check ist in Ordnung.
WARNING 1 Der Check hat ein Warning. Man sollte wenn man Zeit hat sich das ganze mal anschauen
CRITICAL 2 Es liegt ein kritischer Zustand vor!
UNKNOWN 3 Der Check hat benötigte Angaben nicht oder kann sie nicht bekommen um ein genaueren Status zu geben