我在filebeat中有一个tcp syslog输入,传入的数据是json。我想将json解码为elasticsearch中的顶级密钥。我该怎么办?
syslog输入没有选择解码json的选项,作为日志输入,我认为我必须在弹性搜索中使用Logstash或摄取节点。我在elasticsearch中创建了一个新的摄取管道。我已经使用“模拟”功能来测试是否将syslog的内容放入“消息”字段(也是用于解码的字段)中。所有这些都起作用,并且响应正确地显示了它。
但是一旦我在输入或输出中的filebeat.yml中选择管道ID,我就会从filebeat中得到此错误:ERROR [syslog] syslog/input.go:131 can't parse event as syslog rfc3164
这是我的filebeat.yml文件:
filebeat.inputs:
- type: syslog
protocol.tcp:
host: ":9000"
pipeline: "pipeline_name"
cloud.id: ${ELASTIC_CLOUD_ID}
cloud.auth: ${ELASTICSEARCH_USERNAME}:${ELASTICSEARCH_PASSWORD}
这是管道的配置:
"pipeline_name": {
"description": "json decode",
"processors": [
{
"json": {
"field": "message",
"add_to_root": true
}
}
]
}