Aller au contenu

Runbook — Gestion des incidents

Procédures de diagnostic et résolution des incidents courants sur Primatch.


Niveau de sévérité

Niveau Description Délai de réponse
🔴 P0 Service complètement indisponible Immédiat
🟠 P1 Fonctionnalité critique dégradée < 30 min
🟡 P2 Fonctionnalité non critique impactée < 2h
🟢 P3 Bug mineur, contournement possible Prochaine release

Diagnostic général

1. Vérifier l'état des conteneurs

ssh root@217.154.23.27 -i /home/doulla/.ssh/weltaare_deploy
cd /var/www/vhosts/primatch-poc.com/primatch
docker compose ps

2. Vérifier les logs

docker compose logs api --tail=100      # Logs Laravel
docker compose logs nginx --tail=50     # Logs Nginx
docker compose logs pgsql --tail=50     # Logs PostgreSQL

3. Vérifier la réponse de l'API

curl -I https://primatch-poc.com/api/v1/health
# Attendu : HTTP/2 200

Incidents courants

API retourne 500

# 1. Vérifier les logs Laravel
docker compose logs api --tail=100 | grep -i error

# 2. Vérifier la connexion DB
docker compose exec api php artisan db:show

# 3. Vider les caches (cause fréquente)
docker compose exec api php artisan config:clear
docker compose exec api php artisan cache:clear

Connexion à la base de données échoue

# Vérifier que PostgreSQL tourne
docker compose ps pgsql

# Redémarrer PostgreSQL si nécessaire
docker compose restart pgsql

# Vérifier les connexions actives
docker compose exec pgsql psql -U postgres -c "SELECT count(*) FROM pg_stat_activity;"

Queue Jobs bloqués

# Voir les jobs en attente
docker compose exec api php artisan queue:monitor

# Relancer le worker
docker compose exec api php artisan queue:restart

# Jobs en échec
docker compose exec api php artisan queue:failed
docker compose exec api php artisan queue:retry all

WebSockets non fonctionnels

# Vérifier Soketi
docker compose ps soketi
docker compose logs soketi --tail=50

# Redémarrer
docker compose restart soketi

Escalade

Si le problème persiste après 30 minutes de diagnostic : 1. Activer le mode maintenance (php artisan down) 2. Analyser les logs complets dans Telescope (si accessible) 3. Effectuer un rollback vers la dernière version stable (voir runbook déploiement)