• Home  / 
  • Docker
  •  /  Docker Logrotate, comment gérer facilement les logs de ses containers

Docker Logrotate, comment gérer facilement les logs de ses containers

By KrustyHack / last year
logrotate docker

Pour ma part, j’utilise toujours la redirection vers /dev/stdout et /dev/stderr pour les logs de mes containers Docker. Mais une erreur a ne pas commettre (pas comme moi), c’est d’oublier de configurer un Logrotate pour ces logs qui peuvent vite prendre beaucoup de place. C’est pour cela que Logrotate vient à notre secours pour gérer à notre place nos logs Docker et nous éviter de saturer l’espace disque du serveur.

Configurer Logrotate pour les containers Docker

Le chemin des logs de chacun de vos containers Docker est formé de cette façon: /var/lib/docker/containers/[CONTAINER ID]/[CONTAINER_ID]-json.log. Il faut donc mettre en place une petite configuration Logrotate histoire de ne pas saturer le disque (oui oui, je l’ai fait cette erreur).

Suite aux conseils de Sandro Keil j’ai donc mis en place la configuration Logrotate pour mes containers Docker dans le fichier /etc/logrotate.d/docker-container:

/var/lib/docker/containers/*/*.log {
  rotate 7
  daily
  compress
  size=1M
  missingok
  delaycompress
  copytruncate
}

Une fois le fichier enregistré n’oubliez pas de tester le tout avec la commande logrotate -fv /etc/logrotate.d/docker-container. Logrotate devrait alors vous sortir un bon pavé en output pour vous dire que tout roule. Y a plus qu’à laisser faire.

Après il existe d’autres outils de gestion de logs tels que Fluentd ou ELK (ElasticSearch Logstash Kibana). Et en plus on peut trouver des images Docker prêtes à l’utilisation pour ces deux outils !

Et vous qu’utilisez-vous ?