Nagios Notifications via Telegram

Um über Ausfälle meiner Server und Seiten informiert zu werden, verwende ich Nagios. Nun ist das aber mit dem informiert werden so eine Sache. Ich bin oft an der Uni oder unterwegs, wo ich nur ungern in meine Mails rein schaue. Deutlich schneller bin ich über Instant Messenger via Handy erreichbar (ich lese Mails via K9, aber manchmal kommt da einfach zu viel rein).

Jabber gehört so langsam der Vergangenheit an. Ich habe nur noch wenige Kontakte, die ich ausschließlich darüber erreiche. Als besonders großes Manko sehe ich, dass Nachrichten immer nur bei einer Ressource ankommen. Wenn ich ausversehen den Arbeitsplatz an lasse und dort eine höhere Priorität besitze, kann ich mir am nächsten Tag alle Nachrichten durchlesen.

Also kam ich auf die Idee mir Notifications via Telegram zuschicken zu lassen.

Als erstes musste ich mir einen Bot registrieren. Wie das ganz einfach geht, wird an vielen Stellen sehr gut beschrieben. Mir hat besonders das Tutorial vom Tutonaut geholfen.

Im nächsten Schritt erzeuge ich ein Notification-Kommando. Dazu habe die Datei /etc/nagios3/commands.cfg erweitert:

Für $BOT-TOKEN$ müsst ihr den Authentifizierungstoken von eurem Bot angeben. Wichtig: Direkt vor dem Token bleibt das kleingeschriebene „bot“ stehen.

Es kann sein, dass ihr die Pfade anpassen müsst. Ich beziehe mich hier auf ein Nagios 3.4.1 auf einem RaspBian 4.1.7. Das „%0A“ repräsentiert einen Zeilenumbruch. Die Chat-ID, an die die Meldung gesendet wird, muss im contact als pager hinterlegt sein.

Jetzt erzeugen wir einen Kontakt:

Wie wir die Chat-ID bekommen, hat der Tutonaut bereits erklärt. Am besten man schickt vom Account, der Nachrichten erhalten soll, eine Nachricht an den Bot. Diese holt man mit CURL ab und erhält somit die passende Chat-ID. Diese setzt man in der obigen Config statt $CHAT-ID$ ein. Was die restlichen Optionen bedeuten, kann man in der Dokumentation nachlesen.

Der Kontakt muss nun noch bei den gewünschten hosts und services definiert werden. Ich habe ihn bei mir in diverse Hosts geschrieben (u.a. für blog.stadtplan-ilmenau.de).

Um die Einstellungen zu testen ist es doof, wenn ich den Host ausschalte. Ich wollte einfach nur eine Notification bei Nagios triggern. Dies schafft man mittels nagios.cmd. Wichtig ist, dass man die entsprechenden Konfigurationen in der nagios.cfg für die Tests vornimmt. Anschließend habe ich mir ein kleines Testscript (test.sh) gebaut:

Den commandfile-Pfad muss man eventuell noch etwas anpassen.

Et voilà, mein Telegram schrie, es habe eine neue Nachricht erhalten.


Und zum Schluss noch ein wichtiger Hinweis:

Telegram wird von einem Drittanbieter betrieben. Potentiell kann er alle Nachrichten mitlesen, auswerten und die Inhalte verkaufen oder gegen dich verwenden. Firmeninternas oder persönliche Daten sollten nie darüber geschickt werden, auch keine Informationen zu (kritischer) Infrastruktur von Firmen.

label,

Kommentar verfassen