Google Cloud Logging 驱动程序

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

用法

要使用gcplogsdriver 作为默认的日志记录驱动程序,将log-driverlog-optkeys 添加到daemon.json文件,即 位于/etc/docker/在 Linux 主机上或C:\ProgramData\docker\config\daemon.json在 Windows Server 上。有关 使用 配置 Dockerdaemon.json,请参阅 daemon.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 检测到它正在 Google Cloud 项目中运行,它会发现 配置 否则,用户必须指定 使用--gcp-projectlog 选项和 Docker 尝试从 Google 应用程序默认凭据获取凭据。 这--gcp-projectflag 优先于从 元数据服务器,因此在 Google Cloud 项目中运行的 Docker 守护进程可以是 overridden 以使用--gcp-project.

Docker 从 Google 获取 zone、instance name 和 instance ID 的值 云元数据服务器。如果元数据 服务器不可用。它们不会覆盖 metadata server 中的值。

GCPlogs 选项

您可以使用--log-opt NAME=VALUE标记来指定这些额外的 Google Cloud Logging 驱动程序选项:

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

如果labelenvkeys 的env优先。这两个选项都会向 logging 消息。

以下是记录到默认 logging 目标,该目标通过查询 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

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

以下示例显示了在 Google 外部运行的日志记录选项 云。这GOOGLE_APPLICATION_CREDENTIALS必须设置 environment variable 对于守护进程,例如通过 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