Navigation

Start Projekte Tutorials & Texte Archiv

Unternavigation

Asterisk Registry

Dieser Nagios-Check prüft, ob Asterisk noch bei einer bestimmten Gegenstelle registriert ist. Die Codebeispiele beziehen sich auf Sipgate, können aber leicht an andere Anbieter angepasst werden.

Der erste Schritt besteht darin, den Registrierungsstatus abzufragen:
[Datei: /etc/nagios3/cust-scripts/sip_cronjob] #!/bin/bash /usr/sbin/asterisk -rx "sip show registry"|grep -e "sipgate.*Reg"|wc -l > /tmp/status_sipgate
Das Script wird dann für root ausführbar gemacht und in dessen Crontab gesetzt:
# chmod 700 /etc/nagios3/cust-scripts/sip_cronjob # crontab -e 0,15,30,45 * * * * /etc/nagios3/cust-scripts/sip_cronjob
Die Statusdatei wird damit alle 15 Minuten neu geschrieben.

Dann wird ein Plugin benötigt, dass den Inhalt der Datei /tmp/status_sipgate ausliest und entsprechende Werte zurückgibt. Das kann so aussehen:
[ Datei: /etc/nagios3/cust-scripts/sip_plugin] #!/bin/bash # scp nagios@pbx:/tmp/status_sipgate /tmp/status_sipgate status=`cat /tmp/status_sipgate` case "$status" in 1) echo "OK |regstate=1"; exit 0;; 0) echo "CRITICAL: Not registered |regstate=0"; exit 2;; *) echo "UNKNOWN: Invalid value in status file |regstate=2"; exit 3;; esac
Die auskommentierte Zeile mit scp bezieht sich darauf, dass das Nagios und Asterisk selten auf demselben Server laufen und ist nur eine von sehr vielen Möglichkeiten. Als Alternativen kommen z.B. die Abfrage über SNMP oder die Verwendung von NRPE in Frage.
Die Perfdata-Werte ("|regstate=n") sind optional.

Zuletzt müssen noch Kommando und Service definiert werden:
[Datei: /etc/nagios3/plugin-config/asterisk_registry.cfg] define command{ command_name check_sipgate_reg command_line /etc/nagios3/cust-scripts/sip_plugin }
[Datei: /etc/nagios3/systems/pbx.cfg] define service{ use generic-service host_name pbx service_description Sipgate Registry check_command check_sipgate_reg }
Nach einem Neustart von Nagios steht der Check zur Verfügung.

Es sei noch kurz erwähnt, dass dieser Check nur die Meinung des Asterisk wiederspiegelt. Die Gegenstelle kann bspw. nach einer Änderung der IP-Adresse eine falsche Location gespeichert haben.