Limpeza e organização nos logs de containers docker

Limpeza e organização nos logs de containers docker

William Sena

Publicado por William Sena

18 Janeiro, 2018Leia em 1 minuto

Logs do Docker

Os logs dos containers docker são mantidos em arquivos encontrados em /var/lib/docker/containers/*/*-.log.

As vezes criamos aplicações "verbosas" que podem acabar com nosso espaço em disco, por este motivo é importante manter os logs por um período ou relevância.

Não seria nada legal prejudicar as aplicações de um nó ou servidor, por falta de espaço em disco, pois nosso querido container está "tagarelando" no arquivo de log, pois alguém esqueceu de desativar o debug, não é caro desenvolvedor?

via GIPHY

Habilitando o Log Rotate

O logrotate é uma ferramenta muito conhecida no linux que tem como objetivo rotacionar os arquivos de log, é possível habilitar a rotação por tamanho do arquivo, dias e outras configurações.

Para configurar será necessário criar o arquivo abaixo:

  • /etc/logrotate.d/docker-container
/var/lib/docker/containers/*/*.log {
  rotate 7
  daily
  compress
  size=1M
  missingok
  delaycompress
  copytruncate
}

Uma vez que o arquivo foi criado, basta testar a rotação com o comando abaixo.

logrotate -fv /etc/logrotate.d/docker-container

Pronto rotação configurada, você verá um novo arquivo compactado (.gz) a cada rotação, agora é só deixar o logrotate fazer o trabalho.

Veja mais configurações nas referências.

Limpeza manual

Também é possível executar a limpeza na força bruta, onde todos os logs serão apagados com o comando abaixo:

Atenção! Todos os logs.

truncate -s 0 /var/lib/docker/containers/*/*-json.log

Conclusão

A rotação de log é facilitada com o logrotate, em produção podemos utilizar o ELK para obter um monitoramento e analise dos logs.

Referências

Inscreva-se em nossa lista

E receba por email novos conteúdos.