Grafana: Installation mit Docker Compose

Aus maxTechCorner

Auf einen Blick

Gilt fürGrafana 13.2 als Docker-Container (grafana/grafana-enterprise bzw. grafana/grafana) mit PostgreSQL 18 auf Linux; Alternative Paketinstallation unter Debian 13
BereichServer-Software
Dauerca. 45 Minuten
RechteRoot bzw. Mitglied der Gruppe docker
StandOktober 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.

Grafana mit Docker Compose: Container grafana/grafana-enterprise 13.2 (kostenlos, enthält alle Open-Source-Funktionen) auf Port 3000 nur lokal, PostgreSQL 18 statt SQLite für Dashboards, Benutzer und Alarmregeln, Ordner provisioning für Datenquellen und Dashboards, Konfiguration per GF_-Umgebungsvariablen mit Geheimnissen aus Dateien (__FILE), Reverse Proxy mit HTTPS und root_url, Plugins per GF_PLUGINS_PREINSTALL; Admin-Passwort sofort ändern, Registrierung und anonymen Zugriff aus.

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.ini lässt sich als Umgebungsvariable GF_<ABSCHNITT>_<SCHLÜSSEL> setzen; mit dem Zusatz __FILE liest 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_PREINSTALL installiert Plugins beim Start, hier als Beispiel das Zabbix-Plugin. Nur benötigte und gepflegte Plugins installieren.
  • Telemetrie: GF_ANALYTICS_REPORTING_ENABLED=false schaltet 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_URL muss der öffentlichen Adresse entsprechen – sonst funktionieren Links in Alarm-Mails und die Anmeldung mit Entra ID nicht. Für einen Unterpfad wie /grafana/ zusätzlich GF_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

  1. https://grafana.firma.de öffnen, als admin mit dem Passwort aus secrets/admin_password anmelden.
  2. Unter Administration › Users and access persönliche Konten bzw. SSO einrichten, siehe Grafana: Benutzer, Rechte und Anmeldung mit Entra ID; das Konto admin nur noch als Notfallzugang nutzen.
  3. Mit dem Grafana Advisor (im Bereich Administration) die Gesundheitsprüfung der Instanz laufen lassen – er meldet z. B. veraltete Plugins und fehlerhafte Datenquellen.
  4. 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 cli und grafana server; grafana-cli und grafana-server gibt 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

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? Kontakt aufnehmen