monitoring: HomelabPrometheusTargetDown + HomelabDiskCritical
Schliesst die zwei in ALERT_RULES.md identifizierten Hoch-Luecken: - up==0 (5m) als critical in neuer Gruppe homelab-meta — Scrape-Targets (node-exporter/cadvisor/blackbox/traefik) sind nicht laenger stille Ausfaelle. - Disk-Critical bei >95% (5m) als critical, zusaetzlich zum bestehenden Warning bei >85% — fuer DB/appdata/Cache-Schreibblockaden. ALERT_RULES.md Tabellen und Status-Abschnitt aktualisiert. Wird wirksam nach Prometheus-Reload via Komodo-Redeploy des monitoring-Stacks. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
+17
-39
@@ -47,6 +47,7 @@ Severity-Routing der Bridge: `critical` und `warning` gehen beide auf
|
||||
| Alarm | Trigger (PromQL, gekuerzt) | Schwelle / `for` | Severity | Was tun |
|
||||
|---|---|---|---|---|
|
||||
| `HomelabDiskAlmostFull` | `100*(1-avail/size) > 85` (ohne tmpfs/overlay) | >85% / 10m | warning | Mountpoint aufraeumen / erweitern |
|
||||
| `HomelabDiskCritical` | `100*(1-avail/size) > 95` (ohne tmpfs/overlay) | >95% / 5m | critical | Sofort Platz schaffen — Writes drohen zu scheitern (DB, appdata, Cache) |
|
||||
| `HomelabHighMemoryUsage` | `100*(1-MemAvailable/MemTotal) > 90` | >90% / 10m | warning | Speicherfresser identifizieren, ggf. Container-Limit (F-19) |
|
||||
| `HomelabTraefik5xx` | `increase(traefik_service_requests_total{5..}[5m]) >= 5` je Service | ≥5 / 2m | warning | Backend des betroffenen Service pruefen |
|
||||
|
||||
@@ -64,6 +65,12 @@ Severity-Routing der Bridge: `critical` und `warning` gehen beide auf
|
||||
Die Liste der ueberwachten Critical-Container steht in
|
||||
`services/posture-check/export-prometheus-textfile.sh` (`CRITICAL_CONTAINERS`).
|
||||
|
||||
### Gruppe `homelab-meta`
|
||||
|
||||
| Alarm | Trigger (PromQL, gekuerzt) | Schwelle / `for` | Severity | Was tun |
|
||||
|---|---|---|---|---|
|
||||
| `HomelabPrometheusTargetDown` | `up == 0` | =0 / 5m | critical | Scrape-Ziel (node-exporter/cadvisor/blackbox/traefik) pruefen — Metriken sind sonst still |
|
||||
|
||||
## Bewertung: Sind die Alarme sinnvoll?
|
||||
|
||||
Insgesamt solide. Die Erreichbarkeits-Gruppe ist gut entworfen — der
|
||||
@@ -87,40 +94,13 @@ Anmerkungen / Feinschliff (kein Handlungsdruck):
|
||||
|
||||
## Bewertung: Fehlt etwas? (Luecken, priorisiert)
|
||||
|
||||
### Hoch — echter blinder Fleck
|
||||
### Hoch — erledigt 2026-05-30
|
||||
|
||||
1. **Kein `up == 0` auf Scrape-Targets.** Faellt **node-exporter**, **cadvisor**,
|
||||
**blackbox-exporter** oder **traefik** als Scrape-Ziel aus, verschwinden die
|
||||
zugehoerigen Metriken still — und mit ihnen die darauf gebauten Alarme. Nur
|
||||
der Textfile-Pfad ist ueber `BorgMetricsMissing` / `TextfileExporterStale`
|
||||
abgesichert, der Rest nicht. Empfohlen:
|
||||
|
||||
```yaml
|
||||
- alert: HomelabPrometheusTargetDown
|
||||
expr: up == 0
|
||||
for: 5m
|
||||
labels:
|
||||
severity: critical
|
||||
annotations:
|
||||
summary: "Prometheus target down: {{ $labels.job }} / {{ $labels.instance }}"
|
||||
description: "Scrape target {{ $labels.instance }} (job {{ $labels.job }}) is unreachable."
|
||||
```
|
||||
|
||||
2. **Kein Disk-Critical-Tier.** Nur ein Warning bei 85 %, kein Critical bei
|
||||
~95 %. Eine volllaufende Cache-/appdata-Disk blockiert Schreibzugriffe und
|
||||
damit DB-Writes — fuer Familien-Nutzung teurer als nur Operator-Zeit.
|
||||
Empfohlen (eng auf kritische Pfade gefiltert):
|
||||
|
||||
```yaml
|
||||
- alert: HomelabDiskCritical
|
||||
expr: 100 * (1 - node_filesystem_avail_bytes{fstype!~"tmpfs|overlay"} / node_filesystem_size_bytes{fstype!~"tmpfs|overlay"}) > 95
|
||||
for: 5m
|
||||
labels:
|
||||
severity: critical
|
||||
annotations:
|
||||
summary: "Disk critically full on {{ $labels.mountpoint }}"
|
||||
description: "{{ $labels.mountpoint }} is above 95% used."
|
||||
```
|
||||
1. ~~Kein `up == 0` auf Scrape-Targets~~ → **`HomelabPrometheusTargetDown`**
|
||||
umgesetzt (Gruppe `homelab-meta`). Faellt node-exporter/cadvisor/blackbox/
|
||||
traefik aus, feuert jetzt nach 5 Minuten ein Critical.
|
||||
2. ~~Kein Disk-Critical-Tier~~ → **`HomelabDiskCritical`** bei >95 % umgesetzt
|
||||
(Gruppe `homelab-host`), zusaetzlich zum bestehenden Warning bei >85 %.
|
||||
|
||||
### Mittel — sinnvoll, aber kein Notstand
|
||||
|
||||
@@ -142,10 +122,8 @@ Anmerkungen / Feinschliff (kein Handlungsdruck):
|
||||
(Container-Memory-Limits) ausloesen wuerde.
|
||||
- **Cert/Token-Health jenseits TLS-Ablauf** → `cert-token-check.sh`.
|
||||
|
||||
## Empfehlung
|
||||
## Stand
|
||||
|
||||
Die zwei Hoch-Luecken (`up == 0` Target-Down und Disk-Critical) sind der
|
||||
lohnendste naechste Schritt: wenige Zeilen, schliessen einen echten blinden
|
||||
Fleck und kosten keine Laufzeit. Umsetzung bewusst als eigener Aenderungsblock,
|
||||
weil sie `monitoring/prometheus/alerts.yml` aendert und damit einen
|
||||
Prometheus-Reload/Komodo-Deploy nach sich zieht.
|
||||
Die zwei Hoch-Luecken sind seit 2026-05-30 in `alerts.yml` umgesetzt. Naechster
|
||||
optionaler Schritt waere der Dead-Man's-Switch ueber einen externen Heartbeat-
|
||||
Waechter; ohne familienkritischen Anlass aber nicht eilig.
|
||||
|
||||
Reference in New Issue
Block a user