Nagios Benachrichtigungen via IFTTT mit Maker

In diesem Artikel beschreibe ich, wie man Nagios-Benachrichtigungen via IFTTT empfangen kann. Hintergrund ist, dass die Standard-Benachrichtigungsmethode (E-Mail) rech viel Overhead produziert und zudem einen funktionierenden Mailserver voraussetzt. Zudem sind die Möglichkeiten der Benachrichtigung mit IFTTT quasi unendlich, denn man kann unzählige Rezepte erstellen, welche genau auf den persönlichen Bedarf abgestimmt sind.

Warum schreibe ich den Artikel: ich habe schlicht kein gutes bestehendes HowTo finden können (baue aber auf diverse Anleitungen auf, welche ich für Nagios adaptiert habe). Voraussetzung für diese Anleitung ist, dass man bereits einen IFTTT-Account besitzt. In der folgenden Lösung nutze ich “IF Notifications” als Ausgabe, damit erhalte ich Benachrichtigungen, die ich nach dem Lesen einfach wegwischen kann. Voraussetzung hierfür ist die “IF by IFTTT” App (Android / Windows / iOS ). Ich verwende übrigens den Nagios Core 3.5.1 auf einem Raspberry Pi.

Schritt 1: Den eigenen IFTTT Account mit dem Maker Webhooks Channel verbinden

Schritt 2: Ein neues Rezept erstellen und aktivieren

  • IF “Webhook” > Receive a web request > Event Name “Nagios”
  • THEN “IF Notifications” > Send a notification > “{{Value1}} {{Value2}} {{Value3}}

Schritt 3: Ein kleiner Test auf dem Nagios Server

  • /bin/curl -X POST -H "Content-Type: application/json" -d '{"value1":"Testmeldung","value2":"Das ist ein Test","value3":"Mein Server"}' https://maker.ifttt.com/trigger/Nagios/with/key/[maker_key]
  • In beiden Kommandos muss [maker_key] durch den persönlichen Key ersetzt werden. Der persönliche Key ist nach dem Verbinden im Maker Webhooks Channel hinterlegt

Schritt 4: Nun können in Nagios die neuen Kommandos zur Benachrichtigung angelegt werden (command.cfg)

  • notify-host-by-ifttt
  • /usr/bin/curl -X POST -H "Content-Type: application/json" -d '{"value1":"$HOSTSTATE$:","value2":"$HOSTOUTPUT$ on $HOSTALIAS$ ($HOSTADDRESS$)","value3":", $NOTIFICATIONTYPE$:$LONGDATETIME$"}' https://maker.ifttt.com/trigger/Nagios/with/key/[maker_key]
  • notify-service-by-ifttt
  • /usr/bin/curl -X POST -H "Content-Type: application/json" -d '{"value1":"$SERVICESTATE$:","value2":"$SERVICEOUTPUT$ in $SERVICEDESC$ on $HOSTALIAS$","value3":", $NOTIFICATIONTYPE$:$LONGDATETIME$"}' https://maker.ifttt.com/trigger/Nagios/with/key/[maker_key]
  • In beiden Kommandos muss [maker_key] durch den persönlichen Key ersetzt werden. Der persönliche Key ist nach dem Verbinden im Maker Webooks Channel hinterlegt
  • Sofern sich “curl” nicht in /usr/bin/ befindet, muss dieser Pfad noch individuell angepasst werden

Schritt 5: Die Kontaktgruppe, die per IFTTT anpassen, sodass die neuen Befehle genutzt werden (contacts.cfg)

  • Service Notif Cmd: notify-service-by-ifttt
  • Host Notif Cmd: notify-host-by-ifttt

Schritt 6: Konfiguration sichern und Nagios neu starten

Schritt 7: Einen Service oder Host zu einer Benachrichtigung zwingen

  • Status (Warning/Critical/Down/…) erzwingen und schauen, ob die Benachrichtigung in IFTTT eingegangen ist. Ist dies der Fall, hat alles geklappt. Glückwunsch.
  • Wenn nicht: siehe Schritt 8

Schritt 8: Keine Benachrichtigung bei IFTTT eingegangen

  • sollte es zu Problemen beim Versand/Empfang der Benachrichtigungen gekommen sein, einen Blick in die nagios.log werden (grep ifttt) und schaunen, was genau Nagios auszusetzen hatte

Ich hoffe, dass die Anleitung hilfreich war und alles geklappt hat. Für Feedback gern bei mir melden.

Weitere Nagios-Plugins, die ich im Laufe der Jahr gebaut habe, kann man auf meiner Projektseite auf Nagios Exchange finden.