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 :
critical → inhibe warningpour le mêmealertname + namespaceNodeNotReady → 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-defaultlog-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 |