Pilote Google Cloud Logging
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