Google Cloud Logging 驱动程序
Google Cloud Logging 驱动程序将容器日志发送到 Google Cloud Logging Logging。
用法
要使用gcplogs
driver 作为默认的日志记录驱动程序,将log-driver
和log-opt
keys 添加到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-project
log 选项和 Docker
尝试从 Google 应用程序默认凭据获取凭据。
这--gcp-project
flag 优先于从
元数据服务器,因此在 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。 |
如果label
和env
keys 的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