我有两种格式的行日志。
aaa [bbb] [ccc] ddd eee
aaa [bbb] fff ggg [ccc] ddd eee
我已成功使用下一个logstash过滤器配置来解析它们。
filter {
dissect {
mapping => { "message" => "%{field1} [%{field2}] [%{field3}] %{message}" }
}
if "_dissectfailure" in [tags] {
dissect {
remove_tag => [ "_dissectfailure" ]
mapping => { "message" => "%{field1} [%{field2}] %{stuff} [%{field3}] %{message}" }
}
}
}
所有工作均符合预期-没有“ fff ggg”的行与第一个dissect匹配,有“ fff ggg”的行与第一个dissect不匹配->得到标签“ _dissectfailure”并成功与第二个dissect匹配(我看到了该字段事件中出现“材料”,事件中没有“ _dissectfailure”标签)
但是logstash在logstash-plain.log中抱怨第一个解剖:
[2019-09-04T20:14:06,901][WARN ][org.logstash.dissect.Dissector] Dissector mapping, pattern not found {"field"=>"message", "pattern"=>"%{field1} [%{field2}] [%{field3}] %{message}", "event"=>{"input"=>{"type"=>"log"}, "@timestamp"=>2019-09-04T17:13:50.269Z, "tags"=>["beats_input_codec_plain_applied", "_dissectfailure"], "message"=>"aaa [bbb] fff ggg [ccc] ddd eee", }}
请帮助摆脱这种毫无意义的警告,如果根本没有解剖匹配的话就写这样的警告?
答案 0 :(得分:2)
我知道它很旧,但是对于遇到此问题的其他人来说:
curl -XPUT 'localhost:9600/_node/logging?pretty' -H 'Content-Type:
application/json' -d'
{
"logger.org.logstash.dissect.Dissector" : "ERROR"
}
'