Grafana: Installation mit Docker Compose
Auf einen Blick
| Gilt für | Grafana 13.2 als Docker-Container (grafana/grafana-enterprise bzw. grafana/grafana) mit PostgreSQL 18 auf Linux; Alternative Paketinstallation unter Debian 13 |
|---|---|
| Bereich | Server-Software |
| Dauer | ca. 45 Minuten |
| Rechte | Root bzw. Mitglied der Gruppe docker |
| Stand | Oktober 2026 |
Grafana mit Docker Compose installieren ist der schnellste Weg zu einer sauber getrennten, leicht aktualisierbaren Grafana-Instanz: ein Container für Grafana, eine PostgreSQL-Datenbank für Dashboards, Benutzer und Alarmregeln, die Konfiguration komplett über Umgebungsvariablen und Dateien im Projektordner. Diese Anleitung zeigt die Wahl des Images, eine produktionsreife Compose-Datei, die wichtigsten Einstellungen, den Betrieb hinter einem Reverse Proxy und die Installation von Plugins. Wer Grafana lieber als Paket auf Debian installiert, findet das in Installation von InfluxDB und Grafana auf Debian 13.

Welches Image?
| Image | Inhalt | Empfehlung |
|---|---|---|
grafana/grafana-enterprise |
alle Open-Source-Funktionen; Enterprise-Funktionen nach Lizenzaktivierung | vom Hersteller als Standard empfohlen, kostenlos |
grafana/grafana |
reine Open-Source-Version (AGPL-3.0) | wenn ausschließlich Open Source gewünscht ist |
grafana/grafana-oss |
veraltet | wird seit 12.4 nicht mehr aktualisiert |
Die Standard-Images basieren auf Alpine Linux. Immer eine feste Version wie 13.2.4 verwenden.
Schritt 1: Verzeichnisse und Geheimnisse
sudo mkdir -p /opt/grafana/{provisioning/datasources,provisioning/dashboards,secrets,backup} && cd /opt/grafana
openssl rand -base64 24 > secrets/admin_password
openssl rand -hex 24 > secrets/db_password
sudo chmod 600 secrets/*
Schritt 2: Grafana mit Docker Compose konfigurieren
services:
grafana:
image: grafana/grafana-enterprise:13.2.4
restart: unless-stopped
depends_on: [db]
ports:
- "127.0.0.1:3000:3000"
volumes:
- grafana-data:/var/lib/grafana
- ./provisioning:/etc/grafana/provisioning:ro
- ./secrets:/run/secrets:ro
environment:
GF_SERVER_ROOT_URL: https://grafana.firma.de/
GF_SERVER_DOMAIN: grafana.firma.de
GF_DATABASE_TYPE: postgres
GF_DATABASE_HOST: db:5432
GF_DATABASE_NAME: grafana
GF_DATABASE_USER: grafana
GF_DATABASE_PASSWORD__FILE: /run/secrets/db_password
GF_SECURITY_ADMIN_PASSWORD__FILE: /run/secrets/admin_password
GF_SECURITY_COOKIE_SECURE: "true"
GF_SECURITY_DISABLE_GRAVATAR: "true"
GF_USERS_ALLOW_SIGN_UP: "false"
GF_AUTH_ANONYMOUS_ENABLED: "false"
GF_ANALYTICS_REPORTING_ENABLED: "false"
GF_SMTP_ENABLED: "true"
GF_SMTP_HOST: smtp.firma.de:587
GF_SMTP_FROM_ADDRESS: grafana@firma.de
GF_DATE_FORMATS_DEFAULT_TIMEZONE: Europe/Berlin
GF_PLUGINS_PREINSTALL: alexanderzobnin-zabbix-app
db:
image: postgres:18
restart: unless-stopped
volumes:
- ./pgdata:/var/lib/postgresql
environment:
POSTGRES_DB: grafana
POSTGRES_USER: grafana
POSTGRES_PASSWORD_FILE: /run/secrets/db_password
secrets: [db_password]
secrets:
db_password:
file: ./secrets/db_password
volumes:
grafana-data:
- Jede Einstellung aus
grafana.inilässt sich als UmgebungsvariableGF_<ABSCHNITT>_<SCHLÜSSEL>setzen; mit dem Zusatz__FILEliest Grafana den Wert aus einer Datei – Passwörter stehen so nicht in der Compose-Datei. - PostgreSQL statt SQLite: SQLite reicht für Tests, für mehrere Benutzer, viele Alarmregeln und einen späteren Hochverfügbarkeitsbetrieb ist PostgreSQL robuster. Bei SQLite kann die Speichermigration von Grafana 13 an Sperren scheitern.
- Plugins:
GF_PLUGINS_PREINSTALLinstalliert Plugins beim Start, hier als Beispiel das Zabbix-Plugin. Nur benötigte und gepflegte Plugins installieren. - Telemetrie:
GF_ANALYTICS_REPORTING_ENABLED=falseschaltet die anonyme Nutzungsstatistik an Grafana Labs ab.
docker compose up -d && docker compose logs -f grafana
Schritt 3: Reverse Proxy
Grafana lauscht nur lokal; ein Reverse Proxy stellt https://grafana.firma.de bereit. Beispiel nginx:
location / {
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:3000;
}
location /api/live/ {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:3000;
}
/api/live/ist der WebSocket-Pfad für Live-Aktualisierungen.GF_SERVER_ROOT_URLmuss der öffentlichen Adresse entsprechen – sonst funktionieren Links in Alarm-Mails und die Anmeldung mit Entra ID nicht. Für einen Unterpfad wie/grafana/zusätzlichGF_SERVER_SERVE_FROM_SUB_PATH=true.- Grafana gehört ins interne Netz bzw. VPN; nur wenn nötig öffentlich, dann mit SSO und zusätzlichem Schutz.
Schritt 4: Erste Anmeldung
https://grafana.firma.deöffnen, alsadminmit dem Passwort aussecrets/admin_passwordanmelden.- Unter Administration › Users and access persönliche Konten bzw. SSO einrichten, siehe Grafana: Benutzer, Rechte und Anmeldung mit Entra ID; das Konto
adminnur noch als Notfallzugang nutzen. - Mit dem Grafana Advisor (im Bereich Administration) die Gesundheitsprüfung der Instanz laufen lassen – er meldet z. B. veraltete Plugins und fehlerhafte Datenquellen.
- Erste Datenquelle anlegen, siehe Grafana: Datenquellen und Dashboards erstellen.
Updates
cd /opt/grafana
docker compose exec -T db pg_dump -U grafana -Fc grafana > backup/grafana-$(date +%F).dump
# Tag in compose.yaml anheben, dann:
docker compose pull && docker compose up -d && docker compose logs --tail 100 grafana
- Patch-Versionen (z. B. 13.2.3 → 13.2.4) enthalten Sicherheitskorrekturen – zeitnah einspielen.
- Beim Wechsel der Haupt- oder Minor-Version die Upgrade-Hinweise lesen; Grafana 13 hat einige Änderungen, die Skripte und Plugins betreffen, siehe Grafana: Absichern, Backup und Updates.
- Ab Grafana 13 heißen die Kommandos
grafana cliundgrafana server;grafana-cliundgrafana-servergibt es nicht mehr.
Hinweise
- Bildwiedergabe (PNG-Export, Bilder in Alarm-Mails, Berichte) braucht seit Grafana 13 den Image Renderer als eigenen Dienst; das frühere Plugin wird nicht mehr unterstützt.
- Hochverfügbarkeit: Mehrere Grafana-Container mit gemeinsamer PostgreSQL-Datenbank hinter einem Load Balancer sind möglich; für das Alerting dann die HA-Einstellungen beachten.
- Bei Aufbau und Betrieb von Linux-Servern und Containern unterstützt Sie das Linux-Consulting von m.a.x. it.
Siehe auch
- Grafana im Unternehmen – Überblick und alle Artikel der Reihe
- Installation von InfluxDB und Grafana auf Debian 13
- Docker
- PostgreSQL
Links und Quellen
Über m.a.x. it Die m.a.x. Informationstechnologie AG ist seit über 30 Jahren IT-Partner mittelständischer und großer Unternehmen in München und bietet maßgeschneiderte Lösungen und Services in den Bereichen Cloud, Cybersecurity, Netzwerk, Windows, Linux und Softwareentwicklung. Sie haben eine Frage zu diesem Artikel oder brauchen Unterstützung?
