55 lines
2.2 KiB
Markdown
55 lines
2.2 KiB
Markdown
# 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
|
||
|
|
|
||
|
|
```bash
|
||
|
|
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.
|