⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

Pilote de logging Graylog Extended Format

Table des matières

Le pilote de logging gelf est un format pratique qui est compris par un certain nombre d'outils tels que Graylog, Logstash, et Fluentd. Beaucoup d'outils utilisent ce format.

Dans GELF, chaque message de log est un dictionnaire avec les champs suivants :

  • Version
  • Hôte (qui a envoyé le message en premier lieu)
  • Horodatage
  • Version courte et longue du message
  • Tous les champs personnalisés que vous configurez vous-même

Utilisation

Pour utiliser le pilote gelf comme pilote de logging par défaut, définissez les clés log-driver et log-opt aux valeurs appropriées dans le fichier daemon.json, qui se trouve dans /etc/docker/ sur les hôtes Linux ou C:\ProgramData\docker\config\daemon.json sur Windows Server. Pour plus d'informations sur la configuration de Docker en utilisant daemon.json, voir daemon.json.

L'exemple suivant définit le pilote de log à gelf et définit l'option gelf-address.

{
  "log-driver": "gelf",
  "log-opts": {
    "gelf-address": "udp://1.2.3.4:12201"
  }
}

Redémarrez Docker pour que les changements prennent effet.

Note

Les options de configuration log-opts dans le fichier de configuration daemon.json doivent être fournies sous forme de chaînes. Les valeurs booléennes et numériques (telles que la valeur pour gelf-tcp-max-reconnect) doivent donc être entourées de guillemets (").

Vous pouvez définir le pilote de logging pour un conteneur spécifique en définissant le drapeau --log-driver lors de l'utilisation de docker container create ou docker run :

$ docker run \
      --log-driver gelf --log-opt gelf-address=udp://1.2.3.4:12201 \
      alpine echo hello world

Options GELF

Le pilote de logging gelf supporte les options suivantes :

Option Requis Description Valeur d'exemple
gelf-address requis L'adresse du serveur GELF. tcp et udp sont les seuls spécificateurs URI supportés et vous devez spécifier le port. --log-opt gelf-address=udp://192.168.0.42:12201
gelf-compression-type optionnel UDP seulement Le type de compression que le pilote GELF utilise pour compresser chaque message de log. Les valeurs autorisées sont gzip, zlib et none. La valeur par défaut est gzip. Notez que la compression activée entraîne une utilisation excessive du CPU, il est donc fortement recommandé de définir ceci à none. --log-opt gelf-compression-type=gzip
gelf-compression-level optionnel UDP seulement Le niveau de compression quand gzip ou zlib est le gelf-compression-type. Un entier dans la plage de -1 à 9 (BestCompression). La valeur par défaut est 1 (BestSpeed). Des niveaux plus élevés fournissent plus de compression à vitesse plus faible. Soit -1 ou 0 désactive la compression. --log-opt gelf-compression-level=2
gelf-tcp-max-reconnect optionnel TCP seulement Le nombre maximum de tentatives de reconnexion quand la connexion tombe. Un entier positif. La valeur par défaut est 3. --log-opt gelf-tcp-max-reconnect=3
gelf-tcp-reconnect-delay optionnel TCP seulement Le nombre de secondes à attendre entre les tentatives de reconnexion. Un entier positif. La valeur par défaut est 1. --log-opt gelf-tcp-reconnect-delay=1
tag optionnel Une chaîne qui est ajoutée au APP-NAME dans le message gelf. Par défaut, Docker utilise les 12 premiers caractères de l'ID du conteneur pour marquer les messages de log. Référez-vous à la documentation des options de tag de log pour personnaliser le format de tag de log. --log-opt tag=mailer
labels optionnel S'applique lors du démarrage du daemon Docker. Une liste séparée par des virgules d'étiquettes liées au logging que ce daemon accepte. Ajoute une clé supplémentaire sur les champs extra, préfixée par un underscore (_). Utilisé pour les options avancées de tag de log. --log-opt labels=production_status,geo
labels-regex optionnel Similaire et compatible avec labels. Une expression régulière pour correspondre aux étiquettes liées au logging. Utilisé pour les options avancées de tag de log. --log-opt labels-regex=^(production_status|geo)
env optionnel S'applique lors du démarrage du daemon Docker. Une liste séparée par des virgules de variables d'environnement liées au logging que ce daemon accepte. Ajoute une clé supplémentaire sur les champs extra, préfixée par un underscore (_). Utilisé pour les options avancées de tag de log. --log-opt env=os,customer
env-regex optionnel Similaire et compatible avec env. Une expression régulière pour correspondre aux variables d'environnement liées au logging. Utilisé pour les options avancées de tag de log. --log-opt env-regex=^(os|customer)
Note

Le pilote gelf ne supporte pas TLS pour les connexions TCP. Les messages envoyés aux entrées protégées par TLS peuvent échouer silencieusement.

Exemples

Cet exemple configure le conteneur pour utiliser le serveur GELF fonctionnant à 192.168.0.42 sur le port 12201.

$ docker run -dit \
    --log-driver=gelf \
    --log-opt gelf-address=udp://192.168.0.42:12201 \
    alpine sh