Netzwerk

Checkmk: Benachrichtigungen über Mastodon

Notifications aus Checkmk lassen sich mit wenig Aufwand auch auf Mastodon anzeigen - sogar rein privat

Checkmk bietet allerlei interne Möglichkeiten, sich über Statusänderungen informieren zu lassen. Weitere gibt es in der Checkmk Exchange und der Eigenbau, den wir hier für Telegram vollzogen haben, ist auch ein Kinderspiel (mittlerweile aber unnötig). Mastodon könnte da zunehmend interessant sein, schließlich kann man das auch firmenintern betreiben!

Checkmk + Mastodon + toot

Das Prozedere ist ganz simpel: Zunächst braucht Ihr ein Skript, welches die Daten der Benachrichtigung von Checkmk ausliest und aufbereitet. Damit das Skript im Falle einer Benachrichtigung ausgelöst wird, benötigt Ihr zudem eine Checkmk-Regel und das Skript muss in einem bestimmten Verzeichnis liegen.

Die Skript-Basis ist das Programm toot, ein schlichter Kommandozeilen-Client für Mastodon. Wie Ihr toot einrichtet zeigen wir hier.

Skript erstellen

Hier zunächst das Skript mastodon_notifier innerhalb der Checkmk-Instanz, sprich unter OMD[mysite]:~/local/share/check_mk/notifications/mastodon_notifier:

#!/bin/bash
# Mastodoner
env | grep NOTIFY_ | sort > $OMD_ROOT/tmp/foobar.out
cat $OMD_ROOT/tmp/foobar.out |\
egrep "NOTIFY_HOSTNAME=|NOTIFY_LASTHOSTSTATE=|NOTIFY_HOSTSTATE=" |\
sed ' s/NOTIFY_HOSTNAME=/Host:/ ; s/NOTIFY_LASTHOSTSTATE=/Alt:/ ; s/NOTIFY_HOSTSTATE=/Neu:/ ' |\
/home/mirco/.nvm/versions/node/v18.14.0/bin/toot --config /home/mirco/.mastodon.json --visibility direct
exit 0

# Mastodoner ist der Titel, wie er auch in Checkmk angezeigt wird. Die Zeile mit env besorgt die Benachrichtigung, sortiert sie und speichert sie in der Datei foobar.out.

Dann wird foobar.out über cat ausgegeben, egrep reduziert auf die hier gewünschten Felder Hostname, letzter und aktueller Status, sed ersetzt die Variablennamen durch Host:, Alt: und Neu:, damit es hübsch aussieht.

Dann folgt der toot-Aufruf: Hier braucht es den absoluten Pfad und die manuelle Angabe der Konfigurationsdatei – installiert wurde toot schließlich unter einem Nutzerkonto (hier „mirco“) und nicht als Instanznutzer (hier „mysite“). Die visibility steht hier auf direct, so dass der Toot nur für direkt erwähnte Nutzer sichtbar ist – hier also nur für den Absender selbst.

Tipp: Man könnte meinen, man könnte sich den Zwischenschritt über die Datei foobar.out sparen. Setzt man aber egrep direkt am sort-Befehl an, wird das Skript mehrfach ausgeführt und es hagelt Toots …

Tipp 2: Eine hübsche Übersicht über alle verfügbaren Felder der Benachrichtigung findet Ihr in Checkmk unter Setup/Events/Notifications/Show analysis. Klickt in der Liste der letzten Benachrichtigungen auf eines der Schriftrollen-Icons, um den gesamten Kontext zu sehen:

felder einer notification.
Die Felder aus dem Beispiel und alle anderen

Nicht vergessen: Skript ausführbar machen!

chmod +x mastodon_notifier

Das war es soweit im Terminal.

Regel erstellen

Erstellt nun eine Notifications-Regel und legt als Notification method Euer Skript fest – plus etwaige Filter.

regel in checkmk.
Notification-Regel für das Mastodon-Skript

Und das Ergebnis auf Mastodon:

notifications aus checkmk in mastodon.
Da geht freilich noch mehr Eyecandy ;)

Mehr zu Mastodon und Checkmk.

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Checkmk-Handbuchschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler. Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds. Wenn Ihr hier mehr über Open Source, Linux und Bastelkram lesen und Tutonaut unterstützen möchtet: Über Kaffeesponsoring via Paypal.freue ich mich immer. Schon mal im Voraus: Danke! Nicht verpassen: cli.help und VoltAmpereWatt.de. Neu: Mastodon

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Schaltfläche "Zurück zum Anfang"
Schließen

Ooopsi!

Bitte deaktiviere Deinen Adblocker.