feat(alerting): groupe homelab — être prévenu sur Telegram quand (ou juste avant que) le lab tombe #13

Merged
arcodange merged 1 commits from arcodange/homelab-alerts into main 2026-07-24 00:29:30 +02:00
Owner

Pourquoi

Incident 2026-07-23 : un build CI sans limites a épuisé la RAM de pi1 → load15 > 150 → traefik + apiserver affamés → tout *.arcodange.lab injoignable pendant ~1h, et personne n'est prévenu — on le découvre en le subissant. (Le correctif de la cause racine est côté factory : plafonds cgroup sur les jobs act_runner.)

Quatre règles, groupe homelab

Alerte Sévérité Signal
NoeudInjoignable critical node-exporter muet 3 min — nœud down ou noyé
IngressLabIndisponible critical 0 replica traefik dispo ou métrique absente (kube-state-metrics vit sur pi1) — *.arcodange.lab HS
NoeudPressionMemoire warning < 500 Mo dispo pendant 5 min — le précurseur exact de l'incident, avant le thrash
NoeudEnSurcharge warning load15 > 8 pendant 10 min

Livraison par la chaîne Alertmanager → Telegram déjà en place (testée live 2026-07-10) ; aucun changement de route nécessaire (receiver par défaut). Prometheus tourne sur pi3 et Alertmanager sur pi2 : la chaîne survit à la perte de pi1.

Validation

  • YAML re-parsé, exprs soumises au parseur PromQL du Prometheus live : 4/4 OK.
  • Pendant la rédaction (incident en cours de résorption), IngressLabIndisponible matchait traefik=0 replica et NoeudEnSurcharge matchait pi1 load15=73 — les règles détectent l'incident réel qui les a motivées.
  • Hot-reload assuré par le sidecar configmap-reload du chart, rien à redémarrer après merge/sync ArgoCD.

Suite

Le lendemain matin (24/07), deuxième mode de panne non couvert par ces 4 règles : wildcard TLS expiré sans renouvellement (« le https ne fonctionne plus » alors que tout était vert) → 5ᵉ règle CertificatNonRenouvele dans la PR #14.

🤖 Generated with Claude Code

## Pourquoi Incident 2026-07-23 : un build CI sans limites a épuisé la RAM de pi1 → load15 > 150 → traefik + apiserver affamés → **tout `*.arcodange.lab` injoignable pendant ~1h**, et personne n'est prévenu — on le découvre en le subissant. (Le correctif de la cause racine est côté `factory` : plafonds cgroup sur les jobs act_runner.) ## Quatre règles, groupe `homelab` | Alerte | Sévérité | Signal | |---|---|---| | `NoeudInjoignable` | critical | node-exporter muet 3 min — nœud down ou noyé | | `IngressLabIndisponible` | critical | 0 replica traefik dispo **ou métrique absente** (kube-state-metrics vit sur pi1) — `*.arcodange.lab` HS | | `NoeudPressionMemoire` | warning | < 500 Mo dispo pendant 5 min — le précurseur exact de l'incident, avant le thrash | | `NoeudEnSurcharge` | warning | load15 > 8 pendant 10 min | Livraison par la chaîne **Alertmanager → Telegram déjà en place** (testée live 2026-07-10) ; aucun changement de route nécessaire (receiver par défaut). Prometheus tourne sur **pi3** et Alertmanager sur **pi2** : la chaîne survit à la perte de pi1. ## Validation - YAML re-parsé, exprs soumises au parseur PromQL du Prometheus live : 4/4 OK. - Pendant la rédaction (incident en cours de résorption), `IngressLabIndisponible` matchait `traefik=0 replica` et `NoeudEnSurcharge` matchait `pi1 load15=73` — les règles détectent l'incident réel qui les a motivées. - Hot-reload assuré par le sidecar configmap-reload du chart, rien à redémarrer après merge/sync ArgoCD. ## Suite Le lendemain matin (24/07), deuxième mode de panne non couvert par ces 4 règles : wildcard TLS expiré sans renouvellement (« le https ne fonctionne plus » alors que tout était vert) → 5ᵉ règle `CertificatNonRenouvele` dans la **PR #14**. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
arcodange added 1 commit 2026-07-24 00:14:18 +02:00
feat(alerting): groupe homelab — alerté quand (ou juste avant que) le lab tombe
Helm Charts / Detect changed charts (pull_request) Successful in 2m2s
Helm Charts / Detect changed charts (push) Successful in 10m9s
Helm Charts / Library charts tool (pull_request) Has been skipped
Helm Charts / Library charts tool (push) Has been skipped
Helm Charts / Application charts pgcat (pull_request) Has been skipped
Helm Charts / Application charts pgcat (push) Has been skipped
b9626d878b
Incident 2026-07-23 : un build CI sans limites a épuisé la RAM de pi1 (0 swap),
load15 >100, traefik + apiserver affamés → tout *.arcodange.lab injoignable,
Gitea compris (pourtant sain sur pi2). Personne n'est prévenu : on subit.

Quatre règles, livrées par la chaîne Telegram déjà en place (testée live) :
- NoeudInjoignable (critical) : node-exporter muet 3 min — nœud down ou noyé.
- IngressLabIndisponible (critical) : 0 replica traefik dispo, ou métrique
  absente (kube-state-metrics vit sur pi1) — *.arcodange.lab est HS.
- NoeudPressionMemoire (warning) : <500 Mo dispo 5 min — le précurseur exact
  de l'incident, déclenche avant le thrash.
- NoeudEnSurcharge (warning) : load15 >8 pendant 10 min.

Exprs validées contre le Prometheus live (parse + match) : pendant la rédaction,
IngressLabIndisponible et NoeudEnSurcharge matchaient l'incident en cours.
Prometheus (pi3) et Alertmanager (pi2) survivent à la perte de pi1.

Co-Authored-By: Claude Fable 5 <[email protected]>
arcodange merged commit ffce6990a3 into main 2026-07-24 00:29:30 +02:00
arcodange deleted branch arcodange/homelab-alerts 2026-07-24 00:29:30 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: arcodange-org/tools#13