Files
threadnet-operating/monitoring/README.md
T
sorbandClaude Opus 5 f9a9cb406f monitoring: Stack vollstaendig provisionierbar machen
- Grafana-Provisioning ergaenzt: Datasources (prometheus/loki) mit den
  bestehenden UIDs, damit alle Dashboards weiter funktionieren, sowie vier
  Dashboard-Provider passend zu den vorhandenen Ordnern.
- 9 Dashboards aus der laufenden Instanz exportiert und bereinigt: id/version
  entfernt, hart kodierte und verwaiste Datasource-UIDs auf die
  provisionierten UIDs umgeschrieben.
- Images von :latest auf feste Versionen gepinnt (Prometheus v3.3.1,
  Loki 3.7.1, Alloy v1.16.0, Grafana 12.0.0, node-exporter v1.9.1).
- Alloy: Docker-Metadaten (container, compose_service, compose_project) als
  Loki-Labels via discovery.relabel.
- .env-Variablen auf GRAFANA_ADMIN_USER/GRAFANA_ADMIN_PASSWORD vereinheitlicht,
  .env.example ergaenzt, .env bleibt ungetrackt.
- prometheus.yml kommentiert (Remote-Write-Quellen, Fremd-Stack-Targets),
  toten auskommentierten Matrix-Job entfernt.
- README mit Deployment, Struktur, externen Abhaengigkeiten und offenen
  Sicherheitspunkten (offene Ports 9090/3100/9100).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-30 12:13:01 +02:00

2.2 KiB

Monitoring-Stack (Operating-Host)

Prometheus + Loki + Grafana + Alloy + node-exporter fuer den Operating-Server (CFGMON). Vollstaendig provisioniert: Datasources und Dashboards liegen als Code in diesem Repo, ein docker compose up -d auf einem frischen Host stellt den kompletten Stack wieder her.

Deployment

cp .env.example .env   # Werte setzen (nur beim allerersten Start relevant)
docker network create traefik   # falls noch nicht vorhanden
docker compose up -d

Struktur

Pfad Inhalt
docker-compose.yml Stack-Definition, Images auf feste Versionen gepinnt
prometheus/prometheus.yml Scrape-Konfiguration
loki/loki-config.yaml Loki Single-Binary-Konfiguration, 90 Tage Retention
alloy/config.alloy Docker-Log-Collection -> Loki, node-exporter -> Prometheus
grafana/provisioning/ Datasources (feste UIDs!) und Dashboard-Provider
grafana/dashboards/<ordner>/*.json Dashboards, je Unterordner ein Grafana-Ordner

Externe Abhaengigkeiten

  • Remote-Write eingehend auf :9090: k3s-Cluster und Matrix-Server pushen Metriken (flux, kube_state_metrics, synapse).
  • Log-Push eingehend auf :3100 (Loki) von externen Alloys.
  • Scrape ausgehend: k3s-Host (10.0.0.2:9100), Pterodactyl-Host (157.90.155.206:9100 + :8080).
  • cadvisor und traefik werden gescraped, laufen aber in anderen Stacks (cadvisor: Portainer-Stack thread-net-git; beide haengen im externen traefik-Netz).

Dashboards aendern

Provisionierte Dashboards sind in der UI editierbar (allowUiUpdates: true), aber die JSON-Datei im Repo ist die Quelle der Wahrheit: UI-Aenderungen muessen exportiert und committet werden, sonst gehen sie beim naechsten Datei-Update verloren.

Offene Punkte / Sicherheit

  • 9090, 3100, 9100 sind auf der oeffentlichen IP ohne Auth erreichbar (Docker umgeht ufw). Per Hetzner Cloud Firewall auf die IPs der bekannten Absender einschraenken.
  • Pterodactyl-Host 157.90.155.206: node-exporter und cadvisor antworten aktuell nicht (Targets down).
  • Loki table_manager ist deprecated; Retention-Enforcement laeuft aktuell nicht ueber den Compactor -- bei Gelegenheit auf Compactor-Retention umstellen.