Nagios Logo

Andere Ressourcen


Wenn Sie planen, Ihren eigenen Plugins für Nagios zu schreiben, dann besuchen Sie folgende Ressourcen:

Plugin-Überblick


Scripts und ausführbare Programme müssen (mindestens) zwei Dinge tun, um als Nagios-Plugins zu funktionieren:

Die inneren Abläufe Ihres Plugins sind für Nagios unwichtig. Ihr Plugin könnte den Zustand eines TCP-Ports prüfen, eine Datenbankabfrage durchführen, den freien Plattenplatz ermitteln oder was immer benötigt wird, um etwas zu prüfen. Die Einzelheiten hängen davon ab, was zu prüfen ist - das liegt an Ihnen.

Return-Code


Nagios ermittelt den Zustand eines Hosts oder Service über die Auswertung des Return-Codes des Plugins. Die folgenden Tabellen zeigen eine Liste von gültigen Return-Codes zusammen mit ihren entsprechenden Service- oder Host-Zuständen.

Plugin Return-CodeService-ZustandHost-Zustand
0OKUP
1WARNINGUP oder DOWN/UNREACHABLE*
2CRITICALDOWN/UNREACHABLE
3UNKNOWNDOWN/UNREACHABLE

Anmerkung: Wenn die use_aggressive_host_checking-Option aktiviert ist, dann ergibt ein Return-Code von 1 einen Host-Zustand "DOWN" oder "UNREACHABLE". Andernfalls ergibt ein Return-Code von 1 einen Host-Zustand "UP". Der Prozess, durch den Nagios ermittelt, ob ein Host DOWN oder UNREACHABLE ist, wird hier erklärt.

Spezifikation der Plugin-Ausgabe(n)


Als Minimum sollten Plugins mindestens eine Zeile Textausgabe zurückliefern. Beginnend mit Nagios 3 können Plugins mehrere Zeilen Ausgaben erzeugen. Plugins können zusätzlich Performance-Daten zurückliefern, die von externen Applikationen verarbeitet werden können. Das grundlegende Format für Plugin-Ausgaben ist wie folgt:

TEXT OUTPUT | OPTIONAL PERFDATA
LONG TEXT LINE 1
LONG TEXT LINE 2
...
LONG TEXT LINE N
| PERFDATA LINE 2
PERFDATA LINE 3
...
PERFDATA LINE N

Die Performance-Daten (in orange dargestellt) sind optional. Wenn ein Plugin Performance-Daten in der Ausgabe zurückliefert, dann müssen die Performance-Daten von den anderen Textausgaben mit einem Pipe-Symbol (|) getrennt werden. Zusätzliche Zeilen von langen Textausgaben (in blau dargestellt) sind ebenso optional.

Plugin-Beispielausgaben


Nun ein paar Beispiele von möglichen Plugin-Ausgaben...

Fall 1: Eine Zeile Ausgabe (nur Text)
Angenommen, wir haben ein Plugin, das eine Zeile ausgibt, dann sieht das wie folgt aus:

DISK OK - free space: / 3326 MB (56%);

Wenn dieses Plugin benutzt wurde, um eine Service-Prüfung durchzuführen, wird die gesamte Zeile der Ausgabe im $SERVICEOUTPUT$-Makro gespeichert.

Fall 2: Eine Zeile Ausgabe (Text und Performance-Daten)
Ein Plugin kann optionale Performance-Daten zurückliefern, die von externen Applikationen benutzt werden. Um dies zu tun, müssen die Performance-Daten von der Textausgabe durch ein Pipe-Symbol (|) wie folgt getrennt werden:

DISK OK - free space: / 3326 MB (56%);
 | 
/=2643MB;5948;5958;0;5968

Wenn dieses Plugin benutzt wird um eine Service-Prüfung auszuführen, dann wird der rote Teil der Ausgabe (links von der Pipe) im $SERVICEOUTPUT$ Makro gespeichert, während der orange Teil der Ausgabe (rechts von der Pipe) im $SERVICEPERFDATA$ Makro gespeichert wird.

Fall 3: Mehrere Zeilen Ausgaben (Text und Performance-Daten)
Ein Plugin kann optional mehrere Zeilen von Text und Perforance-Daten wie folgt zurückliefern:

DISK OK - free space: / 3326 MB (56%); | /=2643MB;5948;5958;0;5968
/ 15272 MB (77%);
/home 69357 MB (27%); |  /=2643MB;5948;5958;0;5968
/home=69357MB;253404;253409;0;253414

Wenn dieses Plugin benutzt wurde, um eine Service-Prüfung auszuführen, wird der rote Teil der ersten Zeile der Ausgabe (links von der Pipe) im $SERVICEOUTPUT$-Makro gespeichert. Der orange Teil der ersten und folgender Zeilen wird (durch Leerzeichen verbunden) im $SERVICEPERFDATA$-Makro gespeichert. Der blaue Teil ab der zweiten Zeile der Ausgabe wird (mit maskierten Newlines) verkettet und im $LONGSERVICEOUTPUT$-Makro gespeichert.

Der endgültige Inhalt jedes Makros ist wie folgt:

MakroWert
$SERVICEOUTPUT$DISK OK - free space: / 3326 MB (56%);
$SERVICEPERFDATA$/=2643MB;5948;5958;0;5968 /home=69357MB;253404;253409;0;253414
$LONGSERVICEOUTPUT$/ 15272 MB (77%);\n/home 69357 MB (27%);

Mit Blick auf mehrere Zeilen Ausgaben haben Sie die folgenden Möglichkeiten, Performance-Daten zurückzuliefern:

Längenbeschränkungen von Plugin-Ausgaben


Nagios wird nur die ersten vier KB an Daten lesen, die ein Plugin zurückliefert. Dies wird getan, um durchgedrehte Plugins davon abzuhalten, Megabyte oder Gigabyte an Daten an Nagios zurückzuliefern. Diese Beschränkung von vier KB kann einfach geändert werden, wenn Sie das brauchen. Ändern Sie einfach den Wert der MAX_PLUGIN_OUTPUT_LENGTH-Definition in der include/nagios.h.in-Datei der Source-Code-Distribution und rekompilieren Sie Nagios. Mehr müssen Sie nicht tun!

Beispiele


Wenn Sie nach Beispiel-Plugins suchen, um sie zu studieren, würde ich empfehlen, dass Sie die offiziellen Nagios-Plugins herunterladen und den Code von verschiedenen C-, Perl- und Shell-Script-Plugins ansehen. Informationen, wie Sie die offiziellen Plugins besorgen können, finden Sie hier.

Perl-Plugins


Nagios bietet einen optionalen eingebauten Perl-Interpreter (embedded Perl interpreter), der die Ausführung von Perl-Plugins beschleunigen kann. Mehr Informationen zur Entwicklung von Perl-Plugins zur Nutzung mit dem eingebauten Perl-Interpreter finden Sie hier.

Siehe auch Siehe auch: Plugin-Überblick, Developing Plugins For Use With Embedded Perl, Performance-Daten

English Deutsch 日本語

Inhaltsverzeichnis