Bien utiliser les logs Docker
(insight.infograb.net)- Lors de l’exploitation d’un service sur un serveur Linux où une application est déployée avec Docker, il arrive qu’un message signale un manque d’espace disque
- Même si le volume de données et de logs réellement générés et stockés par l’application n’est pas important, l’ensemble du stockage du système peut se retrouver plein
- Lorsqu’on utilise Docker, l’une des causes du manque d’espace de stockage est le « journal des conteneurs Docker »
- Pilotes de journalisation Docker et emplacement des logs
- Pilote de journalisation : Docker inclut un mécanisme de journalisation qui aide à obtenir des informations depuis les conteneurs et services en cours d’exécution ; c’est ce qu’on appelle le pilote de journalisation
- Commande
docker logs: affiche les informations enregistrées par un conteneur en cours d’exécution - Commande
docker service logs: affiche les informations enregistrées par tous les conteneurs participant à un service - Docker utilise le pilote de journalisation
json-file, qui capture la sortie standard (stdout) et la sortie d’erreur standard (stderr) de tous les logs de conteneurs et les écrit dans un fichier au format JSON - Quand on lance un conteneur Docker avec la commande
docker runoudocker-compose up, le fichier/var/lib/docker/containers/[Container-ID]/[Container-ID]-json.logest créé et les logs y sont enregistrés - Le pilote de journalisation
json-filen’effectue pas de rotation des logs- Si un conteneur génère beaucoup de sortie, les fichiers de logs stockés par ce pilote peuvent occuper un espace disque important, ce qui peut finir par épuiser l’espace disponible
- Réduire la taille des logs de conteneurs Docker
- Si l’on exécute la commande
docker rmoudocker-compose down, le conteneur Docker est supprimé, ainsi que le répertoire correspondant à[Container-ID]sous/var/lib/docker/containers- Le fichier
[Container-ID]-json.log, qui pouvait occuper beaucoup d’espace disque, est alors supprimé lui aussi, ce qui libère de l’espace disque sur l’ensemble du système
- Le fichier
- En exécutant la commande
truncate -s 0 <json-log-file>, on peut ramener la taille du fichier de log à 0
- Si l’on exécute la commande
- Configurer la rotation des logs
- On peut activer la rotation des logs en définissant la taille maximale du fichier (
max-size) et le nombre maximal de fichiers (max-file) - Lorsque la taille du fichier atteint la limite configurée, il est remplacé par un nouveau fichier, et d’anciens fichiers de logs sont créés sous les noms
...-json.log.1,...-json.log.2, jusqu’au nombre maximal défini - Une fois cette limite dépassée, le fichier le plus ancien est supprimé, ce qui évite que la taille des fichiers de logs des conteneurs Docker n’augmente indéfiniment
- On peut activer la rotation des logs en définissant la taille maximale du fichier (
Aucun commentaire pour le moment.