我试图用logstash(版本1.4.2)和grok解析我的应用程序日志,但由于某种原因我不明白,grok无法解析一些行应匹配指定的过滤器。我搜索了Google和Stackoverflow,但其他人看到的大多数问题似乎都与多行日志消息有关(对我而言并非如此),我无法找到解决的问题我的问题。
我的过滤器如下所示:
filter {
grok {
match => { "message" => "%{SYSLOGBASE} -(?<script>\w*)-: Adding item with ID %{WORD:item_id} to database."}
add_tag => ["insert_item"]
}
}
这里是正确解析的行的消息字段:
May 11 16:47:55 myhost rqworker: -script-: Adding item with ID 982663745238221172_227691295 to database.
这里是一行不是
的消息字段May 11 16:47:55 myhost rqworker: -script-: Adding item with ID 982663772746479443_1639853260 to database.
这些消息之间唯一不同的是项目ID,Grok Debugger正确解析它们。
我已检查过logstash日志文件,但没有看到任何相关的错误消息。
我刚开始使用logstash并且不知道这里发生了什么;任何帮助将不胜感激!