Inhaltsverzeichnis

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