谷歌云日志驱动程序
Google Cloud Logging 驱动程序将容器日志发送到 Google Cloud Logging 日志记录。
用法
要将gcplogs
驱动程序用作默认日志记录驱动程序,请将log-driver
和log-opt
键设置为文件中的适当值daemon.json
,该文件位于/etc/docker/
Linux 主机或
C:\ProgramData\docker\config\daemon.json
Windows Server 上。有关使用配置 Docker 的更多信息daemon.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 项目中运行,它会从
实例元数据服务发现配置。否则,用户必须使用 log 选项指定要登录到哪个项目,并且 Docker 会尝试从Google Application Default Credential--gcp-project
获取凭据
。该标志优先于从元数据服务器发现的信息,因此可以覆盖在 Google Cloud 项目中运行的 Docker 守护程序,以使用.--gcp-project
--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。 |
label
如果和键之间发生冲突env
,则 的值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