我尝试将日志文件的loglevel与grok过滤器匹配,但仍然得到_grokparsefailure。问题可能是[和日志级别之间的空间。
日志示例:2017-04-21 10:12:03,004 [INFO]消息
我的过滤器:
filter {
grok {
match => {
"log.level" => "\[ %{LOGLEVEL:loglevel}\]"
}
}
}
我也尝试了一些其他解决方案但未成功:
"\[ *%{LOGLEVEL:loglevel}\]"
"\[%{SPACE}%{LOGLEVEL:loglevel}\]"
在此先感谢您的帮助
问题在于过滤器中的match
选项:此选项是一个散列,它告诉过滤器要查看哪个字段以及要查看哪个字段。
你的正则表达式没问题(你可以查看http://grokconstructor.appspot.com/do/match),问题在于字段名称;它应该是message
。
因此,在您的情况下,您的过滤器应如下所示:
grok {
match => {
"message" => "\[ %{LOGLEVEL:loglevel}\]"
}
}