0
^(?:%{LOGLEVEL:level}):\s*%{DATA:message}\s*(?:%{JAVACLASS:caller_class})\s+\[%{WORD:loglevel}\]\s+(\[\s*\S+\s+%{BASE10NUM:tstamp}.*?\]\s+)+(\[\s*\S+\s+%{BASE10NUM:memory}\S*\s+\S+\s+%{BASE10NUM:total}.*?\]) 

这是我从这里开始的 grok 模式https://regex101.com/r/yMq9J1/1

现在我想在过滤器的logstash配置中使用它,但出现错误

给定的配置无效。原因:过滤器 { grok { match => { "message" => "^(?:%{LOGLEVEL:level}):\s*% {DATA:message}\s*(?:%{JAVACLASS:caller_class})\s+[%{WORD:loglevel}]\s+([\s*\S+\s+%{BASE10NUM:tstamp}. ?]\s+ )+([\s \S+\s+%{BASE10NUM:memory}\S*\s+\S+\s+%{BASE10NUM:total}.*?])" } } 输出 { elasticsearch

你们能帮我了解这里的情况吗?

4

1 回答 1

0

grok 模式不是问题,配置缺少一个}关闭 grok 过滤器的匹配设置。

它应该在 之后添加%{BASE10NUM:total}.*?])",如下所示:

      ...%{BASE10NUM:total}.*?])" 
    }  # missing accolade
  } 
}   

output { 
  elasticsearch
  ...
于 2016-12-06T13:24:59.997 回答