SMS Benachrichtigungen mit Icinga

Aus Thomas-Krenn-Wiki
Wechseln zu: Navigation, Suche
CEP CT63 USB powered Modem (Bildquelle: shop.netways.de)
Dieser Artikel zeigt wie Sie mit Icinga SMS-Benachrichtigungen über ein angeschlossenes Modem versenden. Als Beispiel wird ein Low Energy Server mit TKmon mit einem CEP CT63 Modem und den SMS Server Tools um den SMS Versand erweitert.

Voraussetzungen

Um eine SMS-Benachrichtigung einrichten zu können müssen folgende Vorraussetzungen erfüllt sein:

  • Installiertes und konfiguriertes Icinga, Nagios oder TKmon mit Icinga
  • Installiertes und konfiguriertes Modem (z.B. CEP CT63 Modem)
  • Installierte und konfigurierte SMS Server Tools

Konfiguration

Die folgende Konfiguration wurde unter Ubuntu 12.04 LTS mit TKmon 1.5.3 und den smstools 3.1.14 aus den Ubuntu Paketquellen getestet. Es ist zu beachten, dass sich verschiedene Teile der Konfiguration durch die Verwendung von TKmon zu einer "normalen" Icinga Installation unterscheiden (z.B. contactgroups).

Die hier gezeigte Konfiguration ist so abgestimmt, dass weiterhin die Webobefläche von TKmon verwendet werden kann. Es ist zu beachten, dass nach den Änderungen an der Konfiguration, SMS immer dann verschickt werden, wenn auch ein E-Mail verschickt wird (es ist bei Verwendung von TKmon nicht möglich nur für einzelne Services SMS-Benachrichtigungen zu erhalten).

Benachrichtigungs-Befehl erstellen

Um die Benachrichtigung per SMS zu ermöglichen müssen zuerst die entsprechenden Kommandos in der Icinga Konfiguration hinterlegt werden.

sudo vi /etc/icinga/commands.cfg

In dieser Datei befinden sich bereits vordefinierte Kommandos, wir fügen zwei weitere hinzu:

[...]
# 'notify-service-by-sms' command definition
define command{
	command_name 	notify-service-by-sms
	command_line	/usr/bin/printf 'To: $CONTACTPAGER$\n\n$SHORTDATETIME$ $NOTIFICATIONTYPE$\nHost: $HOSTALIAS$\nService: $SERVICEDESC$\nState: $SERVICESTATE$\nInfo: $SERVICEOUTPUT$' > /var/spool/sms/outgoing/`date +%Y%m%d-%Hh-%Mm-%Ss-%Nns`	
}

# 'notify-host-by-sms' command definition
define command{
	command_name 	notify-host-by-sms
	command_line	/usr/bin/printf 'To: $CONTACTPAGER$\n\n$SHORTDATETIME$ $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nAddress:$HOSTADDRESS$\nState: $HOSTSTATE$\nInfo: $HOSTOUTPUT$' > /var/spool/sms/outgoing/`date +%Y%m%d-%Hh-%Mm-%Ss-%Nns`	
}
[...]

Damit Icinga die Kommandos ausführen kann muss der User nagios noch zur Gruppe smsd hinzugefügt werden:

sudo usermod -aG smsd nagios

User anlegen

Im zweiten Schritt müssen die User angelegt werden, die SMS-Benachrichtigungen erhalten sollen. Es können beliebig viele Benutzer angelegt werden. Die User werden in einer neuen Datei im Icinga Verzeichnis angelegt:

sudo vi /etc/icinga/objects/sms_contacts.cfg

In dieser Datei werden nun die User wie folgt angelegt. Bitte beachten Sie, dass die Pagernummer als Ziel für die Benachrichtigungs-SMS verwendet wird. Die Nummer wird in internationalem Format (inkl. Ländervorwahl) ohne führendem "+" angegeben.

define contact {
    contact_name                  thomas_mueller_sms
    alias                         Thomas Mueller
    pager                         49123456789
    use                           generic-contact
    service_notification_commands notify-service-by-sms
    host_notification_commands    notify-host-by-sms
    contactgroups                 tkmon-admin
}

define contact {
    contact_name                  hubert_meier_sms
    alias                         Hubert Meier
    pager                         49987654321
    use                           generic-contact
    service_notification_commands notify-service-by-sms
    host_notification_commands    notify-host-by-sms
    contactgroups                 tkmon-admin
}

Damit Icinga die User aus der neu erstellten Datei liest muss der Dateipfad in die Icinga-Konfiguration aufgenommen werden:

sudo vi /etc/icinga/icinga.cfg
[...]
# SMS User
cfg_file=/etc/icinga/objects/sms_contacts.cfg
[...]

Damit Icinga die neue Konfiguration übernimmt muss der Dienst neugestartet werden. Das kann entweder über die TKmon Weboberfläche oder mittels folgendem Befehl geschehen.

sudo service icinga reload

Bitte beachten Sie, dass die neu hinzugefügten User nicht in der TKmon Weboberfläche sichtbar sind. In der Icinga Weboberfläche allerdings schon (View Config -> Contacts).

Testen

Um eine Testbenachrichtigung zu versenden können Sie in der Icinga Weboberfläche in der Übersichtsseite des gewünschten Services oder Hosts unter Service Commands -> Send custom service notification eine Icinga Testbenachrichtigung anstoßen. Das Event-Log gibt Aufschluss über eventuelle Fehler.

Die gesendeten SMS finden Sie im Ordner /var/spool/sms/sent:

ls -l /var/spool/sms/sent
-rw-r--r-- 1 smsd smsd 182 Jul 22 08:33 20140722-08h-33m-07s-074858556ns
-rw-r--r-- 1 smsd smsd 182 Jul 22 08:33 20140722-08h-33m-07s-096055451ns
-rw-r--r-- 1 smsd smsd 178 Jul 22 08:33 20140722-08h-33m-31s-368138313ns
-rw-r--r-- 1 smsd smsd 178 Jul 22 08:33 20140722-08h-33m-31s-389053324ns
-rw-r--r-- 1 smsd smsd 178 Jul 22 08:35 20140722-08h-35m-10s-123407518ns
-rw-r--r-- 1 smsd smsd 178 Jul 22 08:35 20140722-08h-35m-10s-144384509ns
-rw-r--r-- 1 smsd smsd 151 Jul 22 08:47 20140722-08h-46m-56s-194716783ns
-rw-r--r-- 1 smsd smsd 151 Jul 22 08:47 20140722-08h-46m-56s-217502476ns
-rw-r--r-- 1 smsd smsd 236 Jul 22 08:57 20140722-08h-57m-41s-168177438ns
-rw-r--r-- 1 smsd smsd 236 Jul 22 08:58 20140722-08h-57m-41s-191322103ns


Foto Stefan Lengauer.jpg

Autor: Stefan Lengauer

Stefan Lengauer, tätig im Bereich Web Operations & Knowledge Transfer bei Thomas-Krenn, absolviert derzeit sein Masterstudium für Sichere Informationssysteme am Campus Hagenberg der Fachhochschule Oberösterreich.


Das könnte Sie auch interessieren

MultiTech MTD-H5-2.0
Call-Home-Service mit Icinga oder Nagios nutzen
XCache extension not available