首页 > 解决方案 > Logstash - 多个 grok 模式不能一起工作

问题描述

我对使用 Logstash 非常陌生。我有两种日志,

Pattern 1 : --2019-05-09 08:53:45.057 -INFO 11736 --- [ntainer#1-0-C-1] cssservice.MessageLogServiceImpl : [adc7fd862db5307a688817198046b284dbb12b9347bed9067320caa49d8efa381557392024151] Event => Message Status Change [Start Time : 09052019 08:53:44]:CUSTOM_PROCESSING_COMPLETED

Pattern 2 : --2019-05-09 06:49:05.590 -TRACE 6293 --- [ntainer#0-0-C-1] cssservice.MessageLogServiceImpl : [41a6811cbc1c66eda0e942712a12a003d6bf4654b3edb6d24bf159b592afc64f1557384545548] Event => Message Failure Identified : INVALID_STRUCTURE

虽然还有更多其他线路,但我只想考虑这两种类型。因此我使用了下面的过滤器,

 grok {
     #Event : message status change
     match => {
         "message" => "--(?<logtime>[^\]]*) -%{LOGLEVEL:level} (?<pid>\d+) --- \[(?<thread>[^\]]+)] (?<classname>[\w.]+)\s+: \[(?<token>[^\]]+)] Event \=> Message Status Change \[Start Time : (?<start>[^\]]*)\] : (?<status>[\w]+)"
     }
     add_field => {
         "event" => "message_status_change"
     }
 }


 grok {
     #Event : message failure
     match => {
         "message" => "--(?<logtime>[^\]]*) -%{LOGLEVEL:level} (?<pid>\d+) --- \[(?<thread>[^\]]+)] (?<classname>[\w.]+)\s+: \[(?<token>[^\]]+)] Event \=> Message Failure Identified : (?<code>[\w]+)"
     }
     add_field => {
         "event" => "message_failure"
     }
 }

我还注意到这两种 grok 模式都是单独工作的(如果我评论一个,那么另一个完美地工作)。当两种模式都处于活动状态时,Logstash 服务器也可以。但是当它们都打开并且在日志文件中添加一个新行时,它会引发一个 grokparse 错误。

我也想知道,虽然我将输入配置为从头开始读取文件,但即使在服务器重新启动后它也不会读取,除非我在日志中添加新行。为什么会有这种行为?

提前致谢。

标签: logstashlogstash-grok

解决方案


推荐阅读