In diesem Artikel erfahren Sie, wie Sie die bekannte Messaging-Plattform Telegram für das Senden von Benachrichtigungen aus Checkmk verwenden können.
Warum Benachrichtigungen über Telegram versenden?
Telegram hat eine gut dokumentierte API, die leicht zugänglich und kostenlos ist. Zudem ist Telegram sehr beliebt und viele Menschen sind bereits mit der Plattform und der Technik vertraut. Außerdem gibt es Apps für alle wichtigen mobilen Plattformen sowie Desktop-Apps.
Gibt es Bedenken wegen des Datenschutzes?
Dieser Beitrag geht nicht auf die Diskussion über den Datenschutz ein. Dies ist bereits ausführlich an anderer Stelle geschehen und lässt sich dort nachlesen. In der Regel dürften die Daten, die Sie mit diesen Benachrichtigungen übermitteln, nicht datenschutzrelevant sein. Falls dies doch der Fall ist, haben Sie die Möglichkeit, eine alternative Methode für Ihre Benachrichtigungen zu wählen.
Checkmk bietet bereits ab Werk eine Menge unterschiedlicher Methoden, die sich zudem durch von der Community bereitgestellte Methoden erweitern lassen. Am Ende des Artikels erfahren Sie außerdem, wie Sie die Ausgabe von Informationen bis zu einem gewissen Grad einschränken können.
Erste Schritte
Was Sie benötigen:
- Eine laufende Checkmk 2.0 Instanz
- Einen Telegram Bot
- Die Chat-ID des Bots oder eine Gruppen-ID, an die Checkmk die Benachrichtigungen senden soll
Das Notification-Plugin
Um Telegram aus Ihrer Checkmk Instanz anzusprechen, benötigen Sie ein Notification-Plugin. Dieser Beitrag verwendet ein Shell-Skript, das filipnet erstellt hat.
Benachrichtigungen aktivieren
Das Skript beziehen und verstehen
Um zu starten, müssen Sie sich als Instanz-Benutzer anmelden. Die Beispiel-Instanz in diesem Beitrag heißt 'telegram'.
omd su telegram
Anschließend navigieren Sie in der lokalen Struktur zu dem Ort, an dem sich die benutzerdefinierten Skripte für Benachrichtigungen befinden.
cd ~/local/share/check_mk/notifications/
Jetzt ist es an der Zeit, das eigentliche Skript herunterzuladen und es in diesem Ordner abzulegen. Wenn Sie von Ihrer Instanz aus einen Internetzugang haben, können Sie hierfür den folgenden Befehl verwenden, es spielt jedoch keine Rolle, wie Sie die Datei dort ablegen.
wget --no-check-certificate https://raw.githubusercontent.com/filipnet/checkmk-telegram-notify/main/check_mk_telegram-notify.sh -O telegram.sh
Sie haben die Möglichkeit, den ursprünglichen Namen beizubehalten oder diesen beliebig zu ändern. Ich habe das Skript mit wget in "telegram.sh" umbenannt. Lassen Sie uns nun einen Blick in das Skript werfen.
vim telegram.sh
Sie können den Texteditor Ihrer Wahl verwenden, ich bevorzuge vim.
Dies ist der Kopf des Skripts, der Hintergrundinformationen über das Skript, seinen Autor und die Lizenz enthält:
Im nächsten Abschnitt werden die Authentifizierungsparameter aus der Checkmk Benachrichtigungsumgebung an das Skript übergeben. Wenn die Parameter nicht in der Benachrichtigungsregel angegeben sind, wird das Skript mit einem Fehler beendet.
Nun folgt im Grunde eine Datenschutzfunktion des Skripts, um IP-Adressen zu modifizieren, falls dies für Sie von Bedeutung ist. Das Skript maskiert Teile der IP-Adressen oder stellt diese komplett um, sodass ein möglicher Angreifer keinen Einblick in die tatsächlichen IP-Adressen erhalten kann. Sie können die Maskierung auch an Ihre Bedürfnisse anpassen, indem Sie das Skript entsprechend abändern. Diese Anleitung verwendet jedoch den unveränderten Code.
In diesem Abschnitt können Sie Icons für die verschiedenen Monitoring-Zustände festlegen. Der Autor des Skripts gibt Standardwerte vor, weist aber auch darauf hin, wie Sie diese ändern können.
Dies ist der interessante Teil des Skripts. Anhand der Umgebungsvariablen, die Sie im Benachrichtigungskontext bereitstellen, erstellt das Skript die Nachricht und versendet sie. Wenn der Versand fehlschlägt, erhalten Sie eine Fehlermeldung. Dieser Teil ist natürlich stark anpassbar, die Standardeinstellung funktioniert jedoch gut genug, sodass Sie ohne Änderungen fortfahren können.
Nachdem Sie sich das Skript angeschaut haben und eventuell an Ihre Bedürfnisse angepasst haben, müssen Sie es nun für den Benutzer und die Gruppe der Instanz ausführbar machen und den Apache der Instanz neu starten.
chmod ug+x telegram.sh
omd restart apache
Dies ist wichtig, da Checkmk das Skript nur verwenden kann, wenn es ausführbar ist und der Instanz-Apache neu gestartet wurde.
Einrichtung der Notification-Regel
Nun, da unter der Haube alles erledigt ist, können Sie zur Weboberfläche wechseln und Ihre erste Telegram-basierte Benachrichtigungsregel erstellen. Dazu navigieren Sie zum Menü Setup ➳ Events ➳ Notifications und kopieren die integrierte Benachrichtigungsregel:
Um Verwechslungen zu vermeiden, sollten Sie die Beschreibung im Vorfeld ändern. Als 'Benachrichtigungsmethode' wählen Sie 'Push Notification (using Telegram)'. Wenn Sie vorhin sehr aufmerksam waren, erkennen Sie vielleicht den Namen der 'Benachrichtigungs-Methode' wieder: Es ist die zweite Zeile des Benachrichtigungsskripts. Dadurch weiß Checkmk, was es im Konfigurationsdialog anzeigen soll. Die erste Zeile ist übrigens das sogenannte shebang, das dem Betriebssystem mitteilt, wie das Skript auszuführen ist.
Nun geben Sie die notwendigen Parameter ein, und zwar genau in dieser Reihenfolge:
- Ihren Telegram-Bot-Token
- Ihre Chat-ID
- Optional den bereits erwähnten Parameter "privacy".
- Für die 'Kontaktauswahl' belassen Sie die Standardeinstellung.
Herzlichen Glückwunsch, Sie sind fertig – zumindest fast. Als Letztes müssen Sie sicherstellen, dass Ihr Benutzer der Kontakt von mindestens einem Host ist. Wie das geht, ist in unserem Handbuch ausführlich dokumentiert.
Sobald Ihr Host nun auf sein erstes Problem stößt, werden Sie der Erste sein, der es erfährt.
Sie können auch sofort überprüfen, ob Ihre Benachrichtigungseinstellungen funktionieren: Sie können Check-Ergebnisse einfach simulieren. Möglicherweise müssen Sie oben rechts 'Show more' aktivieren, um die Option zu sehen.
Im hervorgehobenem Fenster können Sie nun eine aussagekräftige Nachricht eingeben und den Status wählen, den Sie für die Benachrichtigung auswählen wollen. Idealerweise wählen Sie für die simulierte Benachrichtigung einen kritischen oder zumindest warnenden Status.
Zusammenfassung
Sie haben gelernt, wie Sie Benachrichtigungen von Checkmk über Telegram aktivieren. Mit dieser Grundlage sind Sie in der Lage das Benachrichtigungsformat flexibel anzupassen und Ihren Wünschen entsprechend zu erweitern. Weiterhin ist dies ein weiteres Beispiel sowohl für die große Flexibilität, die Checkmk bietet, als auch für die Stärke der Open-Source-Community, die das hier verwendete Skript zur Verfügung gestellt hat.
Für weitere Informationen lesen Sie gerne den Handbuch Artikel zu Benachrichtigungen.