Pilote de logging Graylog Extended Format
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.
NoteLes options de configuration
log-opts
dans le fichier de configurationdaemon.json
doivent être fournies sous forme de chaînes. Les valeurs booléennes et numériques (telles que la valeur pourgelf-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) |
NoteLe 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