Tune homelab availability alerts
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
# Alerting Map
|
# Alerting Map
|
||||||
|
|
||||||
Stand: 2026-05-17
|
Stand: 2026-05-23
|
||||||
|
|
||||||
Ziel: Alle problemrelevanten Homelab-Meldungen landen auf einem Handy-Topic.
|
Ziel: Alle problemrelevanten Homelab-Meldungen landen auf einem Handy-Topic.
|
||||||
|
|
||||||
@@ -28,3 +28,4 @@ Ziel: Alle problemrelevanten Homelab-Meldungen landen auf einem Handy-Topic.
|
|||||||
- `NTFY_BASE_URL` zeigt standardmaessig auf `https://ntfy.kaleschke.info`.
|
- `NTFY_BASE_URL` zeigt standardmaessig auf `https://ntfy.kaleschke.info`.
|
||||||
- Neue Problem-Alerts sollen `homelab-alerts` nutzen.
|
- Neue Problem-Alerts sollen `homelab-alerts` nutzen.
|
||||||
- Erfolgsmeldungen sind optional und sollen nicht in `homelab-alerts` landen, ausser sie sind bewusst als Lebenszeichen gewuenscht.
|
- Erfolgsmeldungen sind optional und sollen nicht in `homelab-alerts` landen, ausser sie sind bewusst als Lebenszeichen gewuenscht.
|
||||||
|
- Blackbox-Endpoint-Alerts sollen bekannte WAN-/Provider-Sammelausfaelle zusammenfassen, damit kurze DSL-Reconnects keine ntfy-Flut pro Domain erzeugen.
|
||||||
|
|||||||
@@ -76,6 +76,11 @@ Prometheus wertet `monitoring/prometheus/alerts.yml` aus und sendet an `monitori
|
|||||||
Alertmanager routet alle Alerts an den ntfy-Bridge-Container.
|
Alertmanager routet alle Alerts an den ntfy-Bridge-Container.
|
||||||
Der Bridge-Container postet nach `https://ntfy.kaleschke.info/homelab-alerts`.
|
Der Bridge-Container postet nach `https://ntfy.kaleschke.info/homelab-alerts`.
|
||||||
|
|
||||||
|
Blackbox-HTTP-Alerts unterscheiden zwischen einem einzelnen kaputten Endpoint und einem externen Connectivity-Problem:
|
||||||
|
|
||||||
|
- `HomelabExternalConnectivityDown` feuert, wenn mindestens 5 Public-Endpoints gleichzeitig fuer 8 Minuten nicht erreichbar sind. Das deckt WAN-, DNS- oder Provider-Ausfaelle ab, inklusive laengerer DSL-Reconnects.
|
||||||
|
- `HomelabEndpointDown` feuert fuer einzelne Endpoints erst nach 8 Minuten und wird unterdrueckt, solange der Sammelalert aktiv ist. Dadurch erzeugt ein Telekom-24h-Reconnect keine ntfy-Flut pro Domain.
|
||||||
|
|
||||||
Test:
|
Test:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
@@ -1,9 +1,18 @@
|
|||||||
groups:
|
groups:
|
||||||
- name: homelab-availability
|
- name: homelab-availability
|
||||||
rules:
|
rules:
|
||||||
|
- alert: HomelabExternalConnectivityDown
|
||||||
|
expr: sum(probe_success{job="blackbox-http"} == 0) >= 5
|
||||||
|
for: 8m
|
||||||
|
labels:
|
||||||
|
severity: warning
|
||||||
|
annotations:
|
||||||
|
summary: "External connectivity appears down"
|
||||||
|
description: "At least 5 public homelab endpoints are unreachable. Likely WAN, DNS, or provider issue."
|
||||||
|
|
||||||
- alert: HomelabEndpointDown
|
- alert: HomelabEndpointDown
|
||||||
expr: probe_success{job="blackbox-http"} == 0
|
expr: (probe_success{job="blackbox-http"} == 0) unless on() (sum(probe_success{job="blackbox-http"} == 0) >= 5)
|
||||||
for: 2m
|
for: 8m
|
||||||
labels:
|
labels:
|
||||||
severity: critical
|
severity: critical
|
||||||
annotations:
|
annotations:
|
||||||
@@ -40,10 +49,10 @@ groups:
|
|||||||
description: "Host memory usage is above 90%."
|
description: "Host memory usage is above 90%."
|
||||||
|
|
||||||
- alert: HomelabTraefik5xx
|
- alert: HomelabTraefik5xx
|
||||||
expr: sum(rate(traefik_service_requests_total{code=~"5.."}[5m])) by (service) > 0
|
expr: sum(increase(traefik_service_requests_total{code=~"5.."}[5m])) by (service) >= 5
|
||||||
for: 2m
|
for: 2m
|
||||||
labels:
|
labels:
|
||||||
severity: warning
|
severity: warning
|
||||||
annotations:
|
annotations:
|
||||||
summary: "Traefik 5xx responses for {{ $labels.service }}"
|
summary: "Traefik 5xx responses for {{ $labels.service }}"
|
||||||
description: "Traefik reports 5xx responses for {{ $labels.service }}."
|
description: "Traefik reports at least 5 5xx responses for {{ $labels.service }} within 5 minutes."
|
||||||
|
|||||||
Reference in New Issue
Block a user