Grafana
Grafana macht aus rohen Zeitreihen-Daten lesbare Dashboards: Du verbindest Datenquellen wie Prometheus oder InfluxDB und visualisierst Metriken aus IoT- und OT-Umgebungen in Echtzeit.
Sensorwerte, Maschinenmetriken und Netzwerk-Telemetrie sind nur dann nützlich, wenn man sie auch sieht. Grafana ist das De-facto-Standardwerkzeug, um genau das zu tun: Es zapft bestehende Datenquellen an und stellt deren Zeitreihen als Graphen, Gauges und Tabellen auf konfigurierbaren Dashboards dar. In dieser Anleitung lernst du, wofür sich Grafana eignet, welche Konzepte du kennen solltest und wie du es sauber mit Docker und persistenten Daten betreibst.
Was ist Grafana?
Grafana ist eine Open-Source-Plattform zur Visualisierung und Analyse von Zeitreihen-Daten. Es speichert die Messwerte selbst nicht, sondern fragt sie aus angebundenen Datenquellen ab und stellt sie in interaktiven Dashboards dar. Typischerweise sitzt Grafana am Ende einer Monitoring-Kette: Eine Datenbank wie Prometheus oder InfluxDB sammelt die Metriken von Geräten und Diensten ein, und Grafana macht sie für Menschen lesbar. Über die eingebauten Alerting-Funktionen lassen sich zudem Schwellwerte definieren, die bei Überschreitung Benachrichtigungen auslösen.
Wofür eignet sich Grafana?
IoT- und OT-Monitoring. Temperatur, Feuchte, Stromverbrauch oder Maschinenzustände aus Sensoren werden in Live-Dashboards sichtbar gemacht, oft kombiniert mit einer Zeitreihen-DB als Datenquelle.
Infrastruktur-Überwachung. CPU, RAM, Festplatten und Netzwerk von Servern oder Containern lassen sich gemeinsam mit Prometheus oder anderen Exportern zentral darstellen.
Alerting. Du definierst Regeln auf Basis deiner Metriken und lässt Grafana bei kritischen Werten via E-Mail, Slack oder Webhook benachrichtigen, bevor etwas ausfällt.
Mandanten- und Team-Dashboards. Über Ordner, Berechtigungen und Organisationen kannst du Dashboards gezielt für verschiedene Teams oder Kunden freigeben.
Zentrale Konzepte
Datenquellen (Data Sources). Grafana selbst hält keine Messwerte vor. Du bindest externe Quellen wie Prometheus, InfluxDB, Loki oder SQL-Datenbanken an, aus denen die Panels ihre Daten ziehen.
Dashboards und Panels. Ein Dashboard bündelt mehrere Panels; jedes Panel führt eine Query gegen eine Datenquelle aus und rendert das Ergebnis als Graph, Gauge, Tabelle oder Heatmap.
Eigene Konfigurations-DB. Dashboards, Benutzer, Plugins und Einstellungen speichert Grafana standardmässig in einer eingebetteten SQLite-Datenbank unter /var/lib/grafana. Genau dieser Pfad muss persistiert werden, sonst sind nach einem Neustart des Containers alle Dashboards weg.
Grafana ist ein Visualisierungs-Layer, keine Datenbank. Es braucht mindestens eine Datenquelle (z.B. Prometheus oder InfluxDB), aus der es Metriken liest. Plane diesen Dienst mit ein, sonst hast du ein leeres Dashboard.
Installation mit Docker
Grafana legt Dashboards, Benutzer, Plugins und seine eingebettete SQLite-Konfigurations-DB im Verzeichnis /var/lib/grafana ab. Genau dieser Pfad wird mit einem benannten Volume (grafana-storage) persistiert, damit deine Dashboards und Einstellungen einen Container-Neustart oder ein Image-Update überleben. Das offizielle Image grafana/grafana-oss läuft intern als uid 472, weshalb das benannte Volume (im Gegensatz zu einem rohen Host-Pfad) die Rechte automatisch korrekt setzt. Wir pinnen hier den stabilen Major-Tag 12; gegen die jeweils neueste Version kannst du alternativ grafana/grafana-oss:latest verwenden.
1docker run -d \2 --name grafana \3 -p 3000:3000 \4 -e GF_SECURITY_ADMIN_USER=admin \5 -e GF_SECURITY_ADMIN_PASSWORD=DeinSicheresPasswort \6 -v grafana-storage:/var/lib/grafana \7 grafana/grafana-oss:12
Oder als wiederverwendbare docker-compose.yml:
1services:2 grafana:3 image: grafana/grafana-oss:124 container_name: grafana5 restart: unless-stopped6 ports:7 - "3000:3000"8 environment:9 - GF_SECURITY_ADMIN_USER=admin10 - GF_SECURITY_ADMIN_PASSWORD=DeinSicheresPasswort11 volumes:12 - grafana-storage:/var/lib/grafana1314volumes:15 grafana-storage:
Setze GF_SECURITY_ADMIN_PASSWORD zwingend auf ein eigenes, starkes Passwort, bevor der Container ans Netz geht (Default ist andernfalls admin/admin). Ohne benanntes Volume auf /var/lib/grafana gehen alle Dashboards, Benutzer und Plugins beim Entfernen des Containers verloren. Erstelle das Volume bei Bedarf vorab mit: docker volume create grafana-storage.
Prüfe nach dem Start, ob die Web-Oberfläche erreichbar ist und der Login funktioniert:
1# HTTP-Status der Login-Seite prüfen2curl -I http://SERVER:300034# Health-Endpoint von Grafana abfragen5curl http://SERVER:3000/api/health67# Danach http://SERVER:3000 im Browser öffnen8# und mit admin / DeinSicheresPasswort einloggen
Fazit
Grafana ist das Fenster auf deine Daten: Es selbst speichert keine Metriken, sondern macht die Zeitreihen aus angebundenen Quellen wie Prometheus oder InfluxDB in aussagekräftigen Dashboards sichtbar und alarmiert bei kritischen Werten. Mit dem offiziellen Image grafana/grafana-oss:12, einem starken Admin-Passwort und einem benannten Volume auf /var/lib/grafana hast du in wenigen Minuten eine produktionstaugliche, persistente Visualisierungs-Plattform am Laufen. Denk nur daran, mindestens eine Datenquelle bereitzustellen, damit aus dem leeren Dashboard echte Einblicke werden.
