Aller au contenu

Brancher Alertmanager

AKKO v2026.04 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

Utiliser helm/examples/values-alertmanager-receivers.yaml comme base :

helm upgrade akko oci://harbor.akko-ai.com/akko-charts/akko \
  --version 2026.04 \
  -f values-harbor.yaml \
  -f values-domain.yaml \
  -f values-dev-secrets.yaml \
  -f values-alertmanager-receivers.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