Como usar corretamente os logs do Docker
(insight.infograb.net)- Ao operar serviços em um servidor Linux com aplicações implantadas via Docker, pode aparecer uma mensagem de falta de espaço em disco
- Mesmo que os dados e logs realmente gerados e armazenados pela aplicação não sejam muitos, a capacidade total de armazenamento do sistema pode ficar cheia
- Ao usar Docker, uma das causas da falta de espaço de armazenamento são os 'logs de contêiner do Docker'
- Drivers de logging do Docker e localização dos logs
- Driver de logging: o Docker inclui um mecanismo de logging que ajuda a obter informações de contêineres e serviços em execução; isso é o driver de logging
- Comando
docker logs: mostra as informações registradas por um contêiner em execução - Comando
docker service logs: mostra as informações registradas por todos os contêineres que participam do serviço - O Docker usa o driver de logging
json-file, que captura a saída padrão (stdout) ou o erro padrão (stderr) de todos os logs dos contêineres e os grava em um arquivo no formato JSON - Ao executar um contêiner Docker com os comandos
docker runoudocker-compose up, é criado o arquivo/var/lib/docker/containers/[Container-ID]/[Container-ID]-json.log, onde os logs são registrados - O driver de logging
json-filenão faz rotação de logs- Se o contêiner gerar uma grande quantidade de saída, o arquivo de log salvo por esse driver pode consumir bastante espaço em disco, o que pode levar ao esgotamento do armazenamento
- Reduzindo o tamanho dos logs de contêiner do Docker
- Ao executar os comandos
docker rmoudocker-compose down, o contêiner Docker é removido, e o diretório correspondente a[Container-ID]em/var/lib/docker/containerstambém é apagado- Com isso, o arquivo
[Container-ID]-json.log, que ocupava muito espaço em disco, também é removido, liberando espaço no disco do sistema
- Com isso, o arquivo
- Ao executar o comando
truncate -s 0 <json-log-file>, é possível zerar o tamanho do arquivo de log
- Ao executar os comandos
- Configurando a rotação de logs
- É possível ativar a rotação de logs definindo o tamanho máximo do arquivo (
max-size) e a quantidade máxima de arquivos (max-file) - Quando o tamanho do arquivo atinge o valor máximo definido, ele é substituído por um novo arquivo, e os arquivos antigos passam a ser criados como
...-json.log.1,...-json.log.2até o limite configurado - Ao ultrapassar esse limite, o arquivo mais antigo é removido, evitando que o tamanho dos arquivos de log do contêiner Docker cresça indefinidamente
- É possível ativar a rotação de logs definindo o tamanho máximo do arquivo (
Ainda não há comentários.