Google Cloud Logging驱动程序
预计阅读时间:4分钟
Google Cloud Logging驱动程序将容器日志发送到 Google Cloud Logging Logging。
用法
要将gcplogs
驱动程序用作默认的日志记录驱动程序,请在Linux主机或Windows Server上
的文件中将log-driver
和log-opt
键设置为适当的值。有关使用来配置Docker的更多信息,请参见
daemon.json。daemon.json
/etc/docker/
C:\ProgramData\docker\config\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 logs
。
如果Docker检测到它正在Google Cloud Project中运行,它将从实例元数据服务中发现配置
。否则,用户必须使用--gcp-project
log选项指定要登录的项目,并且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。 |
如果label
和env
键之间有冲突,则以值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