Aller au contenu principal

Logs

Chaîne de journalisation​

Symfony (Monolog, JSON, niveau info) ──► sortie d'erreur du conteneur ──► Docker
│
Promtail (pch_promtail) ◄─────────────┘
│
Loki (pch_loki, rétention 1 an) ──► copie hors site sur l'esclave de secours
  • En production, tous les journaux applicatifs de niveau info (requêtes, envois d'e-mails, événements métier) sont envoyés à Loki et conservés un an.
  • Les erreurs partent aussi dans Sentry, avec le contexte qui les précède.
  • Les journaux Docker locaux sont limités en taille (rotation 50 Mo × 5 par conteneur) ; Loki reste la référence.
  • Un garde-fou (loki-size-guard.sh, cron 04:30) surveille la taille du volume Loki.

Lire les journaux récents​

cd ~/pch-sig
docker compose -f docker-compose.prod.yml logs --tail 100 backend
docker logs pch_backend --since 30m 2>&1 | grep -iE "error|exception|critical"
docker logs pch_traefik --since 1h 2>&1 | grep -i acme # certificats

Les journaux du backend sont en JSON : | grep '"level_name":"ERROR"' isole les erreurs.

Interroger Loki​

Loki écoute sur 127.0.0.1:3100 du serveur de production. Depuis le poste d'administration, ouvrir un tunnel SSH puis interroger l'API ou Grafana :

ssh -L 3100:127.0.0.1:3100 pch-prod
curl -G -s http://127.0.0.1:3100/loki/api/v1/query_range \
--data-urlencode 'query={container="pch_backend"} |= "exception"' \
--data-urlencode 'limit=50'

Exemples de requêtes LogQL :

BesoinRequête
Erreurs du backend{container="pch_backend"} |= "ERROR"
Envois d'e-mails{container="pch_backend"} |= "SendEmailMessage"
Réponses de l'assistant{container="pch_backend"} |= "Bemba: réponse"

Journaux utiles par sujet​

SujetOù regarder
E-mails en échecdocker exec pch_backend php bin/console messenger:failed:show
Digest des plaintes/var/log/plainte-digest.log (production)
Indexation de l'assistant~/assistant-indexer.log
Relais SMTP (KoboToolbox)docker logs smtp_relay (production) : status=sent ou motif du refus
Sauvegardes de la préproduction~/backups/backup.log, ~/backups/gitlab-backup.log
Survey Solutions~/suso-healthcheck.log (préproduction)
Traefik, certificatsdocker logs pch_traefik

Journal d'audit applicatif​

Les actions des utilisateurs (connexions, modifications, exports) sont tracées dans l'application : Administration → Audits. Voir le guide utilisateur, section Audit.