5.0 KiB
Grafana + InfluxDB 3 Core
Status: abgeloester Altstand. Der zentrale Zielzustand ist monitoring/ mit monitoring-grafana, monitoring-influxdb3-core, Prometheus, Loki und Promtail.
Monitoring-Stack fuer Grafana + InfluxDB 3 Core. InfluxDB bleibt ohne Public Route; interne Writer wie Home Assistant koennen ueber einen gezielt gebundenen LAN-Port schreiben.
Nach erfolgreichem monitoring/-Deploy diesen Stack nicht parallel weiterbetreiben. Er bleibt vorerst als Rollback- und Migrationsreferenz im Repo.
Quellen / Entscheidungen
- Grafana nutzt das offizielle OSS-Image
grafana/grafana:12.4.3. - InfluxDB nutzt
influxdb:3.9.1-core, nichtlatest, weillatestbei InfluxDB aktiv in Richtung InfluxDB 3 umgestellt wird. - Grafana wird ueber Traefik +
authelia@file,secure-headers@fileuntergrafana.kaleschke.infoveroeffentlicht. - InfluxDB bleibt ohne Traefik-Route. Der HTTP-Port
8181kann fuer interne Writer wie Home Assistant ueberINFLUXDB_BIND_IPauf eine LAN-Adresse gebunden werden; Default ist127.0.0.1. - InfluxDB haengt an zwei Compose-Netzen:
grafana_influx_internalfuer Grafana undgrafana_influx_lanfuer das Docker Host-Port-Publishing. Im laufenden Komodo-Stack heissen sie durch den Compose-Projektpraefixgrafana_grafana_influx_internalundgrafana_grafana_influx_lan. InfluxDB haengt bewusst nicht imfrontend_net. - Grafana provisioning legt eine SQL-Datenquelle fuer InfluxDB 3 Core mit der Datenbank
homelabund eine Loki-Datasource fuer Container-Logs an. - Der Grafana-Datasource-Token liegt als Secret-Datei auf dem Host und wird beim Containerstart nur containerintern in die fuer Grafana-Provisioning noetige Environment-Variable geladen.
- Home Assistant schreibt mit der InfluxDB-v2-API-Kompatibilitaet nach InfluxDB 3; Details:
docs/HOME_ASSISTANT_INFLUXDB_ECOWITT.md.
Initiale Einrichtung
-
Secret fuer Grafana anlegen:
install -m 600 /dev/null /mnt/user/appdata/secrets/grafana_admin_password.txt -
Offline-Admin-Token fuer InfluxDB 3 als JSON anlegen:
{ "token": "apiv3_REPLACE_WITH_STRONG_RANDOM_TOKEN", "name": "admin", "description": "Admin token for KalliLab InfluxDB 3 Core" }Pfad:
/mnt/user/appdata/secrets/influxdb3_admin_token.json, Rechte600. -
Grafana-Datasource-Token anlegen. Fuer InfluxDB 3 Core aktuell einen eigenen Named-Admin-Token verwenden, damit der Grafana-Zugang getrennt vom initialen Operator-/Admin-Token rotiert werden kann:
install -m 600 /dev/null /mnt/user/appdata/secrets/grafana_influxdb_token.txt -
Provisioning-Dateien aus dem Git-Checkout auf den Host-Appdata-Pfad kopieren:
mkdir -p /mnt/user/appdata/grafana/provisioning/datasources mkdir -p /mnt/user/appdata/grafana/provisioning/dashboards cp /mnt/user/appdata/komodo/core/repos/homelab-infra/ops/grafana-influxdb/provisioning/datasources/influxdb.yml /mnt/user/appdata/grafana/provisioning/datasources/influxdb.yml cp /mnt/user/appdata/komodo/core/repos/homelab-infra/ops/grafana-influxdb/provisioning/dashboards/* /mnt/user/appdata/grafana/provisioning/dashboards/ chmod 644 /mnt/user/appdata/grafana/provisioning/datasources/influxdb.yml chmod 644 /mnt/user/appdata/grafana/provisioning/dashboards/* -
Nach dem ersten Start die Datenbank anlegen:
docker exec influxdb3-core influxdb3 create database homelab --token "$INFLUXDB3_AUTH_TOKEN"
Smoke-Test nach Deploy
https://grafana.kaleschke.infooeffnet nach Authelia die Grafana-Loginseite.- Grafana
Connections -> Data sources -> InfluxDB 3 Core -> Save & testist erfolgreich. - Grafana
Connections -> Data sources -> Loki -> Save & testist erfolgreich, sobald der Loki/Alloy-Stack laeuft. - Die provisionierten Dashboards
Logs - Last 60m,Container Restart EventsundContainer Error Ratesind sichtbar. - InfluxDB bleibt ohne Public Route. Falls
INFLUXDB_BIND_IPauf die LAN-IP gesetzt ist, ist Port8181nur im internen Netz fuer Writer wie Home Assistant erreichbar. docker pszeigt fuerinfluxdb3-core192.168.178.58:8181->8181/tcpoder den perINFLUXDB_BIND_IPgesetzten Host.ss -ltnp | grep 8181zeigt einen Listener auf der gebundenen Host-IP.curl -i http://192.168.178.58:8181/liefert ohne Token erwartbar401 Unauthorized.
Drift-Check
Wenn Komodo, Gitea und Runtime nicht zusammenpassen, zuerst docs/GITOPS_DRIFT_RUNBOOK.md verwenden. Besonders wichtig:
cd /mnt/user/services/stacks/grafana
git rev-parse --short HEAD
grep -nE "ports:|grafana_influx_lan|grafana_influx_internal" -A4 -B2 ops/grafana-influxdb/docker-compose.yml
docker inspect influxdb3-core --format '{{json .NetworkSettings.Ports}}'
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" | grep influx
ss -ltnp | grep 8181
Rollback
- Stack in Komodo stoppen oder Git auf den letzten Stand ohne
ops/grafana-influxdbzuruecknehmen. - Persistente Daten liegen unter
/mnt/user/appdata/grafanaund/mnt/user/appdata/influxdb3; nicht automatisch loeschen.