# Módulo Final 29 — log rotation, retenção e higiene operacional 24x7

## Escopo fechado

Este corretivo fecha a política operacional de logs do bundle entregue em três camadas complementares:

1. **Logs de aplicação** (`portal`, `platform`, `gateway` e logs auxiliares do root) com rotação diária e por tamanho via `scripts/rotate-logs.sh`.
2. **stdout/stderr do supervisor** com limite de tamanho e backups em todos os `*.conf` ativos do root real e do deploy direto do `platform`.
3. **stdout/stderr do systemd** com retenção e compressão em `journald-nvr-stack.conf`.

## Política padrão

- retenção: **14 dias**;
- tamanho máximo do arquivo atual antes de rotação por tamanho: **50 MiB**;
- compressão: habilitada quando `gzip` estiver disponível;
- supervisor: **20 MiB** por arquivo e **10 backups**;
- journald: `SystemMaxUse=1G`, `RuntimeMaxUse=256M`, `MaxRetentionSec=14day`, `MaxFileSec=1day`, `Compress=yes`.

## Artefatos principais

- `scripts/rotate-logs.sh`
- `scripts/install-log-policy.sh`
- `scripts/check-log-rotation-policy.php`
- `deploy/systemd/nvr-log-rotate.service`
- `deploy/systemd/nvr-log-rotate.timer`
- `deploy/systemd/journald-nvr-stack.conf`
- `deploy/scheduler/nvr-log-rotate.cron`
- `docs/OPERACAO_LOGS_24x7.md`

## Integração com o pipeline

Os scripts raiz passam a validar explicitamente a política de logs:

- `scripts/test.sh`
- `scripts/test-regression.sh`
- `scripts/build-final.sh`
- `scripts/package.sh`
- `scripts/verify-final-package.sh`

## Resultado

- a política de logs deixa de depender de limpeza manual;
- o bundle passa a conter configuração operacional objetiva para rotação, retenção e compressão;
- o deploy deixa de aceitar stdout/stderr do supervisor sem limite;
- o runtime sob systemd fica com retenção documentada e instalável no `journald`.
