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¶
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)