要解析Logstash中从Filebeat发送的JSON日志行,您需要使用json过滤器而不是编解码器。这是因为Filebeat将其数据作为JSON发送,并且您的日志行的内容包含在该
message字段中。
Logstash配置:
input { beats { port => 5044 } }filter { if [tags][json] { json { source => "message" } } }output { stdout { prec => rubydebug { metadata => true } } }Filebeat配置:
filebeat: prospectors: - paths: - my_json.log fields_under_root: true fields: tags: ['json']output: logstash: hosts: ['localhost:5044']
在Filebeat配置中,我向事件添加了“ json”标签,以便可以有条件地将json过滤器应用于数据。
Filebeat 5.0能够在不使用Logstash的情况下解析JSON,但是目前它仍是Alpha版本。这篇标题为“
使用Filebeat进行结构化日志记录”的博客文章演示了如何使用Filebeat 5.0解析JSON。



