^(?:%{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
答案 0 :(得分:0)
grok模式不是问题,配置缺少}
来关闭grok过滤器的匹配设置。
应该在%{BASE10NUM:total}.*?])"
之后添加,如下所示:
...%{BASE10NUM:total}.*?])"
} # missing accolade
}
}
output {
elasticsearch
...