Grafana Howto: Alerts einrichten am Beispiel von Telegram

- Lesedauer 6 Minuten -

Als Fortsetzung unserer kleinen Artikelreihe zum Open Source Tool Grafana möchten wir euch heute einmal am Beispiel des kostenlosen Instant-Messaging-Dienstes Telegram zeigen, wie Ihr euch aus Grafana heraus über bestimmte Zustandsänderungen benachrichtigen lassen könnt. Dazu sind lediglich drei Schritte notwendig:

  1. Telegram-Bot erstellen
  2. Notification channel in Grafana einrichten
  3. Alert in Grafana anlegen

Wie genau dies jeweils funktioniert, erfahrt Ihr im Folgenden.

Warum Telegram? Weil es sich dabei um die wohl beliebteste Alternative zu WhatsApp handelt und wir Benachrichtigungen hierüber durchaus komfortabler finden als via E-Mail.

 

Schritt 1: Telegram-Bot erstellen

Habt ihr bereits einen Telegram-Account, könnt ihr direkt in der Telegram-Suche nach @botfather suchen, einen Chat mit diesem öffnen. Andernfalls benötigt ihr zunächst einen kostenlosen Account. Einfach App installieren und Nummer hinterlegen. Telegram nutzen könnt ihr dann nicht nur auf eurem Smartphone, sondern auch auf eurem Desktop via Browser oder Desktop-App.

Telegram: Chat mit @botfather öffnen

 

Startet einen Chat mit @botfather und mithilfe des Befehls /newbot den Vorgang zur Erstellung eines neuen Bots. Anschließend könnt ihr frei einen Namen sowie Benutzernamen vergeben. Der Benutzername muss mit „bot“ enden. Die Anwendung bestätigt euch das erfolgreiche Anlegen.

Telegram: Chat mit @botfather starten und Bot mit /newbot erstellen

 

Um später über den Bot Nachrichten verschicken zu können, ist der in der Bestätigungsnachricht enthaltene API-Token nötig. Diesen zusammen mit dem Namen und Benutzernamen sichern und vor dem Zugriff durch Dritte schützen (bspw. in einem Passwortverwaltungstool wie KeePass ablegen).

Telegram: Bestätigung mit API-Token nach erfolgreichem Erstellen eines Bots

 

Den eben erstellten Bot könnt ihr nun in eine bestehende oder neu erstellte Gruppe hinzufügen.

Telegram: Neue Gruppe erstellen

 

Telegram: Mitglied zur Gruppe hinzufügen

 

Neben eurem Bot müsst ihr auch getidsbot übergangsweise in eure Gruppe einladen. Dieser gibt uns einige Infos aus, darunter die für uns relevante chat-id.

Telegram: chat-id anfordern via GetIDs Bot

 

Telegram: Nachricht mit chat-id nach Hinzufügen des GetIDs Bots

 

Diese chat-id muss ebenfalls abgespeichert werden. Anschließend entfernt ihr getidsbot wieder aus der Gruppe.

Alternativ zu einer Gruppe könnt ihr auch einen Kanal verwenden, indem ihr in diesem einen User/Bot als Admin hinzufügt. Vorteil bei dieser Variante ist, dass sich manche zusätzlichen Drittsysteme einfacher anbinden lassen. Allerdings müssen hierfür auch gewisse Voraussetzungen gegeben sein. Dies im Detail zu erläutern würde jedoch den Rahmen dieses Beitrags sprengen.

 

Schritt 2: “Notification channel” in Grafana einrichten

Nachdem ihr im ersten Schritt einen Telegram-Bot erstellt habt, müsst ihr nun, sofern noch nicht geschehen, einen sogenannten „Notification channel“ in Grafana einrichten. In diesem müsst ihr die im vorherigen Schritt generierten Zugangsdaten einmalig hinterlegen. Dem Channel lassen sich anschließend verschiedenen Alerts zuordnen. Hierzu den folgenden Menüpunkt auswählen: Alerting/Notification channels

Grafana: Menü-Punkt Alerting/Notification channels

 

Nach Klick auf „New Channel“ könnt ihr in der sich öffnenden Ansicht frei einen Namen für diesen Benachrichtigungskanal vergeben. Gut zu wissen an dieser Stelle: Nutzen mehrere dieselbe Grafana-Instanz, kann jeder innerhalb dieser die Benachrichtigungskanäle der anderen Nutzer sehen. In diesem Fall empfehlen wir euch einen besonders aussagekräftigen und klaren Namen für euren Channel. Nach Auswahl von „Telegram“ als Type müsst ihr den API-token und die chat-id aus Schritt 1 einfügen. Mithilfe des Test-Buttons kann kontrolliert werden, ob alles richtig hinterlegt ist – wenn alles passt, taucht eine Testnachricht im Telegram-Channel auf.

Grafana: Neuen Notification channel konfigurieren

 

Telegram: Alerting Testnachricht von Grafana

 

Der Notification channel wird anschließend über den Save-Button gesichert.

 

Schritt 3: Alert in Grafana anlegen

Über den eben angelegten Notification channel möchten wir nun einen Alert beim Eintreten eines definierten Zustands ausgeben. In diesem Beispiel möchten wir informiert werden, wenn der Türstatus unseres Strips Multi-Sensors meldet, dass die Tür geöffnet bzw. wieder geschlossen wurde. Hierfür benötigen wir das passende Panel aus unserem Zeitverlaufs-Dashboard, in diesem Fall „Türstatus – Multisensor“. Kleiner Tipp: In Dashboards/Panels mit lediglich aktuellen Werten lassen sich leider keine Alerts einrichten. Dies geht nur in Dashboards/Panels mit Zeitverlaufswerten.

Grafana: Panel im Dashboard mit visualisiertem Türstatus

 

Im Diagramm wird eine geöffnete Tür als „0“, eine geschlossene Tür als „1“ dargestellt. Dieser Zustand soll nun mithilfe unseres Alarms überwacht werden: Ist der Status kleiner als 1 möchten wir alarmiert werden (Tür geöffnet), ist er größer als 0 bzw. 1 soll eine Entwarnung gesendet werden.

Grafana: Value mappings für den Türstatus

 

Um den Alarm zu hinterlegen, klickt man wie im obigen Screenshot zu sehen zunächst auf die Panelbezeichnung und wählt im Dropdown-Menü anschließend „Edit“ aus. Dort sind folgende Schritte durchzuführen (s. Screenshot unten):

  1. In den Reiter „Alert“ wechseln und „Create Alert“ auswählen.
  2. Häufigkeit festlegen zur Prüfung, ob ein Alarmzustand vorliegt. In unserem Fall alle 10 Sekunden.
  3. Dauer festlegen, wie lange der Alarmzustand bestehen soll, bevor informiert wird. Wir möchten sofort alarmiert werden, daher 0.
  4. Bedingungen (Conditons) für das Senden/Auslösen eines Alarmes definieren/festlegen, wobei es verschiedene Optionen gibt. So z. B. min, max, avg (durchschnitt). Wir prüfen in diesem Fall den höchsten Wert im abgefragten Zeitbereich, daher max().
  5. Das Gegenstück zu 2). Wenn wir alle 10 s prüfen, müssen wir dabei den Zeitbereich von vor 10 s bis jetzt betrachten. Das „A“ davor steht für den Namen der referenzierten Query.
  6. Auswahl des gewünschten mathematischen Operators wie größer, kleiner, zwischen, etc. Da wir prüfen möchten, ob der Wert kleiner als 1 ist, wählen wir „is below“.
  7. Angabe des zu prüfenden Schwellwertes. In diesem Fall 1.
  8. Verhalten des Alarms definieren, wenn im abgefragten Zeitraum keine Daten vorliegen: wir möchten den aktuellen Zustand beibehalten, daher „Keep Last State“.
  9. Zuordnung des in Schritt 2 eingerichteten notification channels.
Grafana: Alert einrichten im Dashboard

Nun ist der Beispiel-Alert vollständig konfiguriert und es gilt lediglich noch den Klick auf „Save“ oben rechts nicht zu vergessen.

Grafana: Änderungen im Dasboard (Alert) speichern

 

 

 

Analog zu diesem Vorgehen kann eine Vielzahl an weiteren Alerts für verschiedenste Zustände eingerichtet werden. Detailliertere Informationen und Beispiele sind hierzu auch in diversen Internetforen zu finden. Zudem stehen neben Telegram noch weitere Dienste für das Einrichten von Alarmbenachrichtigungen zur Verfügung, wie z. B. E-Mail, Google Hangouts, HipChat, LINE, Microsoft Teams, Slack oder webhook.

Habt ihr selbst bereits Alerts in Grafana eingerichtet? Wenn ja, welchen Dienst verwendet ihr und warum? Oder zu welchem Dienst würdet Ihr euch einen weiteren Artikel wünschen? Ab in die Kommentare damit 😉 

Empfohlen2 EmpfehlungenVeröffentlicht in Bedienungshilfen, Grafana, Visualisierung

Zum Thema passende Artikel

Kommentare