Outils pour utilisateurs

Outils du site


sysadmin:docker:journalisation_des_conteneurs

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
sysadmin:docker:journalisation_des_conteneurs [2021/08/22 08:39] – créée yoannsysadmin:docker:journalisation_des_conteneurs [2022/12/19 22:33] (Version actuelle) yoann
Ligne 3: Ligne 3:
 ====== Docker: Journalisation des conteneurs ====== ====== Docker: Journalisation des conteneurs ======
  
-Docker propose plusieurs mécanismes de journalisation désignés **logging drivers**. Chaque service Docker a un mécanisme de journalisation actif par défaut utilisé par tous les conteneurs sauf si ceux-ci le redéfinissent explicitement. +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 ===== ===== Journalisation par défaut =====
Ligne 14: Ligne 14:
 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'' 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''
 +<code json>
 +{
 +  "log-driver": "json-file",
 +  "log-opts": {"max-size": "10m", "max-file": "3"}
 +}
 +</code>
  
-===== Redéfinir le mécanisme de log =====+===== Redéfinir le mécanisme de journalisation =====
  
-Pour redéfinir le mécanisme de journalisation d'un conteneur en particulier, on peut utiliser les options **%%--log-driver%%** et **%%--log-opt%%** lors de sa création:+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:
  
 <code bash> <code bash>
 +# Désactive la journalisation
 docker run -it --log-driver none alpine ash 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
 </code> </code>
 +
 +Ci-dessous la syntaxe à utiliser avec docker-compose
 +<code yaml>
 +version: '3.7'
 +services:
 +  my-app:
 +    image: my-app:latest
 +    logging:
 +      driver: "json-file"
 +      options:
 +        max-size: "10m"
 +        max-file: "5"
 +</code>
 +
 +===== 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 ===== ===== Références =====
Ligne 28: Ligne 57:
   * https://www.shellhacks.com/docker-container-logs-how-to-check/   * https://www.shellhacks.com/docker-container-logs-how-to-check/
   * https://www.papertrail.com/solution/tips/how-to-live-tail-docker-logs/   * https://www.papertrail.com/solution/tips/how-to-live-tail-docker-logs/
 +  * https://jaxenter.com/docker-logging-gotchas-137049.html
 +  * https://stackoverflow.com/questions/42510002/docker-how-to-clear-the-logs-properly-for-a-docker-container
sysadmin/docker/journalisation_des_conteneurs.1629621597.txt.gz · Dernière modification : 2021/08/22 08:39 de yoann