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

Pilote Google Cloud Logging

Table des matières

Le pilote Google Cloud Logging envoie les logs de conteneur à Google Cloud Logging Logging.

Utilisation

Pour utiliser le pilote gcplogs 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 à gcplogs et définit l'option gcp-meta-name.

{
  "log-driver": "gcplogs",
  "log-opts": {
    "gcp-meta-name": "example-instance-12345"
  }
}

Redémarrez Docker pour que les changements prennent effet.

Vous pouvez définir le pilote de logging pour un conteneur spécifique en utilisant l'option --log-driver avec docker run :

$ docker run --log-driver=gcplogs ...

Si Docker détecte qu'il fonctionne dans un projet Google Cloud, il découvre la configuration depuis le service de métadonnées d'instance. Sinon, l'utilisateur doit spécifier vers quel projet logger en utilisant l'option de log --gcp-project et Docker tente d'obtenir les informations d'identification depuis Google Application Default Credential. Le drapeau --gcp-project prend la précédence sur les informations découvertes depuis le serveur de métadonnées, donc un daemon Docker fonctionnant dans un projet Google Cloud peut être remplacé pour logger vers un projet différent en utilisant --gcp-project.

Docker récupère les valeurs pour la zone, le nom d'instance et l'ID d'instance depuis le serveur de métadonnées Google Cloud. Ces valeurs peuvent être fournies via des options si le serveur de métadonnées n'est pas disponible. Elles ne remplacent pas les valeurs du serveur de métadonnées.

Options gcplogs

Vous pouvez utiliser le drapeau --log-opt NAME=VALUE pour spécifier ces options supplémentaires du pilote Google Cloud Logging :

Option Requis Description
gcp-project optionnel Vers quel projet Google Cloud logger. Par défaut découvre cette valeur depuis le serveur de métadonnées Google Cloud.
gcp-log-cmd optionnel S'il faut logger la commande avec laquelle le conteneur a été démarré. Par défaut false.
labels optionnel Liste séparée par des virgules de clés d'étiquettes, qui devraient être incluses dans le message, si ces étiquettes sont spécifiées pour le conteneur.
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.
env optionnel Liste séparée par des virgules de clés de variables d'environnement, qui devraient être incluses dans le message, si ces variables sont spécifiées pour le conteneur.
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.
gcp-meta-zone optionnel Nom de zone pour l'instance.
gcp-meta-name optionnel Nom d'instance.
gcp-meta-id optionnel ID d'instance.

S'il y a collision entre les clés label et env, la valeur de env prend la précédence. Les deux options ajoutent des champs supplémentaires aux attributs d'un message de logging.

Ce qui suit est un exemple des options de logging requises pour logger vers la destination de logging par défaut qui est découverte en interrogeant le serveur de métadonnées Google Cloud.

$ docker run \
    --log-driver=gcplogs \
    --log-opt labels=location \
    --log-opt env=TEST \
    --log-opt gcp-log-cmd=true \
    --env "TEST=false" \
    --label location=west \
    your/application

Cette configuration dirige aussi le pilote à inclure dans la charge utile l'étiquette location, la variable d'environnement ENV, et la commande utilisée pour démarrer le conteneur.

L'exemple suivant montre les options de logging pour fonctionner en dehors de Google Cloud. La variable d'environnement GOOGLE_APPLICATION_CREDENTIALS doit être définie pour le daemon, par exemple via systemd :

[Service]
Environment="GOOGLE_APPLICATION_CREDENTIALS=uQWVCPkMTI34bpssr1HI"
$ docker run \
    --log-driver=gcplogs \
    --log-opt gcp-project=test-project \
    --log-opt gcp-meta-zone=west1 \
    --log-opt gcp-meta-name=`hostname` \
    your/application