grok模式到自定义logstash配置

时间:2016-12-06 10:33:08

标签: filtering logstash logstash-grok logstash-configuration logstash-file

^(?:%{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}.*?\]) 

这是我的格鲁克模式https://regex101.com/r/yMq9J1/1

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

  

给定的配置无效。原因:预期的一个#,=>过滤后的第12行第19列(字节341){     grok {       match => {“message”=> “^(?:%{LOGLEVEL:级别}):\ S *%{DATA:消息} \ S *(?:%{JAVACLASS:caller_class})\ S + [%{WORD:记录级}] \ S +([\ S * \ S + \ S +%。{BASE10NUM:TSTAMP} ] \ S +)+([\ S \ S + \ S +%?{BASE10NUM:存储器} \ S * \ S + \ S + \ S +% {BASE10NUM:总} *])”?       }   }   输出{       elasticsearch

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

1 个答案:

答案 0 :(得分:0)

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

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

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

output { 
  elasticsearch
  ...