Zeitreihen-Stack aufsetzen - InfluxDB und Grafana mit Docker
Zeitreihen-Stack aufsetzen - InfluxDB und Grafana mit Docker
InfluxDB als Zeitreihendatenbank, Grafana für Dashboards — in wenigen Minuten steht ein vollständiges Monitoring-System.
Was wir bauen
- InfluxDB 2: Speichert Metriken als Zeitreihen
- Grafana: Visualisiert die Daten in Dashboards
- Telegraf: Sammelt System-Metriken (CPU, RAM, Disk) und schreibt sie in InfluxDB
docker-compose.yml
services:
influxdb:
image: influxdb:2.7
restart: unless-stopped
ports:
- "8086:8086"
environment:
DOCKER_INFLUXDB_INIT_MODE: setup
DOCKER_INFLUXDB_INIT_USERNAME: admin
DOCKER_INFLUXDB_INIT_PASSWORD: supersecretpassword
DOCKER_INFLUXDB_INIT_ORG: myorg
DOCKER_INFLUXDB_INIT_BUCKET: metrics
DOCKER_INFLUXDB_INIT_ADMIN_TOKEN: mytoken123
volumes:
- influxdb-data:/var/lib/influxdb2
grafana:
image: grafana/grafana:latest
restart: unless-stopped
ports:
- "3000:3000"
environment:
GF_SECURITY_ADMIN_PASSWORD: grafanapassword
volumes:
- grafana-data:/var/lib/grafana
depends_on:
- influxdb
telegraf:
image: telegraf:latest
restart: unless-stopped
volumes:
- ./telegraf.conf:/etc/telegraf/telegraf.conf:ro
- /proc:/host/proc:ro
- /sys:/host/sys:ro
environment:
HOST_PROC: /host/proc
HOST_SYS: /host/sys
depends_on:
- influxdb
volumes:
influxdb-data:
grafana-data:
Telegraf-Konfiguration
Minimale telegraf.conf für System-Metriken:
[agent]
interval = "10s"
[[outputs.influxdb_v2]]
urls = ["http://influxdb:8086"]
token = "mytoken123"
organization = "myorg"
bucket = "metrics"
[[inputs.cpu]]
percpu = false
totalcpu = true
[[inputs.mem]]
[[inputs.disk]]
ignore_fs = ["tmpfs", "devtmpfs"]
[[inputs.net]]
Stack starten
docker compose up -d
docker compose logs -f influxdb # warten bis InfluxDB bereit ist
InfluxDB initialisiert beim ersten Start automatisch Organisation, Bucket und Admin-Account — dank der DOCKER_INFLUXDB_INIT_* Variablen.
Grafana einrichten
http://localhost:3000aufrufen, Login:admin/grafanapassword- Data Sources → Add data source → InfluxDB
- Query Language: Flux
- URL:
http://influxdb:8086 - Organization:
myorg, Token:mytoken123, Default Bucket:metrics - Save & Test
Fertige Dashboards importieren
Grafana hat eine Dashboard-Bibliothek unter grafana.com/grafana/dashboards. Dashboard für Telegraf-System-Metriken:
- Dashboard → Import → ID:
928(Telegraf: system dashboard)
Der Dashboard lädt die InfluxDB-Daten automatisch und zeigt CPU, RAM, Disk und Netzwerk in Echtzeit.
Ergebnis
Nach weniger als 10 Minuten läuft ein vollständiges Monitoring-System: Telegraf sammelt alle 10 Sekunden System-Metriken, InfluxDB speichert sie dauerhaft, Grafana zeigt sie auf einem professionellen Dashboard. Alle Daten überleben Neustarts durch benannte Volumes.