Zum Inhalt springen →

Anbindung Check_MK an SMS-Gateway

in meinem letzten Beitrag „Raspberry Pi als SMS-Gateway“ bin ich bereits darauf eingegangen wie ihr den Raspberry Pi zu einem SMS-Gateway umfunktioniert. Ein sinnvoller Anwendungszweck ist die Anbindung an ein Monitoring System wie Check_MK.

Ein SMS-Gateway ermöglicht das automatisierte Versenden und Empfangen von Kurznachrichten über eine Schnittstelle (API), häufig direkt aus Softwareanwendungen heraus.

In Verbindung mit einem Monitoring-System – etwa zur Überwachung von Servern, Netzwerken oder Applikationen – bietet ein angebundenes SMS-Gateway einen entscheidenden Vorteil: Es stellt sicher, dass kritische Warnungen auch dann zugestellt werden, wenn E-Mail oder App-Benachrichtigungen nicht sofort wahrgenommen werden. SMS haben eine besonders hohe Zustellrate und werden meist innerhalb weniger Minuten gelesen, was sie zur idealen Eskalationsstufe bei Systemausfällen oder sicherheitsrelevanten Vorfällen macht.

Voraussetzungen:

  • installiertes und funktionstüchtiges Check_MK
  • geringe Linux Kenntnisse (Umgang mit nano/vim)

Ablageort: /opt/omd/sites/[Site-Name]/local/share/check_mk/notifications
LOG: /opt/omd/sites/[Site-Name]/var/log/notify.log

Berechtigung für bash-script: Chmod +x nicht vergessen
Kommentar 2. Zeile: Check_MK-Name für das Script (wird aktiv im WATO ausgelesen)

Als Empfänger wird das Feld „Pager“ aus dem Check_MK Nutzerstamm ausgelesen. Die Benachrichtigung setzt sich aus dem Benachrichtigungstyp und dem Hostalias zusammen. Das Script kann natürlich an die eigenen Anforderungen mittels Verwendung der spezifischen Umgebungsvariablen (siehe notify.log) angepasst werden.

Um Check_MK-Nachrichten an das SMS Gateway schicken zu lassen muss ein Custom Bash-Script „SMS-Gateway.sh“ hinterlegt werden

#!/bin/bash
# Raspberry Pi SMS-Gateway
URL=http://[rapsberry-pi]/sendsms/
NR=$NOTIFY_CONTACTPAGER
MSG="$NOTIFY_NOTIFICATIONTYPE $NOTIFY_HOSTALIAS";

if [ -n "$NR" ]; then
echo "ERROR: NOTIFY_CONTACTPAGER is missing.";
return 1
fi

wget -q -O/dev/null --post-data "nr=${NR} msg=${MSG}" $URL
echo "DEBUG: NR(${NR}), MSG(${MSG})";

Eine Liste der verschiedenen Laufzeitvariablen ist unter http://mathias-kettner.de/checkmk_flexible_notifications.html im Abschnitt 8 – notify.log zu finden.

Konfiguration persönlicher Benachrichtigungsregeln

WATO Configuration > Users > [Benutzer bearbeiten]  > „Pager address“ (Rufnummer des Benutzers hinterlegen Bsp. 49160123456).

Im Anschluss kann eine persönliche Benachrichtigung konfiguriert werden.

Dazu erzeuge eine „Notification-Rule“, in der als „Method“ das SMS-Gateway ausgewählt wird. Mit Bezug auf das Beispiel des Bash-Script ist hier „Raspberry Pi SMS-Gateway“ zu finden und auszuwählen.

Die Check_MK Notify-LOG

Für das Debugging für Benachrichtigungen steht, wie bereits erwähnt, die „notify.log“ zur Verfügung. Diese gibt Aufschluss über den Erfolg oder Misserfolg (Output)  eines Scripts.

2016-06-03 23:25:31 User herbst's rule 'SMS'...
2016-06-03 23:25:31 Event type is f
2016-06-03 23:25:31 -> matches!
2016-06-03 23:25:31 - adding notification of herbst via SMS-Gateway.sh
2016-06-03 23:25:31 Executing 1 notifications:
2016-06-03 23:25:31 * notifying herbst via SMS-Gateway.sh, parameters: (no parameters), bulk: no
2016-06-03 23:25:31 executing /omd/sites/[Site-Name]/local/share/check_mk/notifications/SMS-Gateway.sh
2016-06-03 23:25:31 Output: DEBUG: NR(49160123456), MSG(FLAPPINGSTART HOSTXYZ)

Fehler: (Pager adress) ist nicht gepflegt

2016-06-03 23:24:26 User herbst's rule 'SMS'…
2016-06-03 23:24:26 Event type is rd
2016-06-03 23:24:26 -> matches!
2016-06-03 23:24:26 - adding notification of herbst via SMS-Gatway.sh
2016-06-03 23:24:26 Executing 1 notifications:
2016-06-03 23:24:26 * notifying herbst via SMS-Gatway.sh, parameters: (no parameters), bulk: no
2016-06-03 23:24:26 executing /omd/sites/[Site-Name]/local/share/check_mk/notifications/SMS-Gatway.sh
2016-06-03 23:24:26 Output: ERROR: NOTIFY_CONTACTPAGER is missing.

Veröffentlicht in Tutorials

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert