我正在尝试使用流利的守护进程将日志从Kubernetes推送到splunk。
当我设置format none
并推送到splunk它工作。但我想添加kubernetes_metadata,因此我更新为format json
并添加了kubernetes_metadata
过滤器。
然后,我得到400 Bad Request
{"text": "Invalid data format", "code": 6, "invalid-event-number": 0 }
这是我的fluent.conf文件
# Ignore fluentd log messages
<match fluent.**>
@type null
</match>
<source>
@type tail
path /var/log/containers/*.log
pos_file /fluentd/log/docker-containers.log.pos
tag kubernetes.*
format json
read_from_head true
</source>
<filter kubernetes.**>
@type kubernetes_metadata
</filter>
<match kubernetes.**>
@type splunk-http-eventcollector
server <host>:8088
protocol https
verify false
token ***
source fluentd-kube-containers
sourcetype _json
host "#{ENV['HOSTNAME']}"
buffer_chunk_limit 700k
batch_size_limit 1000000
buffer_type file
buffer_path /fluentd/log/fluentd-buffer
flush_interval 10s
</match>
答案 0 :(得分:0)
这是我的愚蠢,我的来源不是json
格式,所以splunk不喜欢它,我假设我需要在源上设置format json
以获取kubernetes元数据这是错误的,所以当我设置format none
并将all_items true
添加到splunk-http-eventcollector
时就可以了。