Cours – Dépanner une infrastructure : méthode et outils
BTS SIO SISR 2e année – Bloc 2 – S13
Un mot ou un sigle inconnu ? Passe la souris dessus, ou ouvre le glossaire.
« Tout est lent » ou « le site ne marche plus » : un utilisateur décrit un symptôme, jamais une cause. Le métier de l'administrateur est de remonter du symptôme à la cause, vite, sans casser davantage. Trois qualités y aident : une méthode, des outils maîtrisés, et la trace de ce qu'on a fait.
1. La méthode en sept étapes
| # | Étape | Question | Exemple |
|---|---|---|---|
| 1 | Observer le symptôme | Que se passe-t-il exactement ? Pour qui ? Depuis quand ? | « Le site refuse de s'ouvrir depuis le poste de Léa, pas depuis le mien » |
| 2 | Délimiter | Qu'est-ce qui marche encore ? Qu'est-ce qui a changé ? | Le ping du serveur répond, la page non |
| 3 | Formuler des hypothèses | Quelles causes expliquent tous les faits ? | Service arrêté, pare-feu, droits, mauvaise adresse |
| 4 | Tester, une hypothèse à la fois | Quel test élimine ou confirme ? | curl -v, ss -tln |
| 5 | Identifier la cause | Pourquoi est-ce arrivé ? | Un correctif a redémarré Apache avec un mauvais port |
| 6 | Corriger et vérifier | Le symptôme a-t-il disparu ? Rien d'autre n'est cassé ? | curl OK, supervision verte |
| 7 | Documenter et prévenir | Comment éviter ou détecter plus tôt ? | Fiche d'incident, alerte, procédure |
Quelques règles d'hygiène :
- Un changement à la fois : sinon on ne sait plus ce qui a corrigé (ou aggravé).
- Noter l'état initial avant de modifier (sauvegarde du fichier, capture).
- Annuler une modification qui n'a pas aidé.
- Aller du simple au compliqué : câble, adresse, service, configuration, application.
- Ne pas supposer : vérifier (« le service tourne ») plutôt que croire (« il tourne forcément »).
2. Remonter les couches
Le modèle OSI sert de plan de recherche : on part du bas (physique) ou du haut (application) et on élimine par étages.
| Couche | Question | Outil |
|---|---|---|
| Physique / liaison | Le lien est-il actif ? | ip -br link, voyants |
| Réseau (IP) | Adresse, masque, passerelle corrects ? La machine voisine répond-elle ? | ip -br a, ip route, ping |
| Nom (DNS) | Le nom donne-t-il la bonne adresse ? | getent hosts nom, dig nom |
| Transport | Le port est-il à l'écoute ? Est-il joignable ? | ss -tlnp (serveur), curl -v, nc -zv hôte port (client) |
| Application | Le service répond-il correctement ? | curl -I, journaux du service |
Lire un message d'erreur : la bonne piste
| Symptôme du client | Ce que ça veut dire | Pistes |
|---|---|---|
Network is unreachable |
Aucune route vers ce réseau | Adresse, masque, passerelle du client |
Could not resolve host |
Le nom n'est pas résolu | DNS, /etc/hosts, resolv.conf |
| Nom résolu mais délai dépassé (timed out) | Les paquets partent mais rien ne revient | Pare-feu qui jette les paquets, mauvaise adresse, serveur éteint, route de retour |
Connection refused (ou « Couldn't connect ») |
La machine répond : le port est fermé | Service arrêté, mauvais port d'écoute, pare-feu qui rejette |
403 Forbidden |
Le service répond mais refuse | Droits sur les fichiers, configuration d'accès |
404, 500 |
Le service répond, l'application pose problème | Journaux applicatifs, fichier manquant, erreur de code |
La différence entre « refusé » (réponse immédiate) et « délai dépassé » (silence) est l'indice le plus précieux : le premier désigne une machine qui répond et dit non, le second une machine qui ne répond pas ou dont les paquets sont jetés.
3. Les outils du dépannage
| Besoin | Commandes |
|---|---|
| État du système | uptime, free -h, df -h, top |
| Services | systemctl status service, systemctl is-active service, ss -tlnp |
| Journaux | journalctl -u apache2 --since "10 minutes ago", tail -f /var/log/apache2/error.log |
| Réseau | ip -br a, ip route, ping, traceroute -n, curl -v |
| Résolution | getent hosts nom, dig nom |
| Trames | sudo tcpdump -n -i enp0s3 host 192.168.10.10 and port 80 |
| Pare-feu | sudo nft list ruleset |
| Fichiers | ls -l, namei -l chemin (droits tout au long du chemin) |
La capture de trames, pour trancher
Quand on hésite entre « le paquet n'arrive pas » et « il arrive mais personne ne répond » :
- côté serveur,
tcpdumpmontre-t-il la demande (SYN) ? Si non, le paquet n'arrive pas (réseau, route) ; - si oui, et qu'aucune réponse ne part : le pare-feu jette, ou le service ne répond pas ;
- si une réponse
RSTpart : le port est fermé.
4. Garder la trace : la fiche d'incident
| Rubrique | Contenu |
|---|---|
| Identification | Numéro, date, heure, auteur de la déclaration, service concerné |
| Symptôme | Ce que l'utilisateur a constaté, en ses termes |
| Impact | Qui est touché, quelle gravité, quelle durée |
| Chronologie | Heures des constats, tests, actions |
| Cause | Cause racine, établie par un test |
| Correction | Ce qui a été fait, par qui |
| Vérification | Comment on a confirmé le retour à la normale |
| Prévention | Alerte, procédure, changement pour éviter ou détecter plus tôt |
Cette fiche alimente la base de connaissances : le même incident, un mois plus tard, se règle en cinq minutes. Dans un service de support, elle prend la forme d'un ticket (S02 : niveau de service).
Ce que tu dois retenir de la séance
- Une méthode : observer, délimiter, hypothèses, tester un changement à la fois, cause, corriger et vérifier, documenter.
- Lire l'erreur : « refusé » (le port est fermé) ≠ « délai dépassé » (paquets jetés ou perdus) ≠ 403 (droits) ≠ « nom non résolu » (DNS).
- Remonter les couches et utiliser
ip,ss,curl -v,journalctl,tcpdump. - Rédiger la fiche d'incident et la prévention.