Monitoring
Contrôles de santé
| Contrôle | Commande ou adresse | Attendu |
|---|---|---|
| API | https://bemba.ucp-pch.org/api/health | 200 |
| Application | https://bemba.ucp-pch.org/ | 200 |
| Documentation | https://docubemba.ucp-pch.org/ | 200 |
| Conteneurs | docker ps --format '{{.Names}}\t{{.Status}}' | tous Up, healthy quand un contrôle existe |
| File d'e-mails | docker exec pch_backend php bin/console messenger:failed:show | vide |
| Espace disque | df -h / | moins de 80 % |
| Mémoire | free -m | « available » confortable |
Depuis le conteneur (sans passer par Traefik) :
docker exec pch_backend curl -s http://127.0.0.1:8000/api/health
Métriques
La production embarque des exporteurs Prometheus, liés à 127.0.0.1 (non exposés sur Internet) :
| Exporteur | Port | Mesure |
|---|---|---|
| cAdvisor | 8080 | processeur, mémoire, réseau par conteneur |
| node-exporter | 9100 | système (disque, charge, mémoire) |
| postgres-exporter | 9187 | base pch_sig (connexions, taille, verrous) |
| redis-exporter | 9121 | cache |
Prometheus et Grafana ne tournent pas sur les serveurs : ils s'exécutent sur le poste d'administration (dossier monitoring/ du dépôt, Grafana sur le port 3001). Pour qu'ils atteignent les exporteurs, ouvrir des tunnels SSH :
ssh -N -L 8080:127.0.0.1:8080 -L 9100:127.0.0.1:9100 -L 9187:127.0.0.1:9187 \
-L 9121:127.0.0.1:9121 -L 3100:127.0.0.1:3100 pch-prod
puis faire pointer les cibles de monitoring/prometheus/prometheus.yml sur localhost et la source Loki de Grafana sur http://localhost:3100.
La configuration Prometheus du dépôt vise encore les adresses publiques des serveurs, qui ne répondent plus depuis que les ports sont liés à 127.0.0.1. Passer par les tunnels ci-dessus.
Erreurs applicatives
Sentry reçoit les erreurs du frontend et du backend, avec le contexte. C'est le premier endroit à regarder après un signalement d'utilisateur.
Points de vigilance
| Signal | Cause fréquente | Action |
|---|---|---|
Toutes les requêtes en 500 juste après un cache:clear | cache recréé par root | recréer le conteneur backend (voir Dépannage) |
https://… montre un certificat « TRAEFIK DEFAULT CERT » | DNS absent au moment de la demande | vérifier le DNS puis docker restart pch_traefik |
File failed qui grossit | SMTP OVH indisponible ou mot de passe changé | voir Configuration, section E-mails |
| Disque plein | journaux, images Docker | docker image prune -f, docker builder prune -af |
| KoboToolbox en 502 (préproduction) | démarrage en cours (plusieurs minutes) | attendre, puis docker ps --filter name=kobofe |
| Survey Solutions arrêté | relancé automatiquement par check-suso.sh toutes les 5 minutes | lire ~/suso-healthcheck.log |