原标题:云计算核心技术Docker教程:Docker使用Splunk 日志驱动程序
该splunk日志驱动程序发送容器日志 HTTP事件收集器 中的Splunk Enterprise和Splunk的云。
用法
您可以将 Docker 日志配置splunk为默认使用驱动程序或在每个容器的基础上使用。
要将splunk驱动程序用作默认日志驱动程序,请在 配置文件中设置键 log-driver和log-opts适当的值daemon.json并重新启动 Docker。例如:
{
"log-driver": "splunk",
"log-opts": {
"splunk-token": "",
"splunk-url": "",
...
}
}
daemon.json 文件位于/etc/docker/Linux 主机或 C:\ProgramData\docker\config\daemon.jsonWindows Server 上。
要将splunk驱动程序用于特定容器,请使用命令行标志 --log-driver并log-opt使用docker run:
$ docker run --log-driver=splunk --log-opt splunk-token=VALUE --log-opt splunk-url=VALUE ...
Splunk 选项
以下属性可让您配置 splunk 日志记录驱动程序。
要splunk在 Docker 环境中配置驱动程序,请 daemon.json使用密钥"log-opts": {"NAME": "VALUE", ...}.
要splunk为单个容器配置驱动程序,请docker run 与标志一起使用--log-opt NAME=VALUE ...。
选项 是否必须 描述
splunk-token 必需的 Splunk HTTP 事件收集器令牌。
splunk-url 必需的 路径到您的Splunk企业,自我服务的Splunk Cloud实例,或Splunk的云管理的集群(包括端口和方案通过HTTP事件收集器使用)中的下列格式之一
splunk-source 可选的 事件源。
splunk-sourcetype 可选的 事件源类型。
splunk-index 可选的 事件索引。
splunk-capath 可选的 根证书的路径。
splunk-caname 可选的 用于验证服务器证书的名称;默认情况下使用的主机名splunk-url。
splunk-insecureskipverify 可选的 忽略服务器证书验证。
splunk-format 可选的 消息格式。可以inline,json或raw。默认为inline.
splunk-verify-connection 可选的 在启动时验证 docker 可以连接到 Splunk 服务器。默认为真。
splunk-gzip 可选的 启用/禁用 gzip 压缩以将事件发送到 Splunk Enterprise 或 Splunk Cloud 实例。默认为假。
splunk-gzip-level 可选的 设置 gzip 的压缩级别。有效值为 -1(默认)、0(无压缩)、1(最佳速度)... 9(最佳压缩)。默认为DefaultCompression。
tag 可选的 为消息指定标签,它解释一些标记。默认值为{{.ID}}(容器 ID 的 12 个字符)。
labels 可选的 逗号分隔的标签键列表,如果这些标签是为容器指定的,则应包含在消息中。
labels-regex 可选的 与labels. 匹配日志相关标签的正则表达式。用于高级日志标签选项。
env 可选的 逗号分隔的环境变量键列表,如果这些变量是为容器指定的,则应包含在消息中。
env-regex 可选的 与env. 匹配与日志相关的环境变量的正则表达式。用于高级日志标签选项。
如果label和env键之间发生冲突,env 则优先使用和的值。这两个选项都将附加字段添加到日志消息的属性中。
以下是为 Splunk Enterprise 实例指定的日志记录选项示例。该实例本地安装在运行 Docker 守护程序的同一台机器上。
根证书和通用名称的路径是使用 HTTPS 方案指定的。这用于验证。该SplunkServerDefaultCert自动通过Splunk的证书生成的。
$ docker run \
--log-driver=splunk \
--log-opt splunk-token=176FCEBF-4CF5-4EDF-91BC-703796522D20 \
--log-opt splunk-url=https://splunkhost:8088 \
--log-opt splunk-capath=/path/to/cert/cacert.pem \
--log-opt splunk-caname=SplunkServerDefaultCert \
--log-opt tag="{{.Name}}/{{.FullID}}" \
--log-opt labels=location \
--log-opt env=TEST \
--env "TEST=false" \
--label location=west \
your/application