Translations of this page:

Nagios

Nagios Plugin API


Hoch zu
Hoch zu: Inhalt
Siehe auch
Siehe auch: Plugin-Überblick, Entwickeln von Plugins für die Nutzung mit Embedded Perl, Performance-Daten

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:

  • mit einem von verschiedenen möglichen Return-Codes enden
  • mindestens eine Zeile Textausgabe an STDOUT zurückliefern


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
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 (kursiv 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 (unterstrichen 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:

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:

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%);
/boot 68 MB (69%);
/home 69357 MB (27%);
/var/log 819 MB (84%);| /boot=68MB;88;93;0;98
/home=69357MB;253404;253409;0;253414
/var/log=818MB;970;975;0;980

Wenn dieses Plugin benutzt wurde, um eine Service-Prüfung durchzuführen, wird der fette Teil der ersten Zeile der Ausgabe (links vom Pipe-Symbol) im $SERVICEOUTPUT$-Makro gespeichert. Der kursive Teil der ersten und folgender Zeilen wird (durch Leerzeichen verbunden) im $SERVICEPERFDATA$-Makro gespeichert. Der unterstrichene Teil der zweiten bis fünften 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 /boot=68MB;88;93;0;98 /home=69357MB;253404;253409;0;253414 /var/log=818MB;970;975;0;980
$LONGSERVICEOUTPUT$/ 15272 MB (77%);\n/boot 68 MB (69%);\n/var/log 819 MB (84%);


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

  • Sie können keinerlei Performance-Daten zurückliefern
  • Sie können nur in der ersten Zeile Performance-Daten zurückliefern
  • Sie können Performance-Daten in nachfolgenden Zeilen zurückliefern (nach der ersten)
  • Sie können Performance-Daten in der ersten und folgenden Zeilen zurückliefern (wie oben gezeigt)


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.

nagios/doku3/pluginapi.txt · Zuletzt geändert: 2008/05/14 14:35 von wolfgang
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0