Configurando a Rotação de Logs para Contentores Docker
À medida que os seus contentores Docker geram mais logs ao longo do tempo, os ficheiros de log podem rapidamente consumir uma quantidade significativa de espaço de disco no sistema host. Para evitar isto, pode configurar a rotação de logs, que é o processo de arquivar e apagar regularmente ficheiros de log mais antigos para liberar espaço de disco.
Compreendendo a Rotação de Logs
A rotação de logs é uma prática comum em administração de sistemas, onde os ficheiros de log são periodicamente rotacionados, comprimidos e arquivados para manter um tamanho de ficheiro de log gerenciável. Este processo garante que os ficheiros de log não cresçam indefinidamente e consumam todo o espaço de disco disponível.
Configurando a Rotação de Logs para Contentores Docker
Para configurar a rotação de logs para contentores Docker, pode utilizar a opção embutida --log-opt ao iniciar um contentor. Esta opção permite especificar os parâmetros de rotação de logs, como o tamanho máximo do ficheiro de log, o número de ficheiros de log arquivados a manter e o formato de compressão.
## Iniciar um contentor com rotação de logs configurada
No exemplo acima, o contentor está configurado para rotar os ficheiros de log quando atingem um tamanho máximo de 10 MB e para manter um máximo de 5 ficheiros de log arquivados.
Implementando Estratégias de Rotação de Logs
Embora a opção embutida --log-opt seja uma forma conveniente de configurar a rotação de logs para contentores individuais, pode não ser adequada para gerir a rotação de logs em toda a sua infraestrutura Docker. Nestes casos, pode implementar estratégias de rotação de logs automatizadas utilizando ferramentas ou scripts externos.
Uma abordagem popular é utilizar a utilidade logrotate, que é uma ferramenta padrão para gerir a rotação de logs em sistemas Linux. Pode criar um ficheiro de configuração logrotate que especifique as regras de rotação de logs para os seus contentores Docker e, em seguida, agendar o comando logrotate para ser executado periodicamente utilizando um trabalho cron ou um serviço de sistema.
Eis um exemplo de ficheiro de configuração logrotate para contentores Docker:
/var/lib/docker/containers/*/*.log {
rotate 5
copytruncate
compress
delaycompress
missingok
notifempty
}
Este ficheiro de configuração rotará os ficheiros de log para todos os contentores Docker, mantendo um máximo de 5 ficheiros de log arquivados, comprimindo os ficheiros arquivados e apagando os ficheiros de log se estiverem vazios.
Configurando a rotação de logs para os seus contentores Docker, pode garantir que o espaço de disco do seu sistema host é utilizado eficientemente e que as suas aplicações em contentores continuam a funcionar sem problemas, sem serem afetadas por ficheiros de log em crescimento.