Nagioscmd
Man kann Nagios auch von der Konsole aus anweisen etwas zu tun.
Die external Commands und die nagios.cmd
Datei machen es möglich.
Command absenden
Dafür sendet man einfach einen Befehl an die nagios.cmd
Datei und wartet kurz ab.
Die Syntax für einen externen Befehl lautet:
[time] command_id;command_arguments
Syntax | Beschreibung |
---|---|
[time] | Die Zeit im time_t Format, gibt den Zeitpunkt an, wann der Befehl an die Datei nagios.cmd abgegeben wurde (also einfach die aktuelle Zeit). |
command_id | Das ist der eigentliche Befehle der an Nagios übergeben wird. Er setzt sich aus mehreren Angaben, wie z.B. Host und Service zusammen. |
command_arguments | Hier werden die Argumente für den Befehl angegeben. |
Im Log, nagios.log
, sieht man dann was passiert, wenn der entsprechende Log-Level in der Nagios-Konfigurationsdatei, nagios.cfg
eingestellt ist.
Hier findet man alle möglichen Commands: https://www.nagios.org/developerinfo/externalcommands/
Beispiele
Hier ein Einzeiler über den Befehl echo
:
HOST-Comment
echo "['date +%s'] ADD_HOST_COMMENT;Localhost;1;SMS Versand;Testnachricht um 'date +%Y-%m-%d'" > /usr/local/nagios/var/rw/nagios.cmd
Service-Check
echo "['date +%s'] SCHEDULE_SVC_CHECK;Localhost;SMS Versand" > /usr/local/nagios/var/rw/nagios.cmd
Hier ein kleines Script über den Befehl printf
:
#!/bin/sh ## now=`date +%s` commandfile='/usr/local/nagios/var/rw/nagios.cmd' # Syntax: SEND_CUSTOM_SVC_NOTIFICATION;<host_name>;<service_description>;<options>;<author>;<comment> /usr/bin/printf "[%lu] SEND_CUSTOM_SVC_NOTIFICATION;Localhost;SMS Versand testen;0;Nagiosbenutzer;Test-SMS\n" $now > $commandfile
Oder hier noch mal als Einzeiler:
Service-Check
/usr/bin/printf "[%lu] SCHEDULE_SVC_CHECK;HOST;SERVICE;`date +%s`\n" `date +%s` > /usr/local/nagios/var/rw/nagios.cmd
CGI anpassen
Einige Befehle welche über die Web-GUI ausführbar sind, haben durch die CGI-Scripte vordefinierte Werte.
Diese Werte lassen sich vor dem Kompilieren von Nagios anpassen.
scheduled Downtime
Der scheduled Downtime Zeitwert welcher die standardmäßige Dauer der Downtime definiert ist z.B. auf 2 Std. gestellt.
Das kann man in der Datei <PFAD_ZU_NAGIOS_QUELLVERZEICHNIS>/cgi/cmd.c
anpassen.
Hier muss der Wert aus der Zeile t += (unsigned long)7200;
geändert werden (Wert ist angegeben in Sekunden).
Quelle: http://www.monitoring-portal.org/wbb/index.php?page=Thread&threadID=21267