Wichtig: Nagios kann auf zwei verschiedene Arten konfiguriert werden, um Leistungsdaten zu verarbeiten. Diese Dokumentation beschreibt, wie man die Verarbeitung von Leistungsdaten konfiguriert, wenn Nagios mit der Unterstützung für die Standard Leistungsdaten-Option (mit der Benutzung des --with-default-perfdata-Argument in dem ./configure-Skript) kompiliert wurde.
Einleitung
Wenn Nagios mit dieser Option für Leistungsdaten kompiliert wurde, hat man die Möglichkeit einen Befehl zu definieren, der ausgeführt wird, um die Leistungsdaten nach einer Host- und/oder Dienst-Überprüfung zu verarbeiten. Dies ist die flexibelste Methode um Leistungsdaten zu verarbeiten. Dafür erzeugt diese Variante aber einen nicht zu verachtenden System-Overhead, da Nagios einen neuen Prozess erzeugen muss, um den definierten Befehl auszuführen.
Falls man die Leistungsdaten für die spätere Verarbeitung nur in einer oder mehreren Textdateien speichern möchte, sollte man Nagios mit der Option für die Datei-basierte Erfassung der Leistungsdaten konfigurieren und kompilieren. Das direkte Schreiben der Leistungsdaten in eine oder mehrere Dateien ist um einiges schneller und verbraucht weniger System-Ressourcen als die Standard-Methode (die immer einen neuen Prozess starten muss, um die Leistungsdaten zu verarbeiten).
Verarbeitung von Host-Leistungsdaten
Falls man Host-Leistungsdaten verarbeiten will, muss man wie folgt eine host_perfdata_command-Directive in die Haupt-Konfigurationsdatei hinzufügen:
host_perfdata_command=<befehls_name>
Diese Directive wird benutzt, um einen Befehl anzugeben, der nach jeder Host-Überprüfung ausgeführt wird, um die Leistungsdaten zu verarbeiten. Ein Eintrag in der Haupt-Konfigurationsdatei könnte wie folgt aussehen:
host_perfdata_command=process-host-perfdata
Der Name des Befehls, der mit der host_perfdata_command-Directive angegeben wird, muss ein gültiger Befehl aus der der Objekt-Konfigurationsdatei sein. In dem hier definierten Befehl können alle für Host-Leistungsdaten gültige Makros benutzt werden.
Eine beispielhafte Befehls-Definition, die die Leistungsdaten des Hosts (letzter Zeitpunkt der Host-Überprüfung, Zeitpunkt der Host-Überprüfung, Leistungsdaten, usw.) an eine Datei anhängt, könnte wie folgt aussehen. Die verschiedenen Leistungsdaten werden dabei durch Tabulatoren getrennt in die Datei geschrieben.
define command{
command_name process-host-perfdata
command_line /bin/echo -e "$LASTCHECK$\t$HOSTNAME$\t$HOSTSTATE$\t$HOSTATTEMPT$\t$STATETYPE$\t$EXECUTIONTIME$\t$OUTPUT$\t$PERFDATA$" >> /usr/local/nagios/var/host-perfdata
}
Verarbeitung von Dienst-Leistungsdaten
Falls man Dienst-Leistungsdaten verarbeiten will, muss man wie folgt eine service_perfdata_command-Directive in die Haupt-Konfigurationsdatei hinzufügen:
service_perfdata_command=<befehls_name>
Diese Directive wird benutzt, um einen Befehl anzugeben, der nach jeder Dienst-Überprüfung ausgeführt wird, um die Leistungsdaten zu verarbeiten. Ein Eintrag in der Haupt-Konfigurationsdatei könnte wie folgt aussehen:
service_perfdata_command=process-service-perfdata
Der Name des Befehls, der mit der service_perfdata_command-Directive angegeben wird, muss ein gültiger Befehl aus der der Objekt-Konfigurationsdatei sein. In dem hier definierten Befehl können alle für Dienst-Leistungsdaten gültige Makros benutzt werden.
Eine beispielhafte Befehls-Definition, die die Leistungsdaten des Diensts (letzter Zeitpunkt der Dienst-Überprüfung, Zeitpunkt der Dienst-Überprüfung, Leistungsdaten, usw.) an eine Datei anhängt, könnte wie folgt aussehen. Die verschiedenen Leistungsdaten werden dabei durch Tabulatoren getrennt in die Datei geschrieben.
define command{
command_name process-service-perfdata
command_line /bin/echo -e "$LASTCHECK$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICESTATE$\t$SERVICEATTEMPT$\t$STATETYPE$\t$EXECUTIONTIME$\t$LATENCY$\t$OUTPUT$\t$PERFDATA$" >> /usr/local/nagios/var/service-perfdata
}
Optimierungs Hinweise
Falls man die service_perfdata_command-Directive zusammen mit dem "obsessing over services"-Feature benutzt, sollte man eher auf die obsess_over_services-Option verzichten und den service_perfdata_command-Befehl so erweitern, dass er beide Aufgaben alleine erledigt. Da sowohl der ocsp_command- als auch der service_perfdata_command-Befehl nach jeder Dienst-Überprüfung ausgeführt werden, kann man so den System-Overhead halbieren, indem beide Aufgaben in einem service_perfdata_command-Befehl konsolidiert werden.