elasticsearch 日志存储如何禁用";剖析器映射,未找到模式“;logstash-plain.log中出错
我有两种格式的带有行的日志elasticsearch 日志存储如何禁用";剖析器映射,未找到模式“;logstash-plain.log中出错,elasticsearch,logstash,elasticsearch,Logstash,我有两种格式的带有行的日志 aaa [bbb] [ccc] ddd eee aaa [bbb] fff ggg [ccc] ddd eee 我已经成功地使用next logstash filter配置来解析它们 filter { dissect { mapping => { "message" => "%{field1} [%{field2}] [%{field3}] %{message}" } } if "_dissectfailure" in [tags] {
aaa [bbb] [ccc] ddd eee
aaa [bbb] fff ggg [ccc] ddd eee
我已经成功地使用next logstash filter配置来解析它们
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”的行与第一次解剖匹配,带“fff ggg”的行与第一次解剖不匹配->获得标记“\u dissectfailure”,并与第二次解剖成功匹配(我看到事件中出现了字段“stuff”,事件没有“\u 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", }}
请帮我摆脱这些毫无意义的警告,如果根本没有解剖匹配,请写这样的警告?我知道它很旧,但对于任何遇到这种情况的人:
curl -XPUT 'localhost:9600/_node/logging?pretty' -H 'Content-Type:
application/json' -d'
{
"logger.org.logstash.dissect.Dissector" : "ERROR"
}
'
也许您可以在配置中使用类似于
\[.\]\[.\]
的正则表达式。如果匹配,使用第一个剖析,如果不是第二个。我不想做regexp-我需要快速处理,这就是为什么我使用剖析而不是grok