Aller au contenu

Brancher Alertmanager

AKKO v2026.06 livre Alertmanager avec un receiver par défaut uniquement journalisé afin qu'aucune notification ne s'échappe lors d'une install à sec. Pour satisfaire DORA Art. 10 (détection) et NIS2 Art. 21(2)(b) (gestion d'incidents), brancher de vraies destinations avant l'ouverture du trafic production.

Overlay

Brancher les receivers via un overlay values local que vous maintenez :

helm upgrade akko oci://harbor.akko-ai.com/akko-charts/akko \
  --version 2026.06 \
  -f values-harbor.yaml \
  -f values-domain.yaml \
  -f values-dev-secrets.yaml \
  --set alertmanager.slackApiUrl=<webhook> \
  --set alertmanager.pagerDutyKey=<service-key> \
  --set alertmanager.emailTo=ops@client.example

Topologie de routage

critical → PagerDuty  +  #akko-incidents (Slack)
warning  → #akko-alerts (Slack)
SLO breach → email (ops@)
tout     → akko-default (log-only, pour l'audit)

Les alertes critiques doublent la notification (PagerDuty + Slack) pour survivre à une panne d'un canal unique.

Secrets

Injecter les creds via values-dev-secrets.yaml (gitignoré) ou SealedSecrets / ExternalSecrets. Ne jamais commit les URL webhook ou mots de passe SMTP.

alertmanager:
  slackApiUrl: "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXX"
  pagerDutyKey: "votre-integration-service-key"
  emailTo: "ops@client.example"
  smtpHost: "smtp.office365.com:587"
  smtpUser: "alerts@client.example"
  smtpPassword: "<masqué>"

Règles d'inhibition

Deux règles limitent le bruit :

  1. critical → inhibe warning pour le même alertname + namespace
  2. NodeNotReady → inhibe toute alerte Pod* sur ce node

Validation

# Déclencher une alerte synthétique
kubectl -n akko exec svc/akko-alertmanager -- \
  amtool alert add TestAlert severity=critical namespace=akko
# Attendu : page PagerDuty + post Slack #akko-incidents

# Lister les alertes actives
kubectl -n akko exec svc/akko-alertmanager -- amtool alert

Observabilité

  • Compteur Prometheus alertmanager_notifications_total{integration}
  • UI Alertmanager à https://alertmanager.<domaine>/ (gated admin)
  • logs layer contient le JSON du receiver akko-default log-only pour requêtes forensics

Dépannage

Symptôme Cause Correctif
Alerte se déclenche mais aucune page PagerDuty Clé erronée ou routing_key vide amtool config routes test
Slack renvoie 403 Webhook révoqué Régénérer côté admin Slack, bumper le Secret
Email bloqué pending Host/port SMTP injoignable depuis le cluster kubectl exec ... -- nc -zv smtp.office365.com 587
Flood de warnings Règles d'inhibition manquantes Vérifier que le bloc inhibit_rules est rendu dans le manifest