Runbooks¶
Écrire des runbooks clairs et actionables pour les équipes d'astreinte, même dans les moments de stress.
Qu'est-ce qu'un runbook¶
Un runbook est un document opérationnel qui guide une personne — pas necessairement experte — à travers une action spécifique sur un système. Il ne s'agit pas d'expliquer le fonctionnement interne du système, mais de répondre à la question : "que faire dans cette situation précisé ?".
Un bon runbook est :
- Actionable : chaque étape se traduit en une action concrète
- Lineaire : l'ordre des étapes est important et respecte
- Autonomisant : lisible sans expertise préalable du système concerne
- Teste : valide par quelqu'un qui ne connait pas le système
Structure d'un runbook¶
graph TD
A["Declencheur / Alerte"] --> B["Contexte et diagnostic"]
B --> C["Actions correctives"]
C --> D["Verification du retour a la normale"]
D --> E["Escalade si non resolu"] Chaque runbook doit contenir ces sections :
| Section | Contenu |
|---|---|
| Titre et identifiant | Nom explicite, lien vers l'alerte ou le ticket type |
| Déclencheur | Quelle alerte, quel symptome, quel seuil déclenche ce runbook |
| Diagnostic | Comment confirmer que c'est bien ce problème |
| Actions | Étapes numerotees, une action par étape |
| Vérification | Comment confirmer que le problème est résolu |
| Escalade | A qui escalader, dans quel délai, avec quelles informations |
| Historique | Date de création, dernière mise à jour, auteur |
Exemple : Disk full sur serveur de logs¶
Déclencheur : Alerte disk_usage > 90% sur /var/log du serveur logs-prod-01
Diagnostic
Vérifier l'espace disque disponible et identifier les fichiers ou répertoires qui consomment le plus d'espace.
Actions
- Se connecter au serveur via le bastion (voir runbook accès SSH)
- Identifier les partitions concernees avec la commande de vérification d'espace disque
- Lister les 10 fichiers les plus volumineux dans
/var/log - Vérifier si les logs de rotation sont actifs : rechercher la configuration logrotate dans
/etc/logrotate.d/ - Si des logs de plus de 30 jours sont presents, les archiver manuellement vers le stockage froid (voir procédure archivage)
- Si des logs actifs sont anormalement volumineux, identifier l'application source et ouvrir un ticket
- Forcer une rotation manuelle via logrotate en mode force
- Vérifier que l'espace est revenu sous 80%
Vérification
Confirmer que le seuil d'alerte n'est plus actif. L'alerte doit se clore automatiquement sous 5 minutes.
Escalade
Si l'espace ne revient pas sous contrôle après les actions ci-dessus, ou si la partition est pleine a 100%, escalader immédiatement à l'équipe L2 (voir contacts d'astreinte).
Niveaux de détail : L1 vs L2¶
Les runbooks ne sont pas tous écrits pour le même public. Un runbook L1 guide un opérateur en première ligne ; un runbook L2 s'adresse a un expert qui intervient sur des cas complexes.
| Critère | Runbook L1 | Runbook L2 |
|---|---|---|
| Audience | Opérateur, astreinte rotative | Expert système, on-call senior |
| Niveau de détail | Très granulaire, pas de presuppose | Synthetique, contexte technique assume |
| Autonomie requise | Faible — suit les étapes sans adapter | Élevée — diagnostique et adapté |
| Escalade | Rapide si doute | Exception, escalade rarissime |
| Exemples inclus | Oui, avec valeurs attendues | Optionnel |
Testez vos runbooks avec quelqu'un qui ne connait pas le système
Le meilleur test d'un runbook est de le faire exécuter par un collegue ou un stagiaire qui n'a jamais touche au système concerne. Si des étapes bloquent ou necessitent une question, la documentation est incomplète.
Runbooks d'astreinte¶
Les runbooks utilisés en astreinte ont des contraintes spécifiques que ceux utilisés en journée n'ont pas :
- Contexte minimal : la personne vient d'être reveille, n'a pas le contexte frais
- Stress élevé : un service est dégradé ou indisponible, la pression est forte
- Temps limite : les SLA courent, chaque minute compte
- Environnement dégradé : VPN depuis chez soi, laptop personnel, connexion instable
Pour les runbooks d'astreinte, appliquer ces règles supplémentaires :
- Commencer par un résumé de 3 lignes (quoi, impact, action principale)
- Mettre les numéros de contact en tete du document
- Éviter les étapes conditionnelles complexes — si nécessaire, créer deux runbooks distincts
- Inclure les commandes exactes avec les valeurs types attendues en retour
- Specifier clairement le moment où escalader sans honte
Un runbook d'astreinte doit se lire en moins de 30 secondes pour comprendre l'action principale
Si le lecteur doit parcourir plus d'un écran avant de savoir quoi faire, le runbook n'est pas adapté à l'astreinte. Synthetisez.
Outils et formats¶
| Outil | Usage | Alternative |
|---|---|---|
| Confluence | Wiki d'entreprise, runbooks intégrés | Notion, Outline |
| PagerDuty Runbooks | Runbooks lies aux alertes | OpsGenie, VictorOps |
| Git + MkDocs | Docs as code, versionnement | Git + Docusaurus |
| Jira / ServiceNow | Lien ticketing — runbook lie à l'incident type | Linear, Freshservice |