Einleitung
Nagios wurde entwickelt um Plugins zusätzlich zu den normalen Status-Daten die Rückgabe von optionalen Leistungsdaten zu ermöglichen. Diese können dann an externe Applikationen weitergereicht werden, um dort verarbeitet zu werden. Eine Beschreibung der verschiedenen Arten von Leistungsdaten folgt nachstehend, genauso wie Informationen über die Weiterverarbeitung der Leistungsdaten...
Typen der Leistungsdaten
Es gibt vor allem zwei Kategorien von Leistungsdaten, die von Nagios verarbeitet werden können:
Überprüfungs-Leistungsdaten sind interne Daten, die sich auf die aktuelle Ausführung einer Host- oder Dienst-Überprüfung beziehen. Diese beinhalten z.B. Werte wie die service check latency (mit wieviel "Verspätung" vom eigentlichen Zeitpunkt wurde die Dienst-Überprüfung ausgeführt) und die Anzahl von Sekunden die die Ausführung der Host- bzw. Dienst-Überprüfung gedauert hat, beinhalten. Dieser Typ der Leistungsdaten ist für alle Überprüfungen verfügbar. Das $EXECUTIONTIME$-Makro kann benutzt werden, um die Anzahl an Sekunden zu ermitteln, die eine Dienst- oder Host-Überprüfung gelaufen ist. Das $LATENCY$-Makro kann benutzt werden, um zu ermitteln mit wieviel "Verspätung" zum eigentlichen Plan die Dienst-Überprüfung ausgeführt wurde (Host-Überprüfungen haben immer eine null-Verspätung, da sie nur ausgeführt werden, wenn ein regulär überprüfter Dienst nicht zur Verfügung steht).
Plugin-Leistungsdaten sind externe Daten, die sich auf das Plugin beziehen, dass für die Dienst- oder Host-Überprüfung eingesetzt
wurde. Plugin-spezifische Daten können z.B. Dinge wie den prozentualen Paket-Verlust, freien Festplattenplatz, Prozessorlast, Anzahl
eingeloggter User, eigentlich jede Art von nominalen Informationen enthalten, die das Plugin erfässt, wenn es ausgeführt wird.
Plugin-spezfische Leistungsdaten sind optional und werden nicht von allen Plugins unterstützt. Zu diesem Zeitpunkt (Nagios-Plugins 1.3.0)
unterstützt wohl nur das check_http-Plugin diese Leistungsdaten zuverlässig. Für 1.4.0 sollen allerdings alle Plugins der Distribution
diese Leistungsdaten unterstützen. Plugin-spezifische Leistungsdaten (falls sie das Plugin zur Verfügung stellt) können durch das
$PERFDATA$-Makro ausgelesen werden.
Weiter unten gibt es noch weitere Informationen darüber, wie Plugins Leistungsdaten an Nagios zurückgeben müssen, um mit dem $PERFDATA$-Makro
ausgelesen werden zu können.
Plugin-Unterstützung von Leistungsdaten
Normalerweise geben Plugins eine einzelne Textzeile zurück, die den Status und einige Messdaten enthält. Z.B. gibt das check_plugin eine Textzeile wie folgt zurück:
Mit solch einer Ausgabe wird die gesamte Textzeile in dem $OUTPUT$-Makro zur Verfügung gestellt.
Um nun die Plugin-spezifischen Leistungsdaten an Nagios weiterzugeben, muss die Ausgabe des Plugins erweitert werden. Dafür muss das Plugin die normale Textzeile wie üblich ausgeben, nun allerdings gefolgt von einem "Pipe"-Zeichen (|) und den Leistungsdaten. Wurde das check_ping-Plugin angepasst müsste die Ausgabe wie folgt aussehen, um den prozentualen Paket-Verlust sowie die Round-Trip-Zeit als Leistungsdaten mit auszugeben:
Erkennt Nagios solch eine Ausgabe, teilt es die Zeile in zwei Teile: alles vor dem Pipe-Zeichen wird als "normale" Plugin-Ausgabe behandelt, alles nach dem Pipe-Zeichen als Plugin-spezifische Leistungsdaten. Die "normale" Ausgabe wird in dem $OUTPUT$-Makro gespeichert, die optionalen Leistungsdaten in dem $PERFDATA$-Makro. In dem vorangegangenen Beispiel enthält das $OUTPUT$-Makro "PING ok - Packet loss = 0%, RTA = 0.80 ms" (ohne Anführungszeichen) und das $PERFDATA$-Makro enthält "percent_packet_loss=0, rta=0.80" (auch ohne Anführungszeichen).
Aktivierung der Verarbeitung von Leistungsdaten
Falls man die Leistungsdaten verarbeiten lassen will, muss man drei Dinge tun:
Als erstes muss man die process_performance_data-Option in der Haupt-Konfigurationsdatei aktivieren.
Als zweites muss man Nagios mit den richtigen Typ von Leistungsdaten-Verarbeitung neu kompilieren. Hierfür gibt es im Moment zwei Möglichkeiten:
Zuletzt muss man alle notwendigen Direktiven und Befehls-Definitionen in den Konfigurationsdateien so einstellen, dass diese die Leistungsdaten benutzen. Die genauen Angaben hierzu sind abhängig vom benutzten Typ der Leistungsdaten, der mit Nagios kompiliert wurde. Klicken Sie auf den Link um für die entsprechende Option die richtigen Einstellungen zu finden.
Post-Processing Options
Wir nehmen an das man die Leistungsdaten die man von Nagios erhält anschliessend weiterverarbeiten will. Falls nicht, warum sollte man dann überhaupt die Leistungsdaten in Nagios aktivieren?
Was man mit den Leistungsdaten anstellt, die man von Nagios erhält, liegt komplett in den eigenen Händen. Schreibt man die Leistungsdaten z.B. in eine Textdatei, könnte man einen Cronjob erzeugen, der die Einträge in diesen Dateien mit weiterverarbeitet rrdtool, um sie in eine Datenbank zu bringen oder Grafiken zu erzeugen...