如何从logstash中删除事件?

时间:2014-06-24 15:46:08

标签: regex logging elasticsearch logstash

我的日志文件中有一行,字面上只有一个半冒号。我假设它附加到上一行。 Logstash会不断地打印它们,而且当有一行以a开头时,我想放弃它们。

这是logstash打印的内容:

"message" => ";/r"
"@version" => "1"
"@timestamp" => 2014-06-24T15:39:00.655Z,"
"type" => "BCM_Core",
"host => XXXXXXXXXXX",
"Path => XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"tags" => [
[0] "_grokparsefailureZ"
],
"BCM_UTC_TIME" =>"2014-06-24%{time}Z"

我尝试使用多行追加到上一行,因此logstash会停止打印:

   multiline{
    type => "BCM_Core"
    pattern => "\;"
    negate => true
    what => "previous"
}

但是logstash仍在打印出来。如何让logstash掉线?

1 个答案:

答案 0 :(得分:13)

只需使用投放过滤器即可删除以;开头的任何行:

filter {
   if ([message] =~ "^;") {
      drop {}
  }
}

虽然根据您的输出,它确实;/r而非;\r,因此您可能需要调整输出是否只是一个示例。

您也可以放弃任何无法理解的内容:

if "_grokparsefailure" in [tags] { drop {} }