Aller au contenu

Automatisation de la gestion d'incidents

Réduire le temps de détection, d'escalade et de remédiation grâce à l'automatisation.


Auto-remédiation

L'auto-remédiation exécuté des actions correctives sans intervention humaine, sur la base de conditions prédéfinies.

Scenarios courants

Scenario Déclencheur Action automatique Limite
Redémarrage de service Health check échoué 3 fois de suite Restart du container / processus Ne résout pas les bugs logiques
Scale out CPU > 80 % pendant 5 min Ajout d'instances Ne fonctionne pas si la cause est une fuite
Failover Primaire DB non répond Bascule vers le replica en lecture/écriture Risque de split-brain si mal configuré
Rotation de certificat Expiration J-30 Renouvellement Let's Encrypt automatique Nécessité un DNS challenge valide
Purge de cache Taux d'erreur cache > 5 % Flush selectif du cache Pic de charge sur le backend après flush

Garde-fous obligatoires

  • Limitez le nombre de tentatives (circuit breaker) : un redémarrage en boucle aggrave l'incident
  • Loguez chaque action automatique dans le canal de monitoring
  • Prevoyez un mécanisme de desactivation rapide (feature flag ou kill switch)

Alerting intelligent

Un alerting bruyant est contre-productif : il épuisé les équipes et masque les alertes importantes.

Techniques de réduction du bruit

Technique Description Exemple
Grouping Regrouper les alertes de même nature en une seule notification 50 alertes CPU → 1 alerte "cluster compute"
Deduplication Supprimer les doublons pour un même problème Alerte recurrente toutes les 5 min → 1 seule
Suppression Inhiber les alertes secondaires quand une alerte principale est active Alertes app supprimees si alerte DB active
Inhibition Désactiver les alertes pendant une maintenance planifiee Fenêtre de maintenance déclarée dans l'outil

Flux alerte → triage automatique → escalade

flowchart TD
    A([Evenement detecte]) --> B[Enrichissement\ncontexte automatique]
    B --> C{Severite auto\nestimee}
    C -- P4 --> D[Ticket cree\npas de notification]
    C -- P3 --> E[Notification Slack\nchannel equipe]
    C -- P2 --> F[PagerDuty\nastreinte on-call]
    C -- P1 --> G[PagerDuty + appel\nIC designe]
    F --> H{Acquitte < 5 min ?}
    H -- Non --> G
    G --> I[War room ouverte\nautomatiquement]

ChatOps

Le ChatOps permet de déclarer et de gérer des incidents directement depuis l'outil de communication de l'équipe.

Commandes typiques (Slack / Mattermost)

Commande Action
/incident declare p1 "API checkout down" Crée le ticket, ouvre le canal war room, notifie l'IC
/incident update "Hypothese : leak connexion DB" Poste une mise à jour dans la war room et sur la statuspage
/incident resolve Clôture l'incident, notifie les stakeholders, déclenche le post-mortem
/incident escalate @tech-lead Notifie la personne spécifiée et la référence dans le ticket

Avantages du ChatOps

  • Toutes les actions sont tracees dans le canal (audit trail naturel)
  • Réduit le nombre d'outils a gérer pendant le stress d'un incident
  • Facilite l'onboarding des nouveaux membres sur le processus

Outils de référence

Outil Positionnement Alternatives
PagerDuty Orchestration on-call, escalade, AIOps Opsgenie (Atlassian), VictorOps
Opsgenie Gestion des astreintes, intégration Jira PagerDuty, xMatters
incident.io Gestion d'incidents native Slack, post-mortem intégré Rootly, FireHydrant
Grafana OnCall Alternative open source a PagerDuty Zabbix, Alertmanager
Statuspage Communication client Cachet (open source), Freshstatus

Commencer par l'essentiel

Avant d'investir dans une stack complexe, commencez par un webhook Alertmanager vers Slack et un runbook manuel. L'automatisation n'a de valeur que si les processus manuels sont déjà maitris es et documentes.