Docker日志驱动 splunk

22 篇文章 0 订阅
11 篇文章 0 订阅

更多文章:WorkMap技术博客

简介

splunk日志驱动程序将容器日志发送到Splunk Enterprise和Splunk Cloud中的HTTP事件收集器。
用法
您可以通过默认或按容器配置Docker日志记录使用splunk驱动程序。
要将splunk驱动程序用作默认日志记录驱动程序,请在daemon.json配置文件中设置log-driver和log-opts键的适当值,并重新启动Docker。例如:

使用方法

  • 修改daemon.json
    Linux:/etc/docker/
    Windows Server:C:\ProgramData\docker\config\daemon.json
    {
      “log-driver”:“splunk”,
      “log-opts”:{
        “splunk-token”:“”,
        “splunk-url”:“”,
        }
    }
    
  • 重新启动 Docker 以使新创建的容器生效更改。现有容器不使用新的日志配置。
  • 创建容器,使用指定的日志驱动
    docker run --log-driver = splunk --log-opt splunk-token = VALUE --log-opt splunk-url = VALUE
    

使用参数

  • splunk-token

    必需

    Splunk HTTP事件收集器令牌。

  • splunk-url

    必需

    指向Splunk Enterprise,Splunk Cloud实例或Splunk Cloud托管群集(包括HTTP事件收集器使用的端口和方案)的路径,格式如下: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

    可选
    消息格式。可以是inline,json或raw。默认为inline。

  • splunk-verify-connection

    可选

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

  • splunk-gzip

    可选

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

  • splunk-gzip-level

    可选

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

  • tag

    可选

    附加到日志消息中CONTAINER_TAG和SYSLOG_IDENTIFIER字段。

  • labels

    可选

    启动Docker守护程序时添加。可以作为容器元数据,由日志驱动程序读取,配置自定义日志格式。

  • labels-regex

    可选

    和labels类似的功能。

  • env

    可选

    启动Docker守护程序时添加。作为容器元数据,由日志驱动程序读取,配置自定义日志格式。

  • env-regex

    可选

    和env类似,用于匹配与日志记录相关的环境变量的正则表达式。

使用示例

以下为Splunk Enterpris实例安装在与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云上托管的Splunk实例的splunk-url格式类似于https://http-inputs-XXXXXXXX.splunkcloud.com,不包括端口指定符。

splunk消息格式

有三种日志驱动程序消息格式:inline(默认),json和raw。

  • 默认格式为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消息中。要将消息格式化为JSON对象,需要设置--log-opt splunk-format=json
    驱动程序尝试将每行解析为JSON对象并将其嵌入Splunk消息发送。
    如果无法解析消息,则以内联方式发送。例如:

    {
      "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"
      }
    }
    
  • 要将消息格式化为原始格式,请设置–log-opt splunk-format=raw。属性(环境变量和标签)和标记将作为消息的前缀。例如:

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

高级选项

  • 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

    在用于将消息发送到后台记录器工作程序的通道中,可以有多少个待处理消息,该通道对它们进行批处理。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值