Outils pour utilisateurs

Outils du site


sysadmin:docker:journalisation_des_conteneurs

Docker: Journalisation des conteneurs

Docker propose plusieurs mécanismes de journalisation désignés logging drivers. Un mécanisme de journalisation est actif par défaut et peut être redéfinit explicitement.

Journalisation par défaut

Pour afficher les paramètres de configuration du logging driver utilisé par défaut par le daemon Docker:

docker info --format '{{.LoggingDriver}}'

Pour définir des options ou modifier le mécanisme de journalisation par défaut du daemon il faudra modifier le fichier de configuration daemon.json

Ci-dessous un exemple de configuration permettant de limiter le volume de logs via les options max-size et max-file

{
  "log-driver": "json-file",
  "log-opts": {"max-size": "10m", "max-file": "3"}
}

Redéfinir le mécanisme de journalisation

Pour redéfinir le mécanisme de journalisation d'un conteneur, on peut utiliser les options --log-driver et --log-opt directement sur la ligne de commande lors de la création du conteneur:

# Désactive la journalisation
docker run -it --log-driver none alpine ash
 
# Journaliser en limitant la volumétrie
docker run --log-driver json-file --log-opt max-size=10m --log-opt max-file=3 myapp:version

Ci-dessous la syntaxe à utiliser avec docker-compose

version: '3.7'
services:
  my-app:
    image: my-app:latest
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "5"

Le driver local

Le driver “local” permet d'enregistrer les logs dans un format binaire. Il est plus compact et plus rapide que le stockage par défaut “json-file”. L'inconvénient du driver local et qu'il ne pourra pas être utilisé avec certains programmes externes de type parsers/forwarders qui ont besoin d'un accès direct au fichier de log au format JSON.

Références

sysadmin/docker/journalisation_des_conteneurs.txt · Dernière modification : 2022/12/19 22:33 de yoann