====== 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;;;;; /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 ''/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]]