Google Cloud 日志记录驱动程序

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

用法

要将 gcplogs 驱动程序用作默认日志驱动程序,请在 daemon.json 文件中将 log-driverlog-opt 键设置为适当的值,该文件位于 Linux 主机上的 /etc/docker/ 或 Windows Server 上的 C:\ProgramData\docker\config\daemon.json。有关使用 daemon.json 配置 Docker 的更多信息,请参阅 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-project 日志选项指定要记录到哪个项目,并且 Docker 尝试从 Google 应用程序默认凭据 获取凭据。 --gcp-project 标志优先于从元数据服务器发现的信息,因此运行在 Google Cloud 项目中的 Docker 守护进程 可以被覆盖以使用 --gcp-project 记录到不同的项目。

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

gcplogs 选项

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

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

如果 labelenv 键之间存在冲突,则 env 的值优先。这两个选项都会向日志消息的属性添加额外字段。

以下是将日志记录到默认日志记录目的地所需的日志记录选项示例,该目的地通过查询 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 Cloud 之外运行时的日志选项。必须为守护进程设置 GOOGLE_APPLICATION_CREDENTIALS 环境变量,例如通过 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