Registos
Cadeia de registo
Symfony (Monolog, JSON, nível info) ──► saída de erro do contentor ──► Docker
│
Promtail (pch_promtail) ◄─────────────┘
│
Loki (pch_loki, retenção 1 ano) ──► cópia fora do local no servidor de recuperação
- Em produção, todos os registos da aplicação de nível info (pedidos, envios de e-mails, eventos de negócio) são enviados para o Loki e conservados um ano.
- Os erros vão também para o Sentry, com o contexto que os precede.
- Os registos Docker locais têm tamanho limitado (rotação 50 MB × 5 por contentor); o Loki continua a ser a referência.
- Uma salvaguarda (
loki-size-guard.sh, cron 04:30) vigia o tamanho do volume do Loki.
Ler os registos recentes
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 # certificados
Os registos do backend estão em JSON: | grep '"level_name":"ERROR"' isola os erros.
Consultar o Loki
O Loki escuta em 127.0.0.1:3100 do servidor de produção. A partir do posto de administração, abrir um túnel SSH e depois consultar a API ou o 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'
Exemplos de consultas LogQL:
| Necessidade | Consulta |
|---|---|
| Erros do backend | {container="pch_backend"} |= "ERROR" |
| Envios de e-mails | {container="pch_backend"} |= "SendEmailMessage" |
| Respostas do assistente | {container="pch_backend"} |= "Bemba: réponse" |
Registos úteis por assunto
| Assunto | Onde procurar |
|---|---|
| E-mails falhados | docker exec pch_backend php bin/console messenger:failed:show |
| Resumo das reclamações | /var/log/plainte-digest.log (produção) |
| Indexação do assistente | ~/assistant-indexer.log |
| Relé SMTP (KoboToolbox) | docker logs smtp_relay (produção): status=sent ou motivo da recusa |
| Salvaguardas da pré-produção | ~/backups/backup.log, ~/backups/gitlab-backup.log |
| Survey Solutions | ~/suso-healthcheck.log (pré-produção) |
| Traefik, certificados | docker logs pch_traefik |
Diário de auditoria da aplicação
As ações dos utilizadores (inícios de sessão, modificações, exportações) são registadas na aplicação: Administração → Auditorias. Ver o guia do utilizador, secção Auditoria.