具有更多匹配器的Logstash过滤器

时间:2014-09-18 07:14:39

标签: logstash logstash-grok

我想用一个匹配器定义一个logstash过滤器,因为在一个.log文件中有更多类型的记录消息。 当我检查是否有一个日志文件时,我定义了更多分离的过滤器,然后只是在行上运行的第一个过滤器。

1 个答案:

答案 0 :(得分:2)

您可以使用具有多种模式的grok过滤器,也可以使用if语句进行有条件的解析。

要使用多种模式,您只需将其列在grok

grok {
  match => [ "message", 
     "Error on line (?<line>\d+)",
     "Exception in (?<place>\d+)",
     "Something else"
  ]
}

Logstash将按顺序评估它们,并在其中一个匹配时停止(或者如果没有匹配则为_grokparsefailure标记)

您可以做的另一件事是条件评估:

if [message] =~ /Some pattern/ {
   grok {
     match => ['message','Some pattern of (?<number>\d+) stuff']
   }
} else if [message] =~ /Some other pattern/ {
  ...
}