是时候用 ES 拯救发际线啦

多种类型beats输入logstash如何进行分别处理?

Logstash | 作者 langzixdj | 发布于2019年02月20日 | 阅读数:5695

目前分别有json格式的nginx和winsyslog二种类型数据通过beats输入logstash,如下配置可以识别json日志
input{
beats{
port=>5044
codec=>json
}
}

output{
elasticsearch{
hosts=>["127.0.0.1:9200"]
index=>"nginx-%{+YYYY.MM.dd}"
}
}

但其它类型日志会报错;
[ERROR][logstash.codecs.json     ] JSON parse error, original data now in message field {:error=>#<LogStash::Json::ParserError: Unrecognized token '����失败': was expecting ('true', 'false' or 'null')

如果将codec=>"json"移至output无法识别json日志,
input{
beats{
port=>5044
}
}
output{
if[fields][doc_type]=="log_nginx" {
elasticsearch{
hosts=>["127.0.0.1:9200"]
index=>"nginx-%{+YYYY.MM.dd}"
codec => json
}
}
}

会变成这样:

未命名图片.png

 
请问应该如何处理这种多种类型的beats输入情况????
已邀请:

xiaoaps - 80后IT男

赞同来自:

我也遇到这种问题了,请问你是如何解决的呀?

bellengao - 博客: https://www.jianshu.com/u/e0088e3e2127

赞同来自:

定义pipeline, 对于json格式的日志使用pipeline的json processor处理

要回复问题请先登录注册