Troubleshoot

Troubleshooting Center

Une méthode, des fiches incident réelles et des scénarios Break-Fix pour apprendre à diagnostiquer sous pression.

Méthode

  1. 01

    Détecter

  2. 02

    Isoler

  3. 03

    Diagnostiquer

  4. 04

    Corriger

  5. 05

    Vérifier

  6. 06

    Documenter

Scénarios Break-Fix

Débutant Break-Fix Interactif

Break-Fix : la boutique est hors ligne après un changement de configuration

Un collègue a modifié la configuration du reverse proxy de la boutique juste avant de partir. NGINX refuse de démarrer. Remettez le site en ligne.

NGINX 15 min
Débutant Break-Fix Interactif

Break-Fix : le catalogue produits renvoie une erreur 500

Après une réinstallation du serveur, l'application répond « internal error » à toutes les requêtes. Lisez les journaux, corrigez l'environnement, sans redémarrer l'application ni la lancer en root.

Python (Flask, FastAPI) 20 min
Débutant Break-Fix Interactif

Break-Fix : l'application n'atteint plus son API interne

Après une migration, le client applicatif affiche « Connection timed out ». L'API tourne pourtant bien. Remontez les couches, trouvez les deux erreurs et réparez.

Diagnostic réseau (ping, traceroute, mtr) 20 min
Débutant Break-Fix Interactif

Break-Fix : le rapport nocturne n'est plus produit

Le métier signale que le rapport quotidien n'arrive plus depuis la migration du script depuis un poste Windows. La tâche cron est pourtant présente. Trouvez pourquoi rien ne s'exécute.

cron 20 min
Intermédiaire Break-Fix Interactif Premium

Break-Fix : le service d'export échoue avec « Permission denied »

Depuis la dernière mise en production, le service d'export nocturne s'arrête immédiatement. Diagnostiquez et réparez sans donner plus de droits que nécessaire.

Linux 20 min
Intermédiaire Break-Fix Interactif Premium

Break-Fix : le tableau de bord applicatif est vide

Depuis la dernière version, node_exporter rejette le fichier de métriques applicatives et le tableau de bord n'affiche plus rien. Corrigez le générateur.

Prometheus 20 min
Intermédiaire Break-Fix Interactif Premium

Break-Fix : l'audit CSPM bloque la mise en production

Le pipeline refuse de déployer : l'analyse de posture a détecté des configurations critiques dans la définition d'infrastructure. Corrigez-les avant la fenêtre de mise en production.

CSPM (posture de sécurité) 25 min
Intermédiaire Break-Fix Interactif Premium

Break-Fix : postes non enregistrés et audio unidirectionnel

Après une modification de la configuration PJSIP, plus aucun poste ne s'enregistre et les rares appels n'ont du son que dans un sens. Analysez les fichiers de configuration et corrigez.

Protocole SIP 25 min
Intermédiaire Break-Fix Interactif Premium

Break-Fix : l'écran « Mon compte » met 8 secondes à s'afficher

Deux requêtes de la page « Mon compte » parcourent intégralement des tables de plusieurs dizaines de milliers de lignes. Lisez les plans d'exécution et créez les bons index.

Optimisation de requêtes 25 min
Intermédiaire Break-Fix Interactif Premium

Break-Fix : fusion bloquée et pipeline rouge avant la mise en production

La fusion du correctif `hotfix` dans `main` est restée en plein conflit et les tests échouent. Terminez proprement la fusion en respectant les deux exigences.

Git 20 min
Intermédiaire Break-Fix Interactif Premium

Break-Fix : le service d'inférence ne démarre plus après la mise à jour du modèle

L'équipe data a publié la version v3 du modèle de sentiment et supprimé la v2. Depuis, l'API d'inférence est indisponible. Remettez-la en service sur le port attendu par les clients (8500).

Serving de modèles (vLLM, Triton) 25 min
Intermédiaire Break-Fix Interactif Premium

Break-Fix : le test de restauration trimestriel échoue

Les sauvegardes « réussissent » chaque nuit, mais le test de restauration du PRA échoue : la base métier est absente de l'archive. Corrigez la sauvegarde et rendez-la vérifiable.

PRA / PCA 25 min
Intermédiaire Break-Fix Interactif Premium

Break-Fix : le pipeline clients plante depuis le changement de fournisseur

Le nouveau fournisseur livre un fichier CSV différent : le pipeline Python s'arrête sur une erreur d'encodage. Corrigez-le pour produire un fichier propre, en UTF-8, sans doublon.

Python pour la data (pandas) 25 min
Intermédiaire Break-Fix Interactif Premium

Break-Fix : l'application ne joint plus sa base après la migration

La base de données a été migrée vers une nouvelle instance. L'application échoue avec « could not connect ». Suivez la méthode de diagnostic d'un flux (résolution, routage, écoute, applicatif), réparez la configuration et mettez la matrice de flux à jour.

Diagnostic de flux bloqués 25 min
Senior Break-Fix Interactif Premium+

Break-Fix : éradiquer la persistance d'un attaquant

Le SOC signale des connexions sortantes suspectes toutes les 5 minutes depuis un serveur. Trouvez les trois mécanismes de persistance laissés par l'attaquant et éradiquez-les sans casser les accès légitimes.

Velociraptor 30 min

Fiches incident

CritiqueMiddleware · Keepalived (VRRP)

Adresse IP virtuelle présente sur les deux nœuds (split-brain keepalived)

Connexions intermittentes vers le service : une requête sur deux échoue ou tombe sur un nœud différent ; conflits ARP signalés par les switchs.

```text Keepalived_vrrp: (VI_1) Entering MASTER STATE ← sur les deux nœuds kernel: IPv4: 10.0.1.100 from 00:16:3e:aa:bb:02, on dev eth0 — duplicate address ```
CritiqueCloud · CSPM (posture de sécurité)

Données exposées publiquement par un bucket mal configuré

Alerte CSPM « bucket accessible publiquement » ; un chercheur en sécurité signale que des exports clients sont téléchargeables sans authentification.

```text curl -I https://exports-partenaire.s3.eu-west-3.amazonaws.com/clients_2026-09.csv HTTP/1.1 200 OK ```
CritiqueMiddleware · OpenSSL

Panne générale due à un certificat TLS expiré

Du jour au lendemain, navigateurs et clients API refusent la connexion au service ; les appels entre microservices échouent également.

```text curl: (60) SSL certificate problem: certificate has expired NET::ERR_CERT_DATE_INVALID ```
CritiqueDatabase · PostgreSQL

PostgreSQL refuse les connexions « too many clients already »

L'application renvoie des erreurs 500 en rafale ; les nouveaux pods ou workers n'arrivent pas à se connecter à la base. Le problème apparaît après une montée en charge ou un scale-out.

```text FATAL: sorry, too many clients already FATAL: remaining connection slots are reserved for non-replication superuser connections ```
CritiqueTelephony & Communications · Asterisk

Rafales d'INVITE vers l'international (tentative de fraude téléphonique)

Pic de CPU sur l'IPBX la nuit, milliers de tentatives d'appel vers des numéros internationaux surtaxés, alerte de l'opérateur sur la consommation.

```text NOTICE: Request 'INVITE' from '"1001" <sip:1001@203.0.113.25>' failed for '198.51.100.7' - Wrong password NOTICE: Call from '1004' to '00882…' — chan_pjsip ```
CritiqueProduction & ITSM · PRA / PCA

Sauvegardes « vertes » mais restauration impossible

Lors d'un incident (suppression accidentelle), la restauration échoue alors que le tableau de bord des sauvegardes est vert depuis des mois.

```text gzip: stdin: unexpected end of file tar: Unexpected EOF in archive pg_restore: error: input file does not appear to be a valid archive ```
ÉlevéeCybersecurity · Règles Sigma

Attaque par force brute SSH détectée sur un serveur exposé

Le SIEM remonte des centaines d'échecs d'authentification SSH par minute depuis quelques adresses ; la charge du serveur augmente.

```text sshd[2211]: Failed password for invalid user admin from 45.95.0.12 port 51234 ssh2 sshd[2213]: Failed password for root from 45.95.0.12 port 51240 ssh2 ```
ÉlevéeTelephony & Communications · Protocole SIP

Audio unidirectionnel sur les appels via Internet (NAT et SDP)

Les appels s'établissent, mais l'appelé n'entend pas l'appelant (ou l'inverse). Le problème ne concerne que les postes distants (télétravail) ou le trunk opérateur.

Aucune erreur SIP : `200 OK` et `ACK` sont échangés. `rtp set debug on` montre des paquets envoyés mais aucun reçu d'un côté.
ÉlevéeProduction & ITSM · Gestion des changements (CAB)

Changement en échec sans plan de retour arrière

Une mise à jour applicative nocturne provoque des erreurs ; l'équipe tente de corriger « en avant » pendant trois heures et l'indisponibilité déborde sur les heures ouvrées.

```text ERROR: column "customer_ref" does not exist Migration 0042 partially applied ```
ÉlevéeNetwork Flow Matrix · Analyse des flux applicatifs

Connexions coupées par un routage asymétrique à travers un pare-feu à états

Certaines connexions entre deux zones s'établissent puis se figent, ou échouent de façon aléatoire ; le ping passe.

```text kernel: nft-drop-fwd: IN=eth1 OUT=eth0 SRC=10.20.1.15 DST=10.10.2.30 PROTO=TCP SPT=5432 DPT=51544 ACK conntrack: state INVALID ```
ÉlevéeSystems · Linux

Disque plein alors que « du » ne trouve rien (fichiers supprimés encore ouverts)

`df -h` indique 100 % d'occupation sur `/var`, les services échouent à écrire (`No space left on device`), mais `du -sh /var/*` totalise beaucoup moins que la taille utilisée.

```text write error: No space left on device ```
ÉlevéeWeb & Applications · Python (Flask, FastAPI)

Erreur 500 après mise en production (variable d'environnement manquante)

Juste après une mise en production, certaines pages renvoient 500 ; la page d'accueil fonctionne. Aucune erreur en préproduction.

```text KeyError: 'DATABASE_URL' sqlite3.OperationalError: unable to open database file ```
ÉlevéeNetwork Flow Matrix · Diagnostic de flux bloqués

L'application n'atteint plus la base après une migration de sous-réseau

Après le déplacement des serveurs applicatifs dans un nouveau sous-réseau, l'application ne démarre plus : délai d'attente vers la base de données.

```text psycopg.OperationalError: connection to server at "10.0.4.30", port 5432 failed: Connection timed out FATAL: no pg_hba.conf entry for host "10.0.13.21", user "app", database "orders" ```
ÉlevéeMiddleware · NGINX

NGINX renvoie 502 Bad Gateway

Le site affiche « 502 Bad Gateway » ; les fichiers statiques servis directement par NGINX fonctionnent.

```text connect() failed (111: Connection refused) while connecting to upstream, upstream: "http://127.0.0.1:8000/" upstream prematurely closed connection while reading response header from upstream connect() to unix:/run/php/php-fpm.sock failed (13: Permission denied) ```
ÉlevéeDevOps & Automation · Kubernetes

Pod Kubernetes en CrashLoopBackOff après un déploiement

Après un `kubectl apply`, les nouveaux pods redémarrent en boucle ; le rollout reste bloqué et l'ancienne version sert encore une partie du trafic.

```text NAME READY STATUS RESTARTS api-7c9f6d8b9-x2k4p 0/1 CrashLoopBackOff 6 Last State: Terminated Reason: OOMKilled Exit Code: 137 ```
ÉlevéeDatabase · PostgreSQL

Retard de réplication croissant et disque WAL qui se remplit

Les lectures sur la réplique renvoient des données anciennes de plusieurs minutes ; sur le primaire, le répertoire `pg_wal` grossit rapidement.

```text WARNING: could not write to file "pg_wal/xlogtemp.1234": No space left on device ```
ÉlevéeAI & Machine Learning · Serving de modèles (vLLM, Triton)

Service d'inférence qui échoue sous charge (mémoire GPU saturée)

Le service de génération répond correctement à faible trafic, puis renvoie des 500 et redémarre lors des pics ; la latence p99 explose avant les erreurs.

```text torch.OutOfMemoryError: CUDA out of memory. Tried to allocate 1.50 GiB (GPU 0; 23.65 GiB total capacity; 22.10 GiB already allocated) ```
ÉlevéeSystems · systemd

Service systemd en échec « Permission denied » après déploiement

Après une mise à jour, le service applicatif ne démarre plus. `systemctl status` affiche `failed` et redémarre en boucle.

```text app.service: Failed at step EXEC spawning /opt/app/bin/start: Permission denied PermissionError: [Errno 13] Permission denied: '/opt/app/config/app.yml' ```
ÉlevéeMiddleware · Tuning JVM

Tomcat qui ralentit puis plante (OutOfMemoryError)

Temps de réponse qui se dégradent sur plusieurs heures, CPU à 100 %, puis arrêt de l'application. Le problème revient quelques jours après chaque redémarrage.

```text java.lang.OutOfMemoryError: Java heap space [GC (Allocation Failure) ... Full GC (Ergonomics) ... 1998M->1995M(2048M), 4.2 secs] ```
ÉlevéeNetwork · OSPF

Voisinage OSPF bloqué en EXSTART/EXCHANGE (MTU différente)

Deux routeurs se voient mais le voisinage OSPF n'atteint jamais l'état `FULL` ; il oscille entre `EXSTART` et `EXCHANGE`. Les routes de la zone distante n'apparaissent pas.

```text %OSPF-5-ADJCHG: Process 1, Nbr 10.255.0.2 on Gi0/1 from EXSTART to DOWN, Neighbor Down: Too many retransmissions ```
FaibleMonitoring & Observability · Alertmanager

Alertes qui clignotent en boucle (flapping) et fatigue d'astreinte

L'astreinte reçoit des dizaines de notifications par nuit pour la même alerte qui passe de *firing* à *resolved* toutes les quelques minutes ; les vraies alertes finissent ignorées.

```text [FIRING:1] HighCPU web-03 … [RESOLVED] HighCPU web-03 … [FIRING:1] HighCPU web-03 ```
MoyenneCloud · AWS S3

AccessDenied sur un bucket S3 malgré une politique IAM correcte

Un traitement exécuté sur EC2 échoue à lire ou écrire dans un bucket ; la politique IAM du rôle semble autoriser l'action.

```text An error occurred (AccessDenied) when calling the PutObject operation: Access Denied ```
MoyenneWeb & Applications · Conception d'API REST

Appels API bloqués par le navigateur (CORS)

Le front web n'arrive plus à appeler l'API après son déplacement sur un nouveau domaine ; `curl` fonctionne parfaitement.

```text Access to fetch at 'https://api.exemple.fr/v1/orders' from origin 'https://app.exemple.fr' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present. ```
MoyenneNetwork · Diagnostic réseau (ping, traceroute, mtr)

Application qui joint une ancienne IP après une migration (entrée /etc/hosts obsolète)

Après la migration d'une API vers un nouveau serveur, un seul serveur applicatif continue d'appeler l'ancienne adresse ; `dig` renvoie pourtant la nouvelle IP.

```text curl: (7) Failed to connect to api.interne port 8443: Connection timed out ```