Google Cloud Logging驱动程序

预计阅读时间:4分钟

Google Cloud Logging驱动程序将容器日志发送到 Google Cloud Logging Logging。

用法

要将gcplogs驱动程序用作默认的日志记录驱动程序,请在Linux主机或Windows Server上 的文件中将log-driverlog-opt键设置为适当的值。有关使用来配置Docker的更多信息,请参见 daemon.jsondaemon.json/etc/docker/C:\ProgramData\docker\config\daemon.jsondaemon.json

下面的示例将日志驱动程序gcplogs设置为并设置 gcp-meta-name选项。

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

重新启动Docker以使更改生效。

您可以通过使用以下--log-driver选项来为特定容器设置日志记录驱动程序 docker run

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

此日志驱动程序未实现阅读器,因此与兼容 docker logs

如果Docker检测到它正在Google Cloud Project中运行,它将从实例元数据服务中发现配置 。否则,用户必须使用--gcp-projectlog选项指定要登录的项目,并且Docker尝试从Google Application Default Credential获取 证书。该--gcp-project标志优先于从元数据服务器中发现的信息,因此可以覆盖在Google Cloud Project中运行的Docker守护程序,以登录到其他Google Cloud Project --gcp-project

Docker从Google Cloud元数据服务器获取区域,实例名称和实例ID的值。如果元数据服务器不可用,则可以通过选项提供这些值。它们不会覆盖元数据服务器中的值。

gcplogs选项

您可以使用该--log-opt NAME=VALUE标志来指定以下其他Google Cloud Logging驱动程序选项:

选项 必需的 描述
gcp-project 可选的 要登录到哪个GCP项目。默认为从GCE元数据服务中发现此值。
gcp-log-cmd 可选的 是否记录启动容器的命令。默认为false。
labels 可选的 如果为容器指定了这些标签的键的列表,这些键应以逗号分隔。
labels-regex 可选的 与相似并兼容labels。与记录相关标签匹配的正则表达式。用于高级日志标签选项
env 可选的 如果为容器指定了环境变量键的列表,这些变量应以逗号分隔。
env-regex 可选的 与相似并兼容env。用于匹配与日志记录相关的环境变量的正则表达式。用于高级日志标签选项
gcp-meta-zone 可选的 实例的区域名称。
gcp-meta-name 可选的 实例名称。
gcp-meta-id 可选的 实例ID。

如果labelenv键之间有冲突,则以值env 优先。这两个选项都将其他字段添加到日志消息的属性中。

以下是登录到默认日志记录目标所必需的日志记录选项的示例,该默认日志记录目标是通过查询GCE元数据服务器发现的。

$ 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

此配置还指示驱动程序在有效负载中包括标签 location,环境变量ENV和用于启动容器的命令。

在GCE外部运行的日志记录选项示例(守护程序必须配置有GOOGLE_APPLICATION_CREDENTIALS):

$ 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
gcplogs谷歌码头工人日志驱动