非常教程

Docker 17参考手册

引擎: 管理员指南 | Engine: Admin Guide

Splunk日志记录驱动程序(引擎) | Splunk logging driver (Engine)

splunk日志驱动程序发送集装箱日志HTTP事件收集器中的Splunk Enterprise和Splunk的云。

用法

要将splunk驱动程序用作默认日志记录驱动程序,请将该键log-driverlog-opt键设置daemon.json为位于/etc/docker/Linux主机或C:\ProgramData\docker\config\daemon.jsonWindows Server 上的文件中的适当值。有关+使用Docker配置的更多信息daemon.json,请参阅+ daemon.json。

以下示例将日志驱动程序设置为splunk

{
  "log-driver": "splunk"
}

重新启动Docker以使更改生效。

您可以使用以下--log-driver选项来设置特定容器的日志记录驱动程序docker run

docker run --log-driver=splunk ...

Splunk选项

您可以使用该--log-opt NAME=VALUE标志来指定这些额外的Splunk日志记录驱动程序选项:

选项

需要

描述

splunk-token

需要

Splunk HTTP事件收集器令牌。

splunk-url

需要

以下列格式之一指向您的Splunk Enterprise,自助服务Splunk Cloud实例或Splunk云托管群集(包括HTTP Event Collector使用的端口和方案)的路径:https:// your_splunk_instance:8088或https:// input- prd-p-XXXXXXX.cloud.splunk.com:8088或https://http-inputs-XXXXXXXX.splunkcloud.com。

splunk-source

可选的

事件源。

splunk-sourcetype

可选的

事件源类型。

splunk-index

可选的

事件索引。

splunk-capath

可选的

根证书的路径。

Splunk-caname

可选的

用于验证服务器证书的名称; 默认情况下将使用splunk-url的主机名。

splunk-insecureskipverify

可选的

忽略服务器证书验证。

splunk-format

可选的

消息格式。可以是内联,json或raw。默认为内联。

splunk-verify-connection

可选的

在开始时验证,该docker可以连接到Splunk服务器。默认为true。

Splunk-gzip

可选的

启用/禁用gzip压缩以将事件发送到Splunk Enterprise或Splunk Cloud实例。默认为false。

splunk-gzip-level

可选的

设置gzip的压缩级别。有效值为-1(默认),0(不压缩),1(最佳速度)... 9(最佳压缩)。默认为DefaultCompression。

tag

可选的

为消息指定标签,解释某些标记。默认值是{{.ID}}(容器ID的12个字符)。请参阅日志标记选项文档以定制日志标记格式。

labels

可选的

如果这些标签是为容器指定的,则应在消息中包含标签的键的逗号分隔列表。

env

可选的

如果为容器指定了这些变量,则应该在消息中包含环境变量的键的逗号分隔列表。

env-regex

可选的

与env类似且兼容。一个正则表达式来匹配与日志相关的环境变量。用于高级日志标记选项。

如果labelenv键之间存在冲突,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

splunk-url托管于云的Splunk Splunk的情况下,是在像格式https://http-inputs-XXXXXXXX.splunkcloud.com,并且不包括端口说明。

消息格式

默认情况下,日志驱动程序将消息发送给inline格式,例如,每条消息将作为字符串嵌入其中。

{
    "attrs": {
        "env1": "val1",
        "label1": "label1"
    },
    "tag": "MyImage/MyContainer",
    "source":  "stdout",
    "line": "my message"
}
{
    "attrs": {
        "env1": "val1",
        "label1": "label1"
    },
    "tag": "MyImage/MyContainer",
    "source":  "stdout",
    "line": "{\"foo\": \"bar\"}"
}

如果您的消息是JSON对象,您可能希望将它们嵌入到我们发送给Splunk的消息中。通过指定--log-opt splunk-format=json驱动程序将尝试将每一行解析为JSON对象,并将其作为嵌入式对象发送。如果它不能解析它-消息将作为inline.例如

{
    "attrs": {
        "env1": "val1",
        "label1": "label1"
    },
    "tag": "MyImage/MyContainer",
    "source":  "stdout",
    "line": "my message"
}
{
    "attrs": {
        "env1": "val1",
        "label1": "label1"
    },
    "tag": "MyImage/MyContainer",
    "source":  "stdout",
    "line": {
        "foo": "bar"
    }
}

第三种格式是raw消息。您可以使用指定它--log-opt splunk-format=raw。属性(环境变量和标签)和标签将作为消息的前缀。例如

MyImage/MyContainer env1=val1 label1=label1 my message
MyImage/MyContainer env1=val1 label1=label1 {"foo": "bar"}

高级选项

Splunk日志记录驱动程序允许您通过为Docker守护进程指定下一个环境变量来配置少数高级选项。

环境变量名称

默认值

描述

SPLUNK_LOGGING_DRIVER_POST_MESSAGES_FREQUENCY

5S

如果没有什么可以批量驱动程序发布消息的频率。您可以将此视为等待更多消息进行批处理的最长时间。

SPLUNK_LOGGING_DRIVER_POST_MESSAGES_BATCH_SIZE

1000

在一批发送驱动程序之前,驱动程序应等待多少个消息。

SPLUNK_LOGGING_DRIVER_BUFFER_MAX

10 * 1000

如果驱动程序无法连接到远程服务器,它可以保存在缓冲区中以便重试的最大消息数量是多少。

SPLUNK_LOGGING_DRIVER_CHANNEL_SIZE

4 * 1000

通道中有多少待处理消息可用于将消息发送给后台记录器工作人员,后者将对这些消息进行批处理。

引擎: 管理员指南 | Engine: Admin Guide相关

1.Amazon CloudWatch记录日志记录驱动程序(引擎) | Amazon CloudWatch logs logging driver (Engine)
2. 绑定挂载 | Bind mounts (Engine)
3.使用Prometheus(引擎)收集Docker指标 | Collect Docker metrics with Prometheus (Engine)
4.配置和运行Docker(引擎) | Configuring and running Docker (Engine)
5.配置日志记录驱动程序 | Configuring logging drivers (Engine)
6.使用systemd控制和配置Docker(引擎) | Control and configure Docker with systemd (Engine)
7.ETW日志记录驱动程序(引擎) | ETW logging driver (Engine)
8.流利的日志驱动程序(引擎) | Fluentd logging driver (Engine)
9.格式化命令和日志输出(引擎) | Format command and log output (Engine)
10.Google Cloud日志记录驱动程序(引擎) | Google Cloud logging driver (Engine)
11.Graylog扩展格式(GELF)日志记录驱动程序(引擎) | Graylog Extended Format (GELF) logging driver (Engine)
12.Journald日志记录驱动程序(引擎) | Journald logging driver (Engine)
13.JSON文件日志记录驱动程序(引擎) | JSON File logging driver (Engine)
14.在守护进程停机期间保持容器处于活动状态(引擎) | Keep containers alive during daemon downtime (Engine)
15.限制容器的资源(引擎) | Limit a container's resources (Engine)
16.通过大使容器链接(引擎) | Link via an ambassador container (Engine)
17.记录驱动程序的日志标记(引擎) | Log tags for logging driver (Engine)
18.Logentries日志驱动程序(引擎) | Logentries logging driver (Engine)
19.PowerShell DSC用法(引擎) | PowerShell DSC usage (Engine)
20.修剪未使用的Docker对象(引擎) | Prune unused Docker objects (Engine)
21.在容器中运行多个服务(引擎) | Run multiple services in a container (Engine)
22.运行时指标(引擎) | Runtime metrics (Engine)
23.自动启动容器(引擎) | Start containers automatically (Engine)
24.存储概述(引擎) | Storage overview (Engine)
25.Syslog日志记录驱动程序(引擎) | Syslog logging driver (Engine)
26.tmpfs mounts
27.解决卷问题(引擎) | Troubleshoot volume problems (Engine)
28.使用日志驱动程序插件(引擎) | Use a logging driver plugin (Engine)
29.使用Ansible(引擎) | Using Ansible (Engine)
30.使用Chef(引擎) | Using Chef (Engine)
31.使用Puppet(引擎) | Using Puppet (Engine)
32.查看容器的日志(引擎) | View a container's logs (Engine)
33.Volumes (Engine)
Docker 17

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

主页 https://docker.com/
源码 https://github.com/docker/docker
版本 17
发布版本 17.06