Publish Grafana Alerts in Gotify
Grafana als Monitoring-Lösung bietet eine breite Palette an Integrationen, sodass Sie Ihre Infrastruktur überwachen und Benachrichtigungen erhalten können. Mit Gotify können Sie ein einfaches Push-Benachrichtigungsgateway für nahezu alle Ihre Geräte einrichten.
Grafana & Grafana Alerts
Grafana ist nicht nur ein leistungsstarkes Tool zur Visualisierung von Metriken und Logs, sondern bietet auch umfangreiche Möglichkeiten für Alerting. Mit der integrierten Alerting-Funktion kannst du Schwellenwerte für deine Daten definieren und bei Abweichungen automatisch Benachrichtigungen auslösen. Die Konfiguration erfolgt direkt in den Dashboards oder über die Alerting-UI. Besonders flexibel ist die Anbindung an externe Systeme: Grafana unterstützt Webhooks, sodass sich nahezu jede Plattform integrieren lässt. Beliebt sind Benachrichtigungen an Discord, Slack oder Microsoft Teams, die über einfache Webhook-URLs eingebunden werden. So stellst du sicher, dass kritische Ereignisse sofort im richtigen Kanal landen und dein Team schnell reagieren kann.
Gotify
Gotify ist eine Open-Source-Lösung für das Versenden von Push-Benachrichtigungen, die sich ideal für eigene Anwendungen oder Server-Monitoring eignet. Im Gegensatz zu externen Diensten wie Firebase läuft Gotify komplett self-hosted, was volle Kontrolle über Daten und Infrastruktur ermöglicht. Über eine einfache REST-API können Nachrichten von beliebigen Anwendungen an den Gotify-Server gesendet werden, der sie dann an die verbundenen Clients (z. B. Mobile-App oder Web-Interface) weiterleitet. Die Plattform unterstützt Benachrichtigungen mit Prioritäten, sodass wichtige Alerts hervorgehoben werden können. Dank der offenen Architektur lassen sich Gotify-Instanzen problemlos in bestehende Systeme integrieren – sei es für Server-Statusmeldungen, CI/CD-Pipelines oder als Ergänzung zu Monitoring-Tools wie Grafana.
Grafana Webhook to Gotify
Um Benachrichtigungen aus Grafana direkt an Gotify zu übermitteln, wird die Webhook-Integration genutzt. Gotify stellt eine REST-API bereit, über die Nachrichten an den Server gesendet werden können. In Grafana wird dafür ein Notification Channel vom Typ Webhook eingerichtet. Die Ziel-URL entspricht dem Gotify-Endpunkt, z. B.:
https://<gotify-server>/message?token=<app-token>
Der Token wird in Gotify pro Anwendung generiert und dient zur Authentifizierung. Im Payload des Webhooks können Titel, Nachrichtentext und Priorität definiert werden, sodass Alerts aus Grafana als strukturierte Push-Nachrichten in Gotify erscheinen. Diese Lösung ist besonders praktisch für self-hosted Monitoring-Setups, da sie ohne externe Dienste auskommt und sich leicht automatisieren lässt. Da der Token in dieser Form direkt aus der Ziel URL abzulesen ist, empfehle ich eine abweichende Integration des Gotify-Endpunkt. Die URL beinhaltet ausschließlich den Abschnitt inklusive message:
https://gotify-server>/message
Der Token lässt sich über das Setzen der Extra-Header in den Grafana Notifications verstecken und der Sicherheitsfaktor lässt sich somit erhöhen. Um dies umzusetzen, muss unter den Extra Headers der zusätzliche Header X-Gotify-Key gesetzte werden:
Name: X-Gotify-Key Value: TOKEN
Die Webhook-Payload kann in Grafana noch beliebig angepasst werden so können entsprechend folgendem Beispiel Informationen versendet werden:
{
"title": "Grafana Alert",
"message": "CPU-Auslastung über 90% auf Server01",
"priority": 5,
"extras": {
"client::display": {
"contentType": "text/markdown"
}
}
}
Erklärung der Felder:
- title: Kurzer Titel für die Benachrichtigung.
- message: Der eigentliche Alert-Text, z. B. die Metrik oder der Zustand.
- priority: Zahl zwischen 0 und 10 (höhere Zahl = höhere Wichtigkeit).
- extras.client::display.contentType: Optional, um Markdown oder andere Formate darzustellen.
IT-Auditor by day, Homelab-Bastler by night. Ich baue, teste und dokumentiere – von Proxmox-Clustern über Smart-Home-Setups bis hin zu 3D-Druck. Wenn du Technik so liebst wie ich, bist du hier genau richtig.