elasticsearch 日志存储如何禁用";剖析器映射,未找到模式“;logstash-plain.log中出错,elasticsearch,logstash,elasticsearch,Logstash" /> elasticsearch 日志存储如何禁用";剖析器映射,未找到模式“;logstash-plain.log中出错,elasticsearch,logstash,elasticsearch,Logstash" />

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