Einführung
Nagios kann Befehle aus externen Applikationen verarbeiten (einschließlich der CGIs) und verschiedene Aspekte seiner Überwachungsfunktionen aufgrund der Befehle verändern, die es erhält. Externe Applikationen können Befehle "einreichen", indem sie in das command file schreiben, das regelmäßig vom Nagios-Daemon verarbeitet wird.
Externe Befehle aktivieren
Damit Nagios externe Befehle verarbeitet, müssen Sie folgendes tun:
- aktivieren Sie die Prüfung auf externe Befehle mit der check_external_commands-Option.
- setzen Sie die Wiederholrate von Befehlsprüfungen mit der command_check_interval-Option.
- definieren Sie den Ort des Command-File mit der command_file-Option.
- setzen Sie korrekte Berechtigungen für das Verzeichnis, welches das External-Command-File enthält, wie in der Schnellstartanleitung für Fedora, OpenSuse oder Ubuntu beschrieben.
Wann prüft Nagios auf externe Befehle?
- in regelmäßigen Intervallen, wie sie durch die Option command_check_interval in der Hauptkonfigurationsdatei angegeben sind
- direkt nachdem Eventhandler ausgeführt werden. Das passiert zusätzlich zum regelmäßigen Zyklus von externen Befehlsprüfungen und wird getan, um unverzügliche Aktivitäten zu ermöglichen, falls ein Eventhandler Befehle an Nagios schickt.
Externe Befehle benutzen
Externe Befehle können benutzt werden, um eine Reihe von Dingen zu erreichen, während Nagios läuft. Beispiele dafür, was getan werden kann, umfassen u.a. vorübergehend Benachrichtigungen für Services und Hosts zu deaktivieren, vorübergehend Service-Prüfungen zu deaktivieren, sofortige Service-Prüfungen zu erzwingen, Kommentare für Hosts und Services hinzuzufügen usw.
Befehlsformat
Externe Befehle, die in das command file geschrieben werden, haben das folgende Format...
[Zeit] Befehls-ID;Befehlsargumente
...wobei Zeit die Zeit (im time_t-Format) ist, zu der die externe Applikation den externen Befehl an das Command-File geschickt hat. Die Werte für die Befehls-ID und die Befehlsargumente hängen davon ab, welcher Befehl an Nagios geschickt wird.
Externes Command File - Setup Beispiel
susie114:~ # ls -l /srv/app/nagios/var/rw/
total 0
prw-rw---- 1 nagios nagcmd 0 Jun 22 17:46 nagios.cmd
Externes Command File - Beispiel Eines Externen Befehls
susie114:~ # echo "`date +[%s]` PROCESS_SERVICE_CHECK_RESULT;testserver;check_trap_test;1;test" > /srv/app/nagios/var/rw/nagios.cmd
# tail /srv/app/nagios/var/nagios.log | grep trap
[1224133947] EXTERNAL COMMAND: PROCESS_SERVICE_CHECK_RESULT;testserver;check_trap_test;1;test
[1224133947] Warning: Passive check result was received for service 'check_trap_test' on host 'testserver', but the host could not be found!
Eine komplette (englischsprachige) Liste der Befehle, die eingesetzt werden können (zusammen mit Beispielen, wie sie benutzt werden), finden Sie online unter der Adresse
http://www.nagios.org/developerinfo/externalcommands/
Siehe auch: Passive Prüfungen, Adaptive Überwachung