?
This document uses PHP Chinese website manual Release
splunk
日志驅(qū)動程序發(fā)送集裝箱日志HTTP事件收集器中的Splunk Enterprise和Splunk的云。
要將splunk
驅(qū)動程序用作默認日志記錄驅(qū)動程序,請將該鍵log-driver
和log-opt
鍵設(shè)置daemon.json
為位于/etc/docker/
Linux主機或C:\ProgramData\docker\config\daemon.json
Windows Server 上的文件中的適當值。有關(guān)+使用Docker配置的更多信息daemon.json
,請參閱+ daemon.json。
以下示例將日志驅(qū)動程序設(shè)置為splunk
。
{ "log-driver": "splunk"}
重新啟動Docker以使更改生效。
您可以使用以下--log-driver
選項來設(shè)置特定容器的日志記錄驅(qū)動程序docker run
:
docker run --log-driver=splunk ...
您可以使用該--log-opt NAME=VALUE
標志來指定這些額外的Splunk日志記錄驅(qū)動程序選項:
選項 | 需要 | 描述 |
---|---|---|
splunk-token | 需要 | Splunk HTTP事件收集器令牌。 |
splunk-url | 需要 | 以下列格式之一指向您的Splunk Enterprise,自助服務(wù)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 | 可選的 | 用于驗證服務(wù)器證書的名稱; 默認情況下將使用splunk-url的主機名。 |
splunk-insecureskipverify | 可選的 | 忽略服務(wù)器證書驗證。 |
splunk-format | 可選的 | 消息格式。可以是內(nèi)聯(lián),json或raw。默認為內(nèi)聯(lián)。 |
splunk-verify-connection | 可選的 | 在開始時驗證,該docker可以連接到Splunk服務(wù)器。默認為true。 |
Splunk-gzip | 可選的 | 啟用/禁用gzip壓縮以將事件發(fā)送到Splunk Enterprise或Splunk Cloud實例。默認為false。 |
splunk-gzip-level | 可選的 | 設(shè)置gzip的壓縮級別。有效值為-1(默認),0(不壓縮),1(最佳速度)... 9(最佳壓縮)。默認為DefaultCompression。 |
tag | 可選的 | 為消息指定標簽,解釋某些標記。默認值是{{.ID}}(容器ID的12個字符)。請參閱日志標記選項文檔以定制日志標記格式。 |
labels | 可選的 | 如果這些標簽是為容器指定的,則應(yīng)在消息中包含標簽的鍵的逗號分隔列表。 |
env | 可選的 | 如果為容器指定了這些變量,則應(yīng)該在消息中包含環(huán)境變量的鍵的逗號分隔列表。 |
env-regex | 可選的 | 與env類似且兼容。一個正則表達式來匹配與日志相關(guān)的環(huán)境變量。用于高級日志標記選項。 |
如果label
和env
鍵之間存在沖突,env
則優(yōu)先。這兩個選項都將附加字段添加到日志消息的屬性中。
以下是為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
,并且不包括端口說明。
默認情況下,日志驅(qū)動程序?qū)⑾l(fā)送給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對象,您可能希望將它們嵌入到我們發(fā)送給Splunk的消息中。通過指定--log-opt splunk-format=json
驅(qū)動程序?qū)L試將每一行解析為JSON對象,并將其作為嵌入式對象發(fā)送。如果它不能解析它-消息將作為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
。屬性(環(huán)境變量和標簽)和標簽將作為消息的前綴。例如
MyImage/MyContainer env1=val1 label1=label1 my message MyImage/MyContainer env1=val1 label1=label1 {"foo": "bar"}
Splunk日志記錄驅(qū)動程序允許您通過為Docker守護進程指定下一個環(huán)境變量來配置少數(shù)高級選項。
環(huán)境變量名稱 | 默認值 | 描述 |
---|---|---|
SPLUNK_LOGGING_DRIVER_POST_MESSAGES_FREQUENCY | 5S | 如果沒有什么可以批量驅(qū)動程序發(fā)布消息的頻率。您可以將此視為等待更多消息進行批處理的最長時間。 |
SPLUNK_LOGGING_DRIVER_POST_MESSAGES_BATCH_SIZE | 1000 | 在一批發(fā)送驅(qū)動程序之前,驅(qū)動程序應(yīng)等待多少個消息。 |
SPLUNK_LOGGING_DRIVER_BUFFER_MAX | 10 * 1000 | 如果驅(qū)動程序無法連接到遠程服務(wù)器,它可以保存在緩沖區(qū)中以便重試的最大消息數(shù)量是多少。 |
SPLUNK_LOGGING_DRIVER_CHANNEL_SIZE | 4 * 1000 | 通道中有多少待處理消息可用于將消息發(fā)送給后臺記錄器工作人員,后者將對這些消息進行批處理。 |