如何从logstash中删除事件?

sim*_*ang 6 regex logging elasticsearch logstash

我的日志文件中有一行,字面上只有一个半冒号.我假设它附加到上一行.Logstash不断打印它们,我希望在有一条以#开头的行时删除它们.

这是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"
Run Code Online (Sandbox Code Playgroud)

我试图使用多行追加到前一行,因此logstash将停止打印:

   multiline{
    type => "BCM_Core"
    pattern => "\;"
    negate => true
    what => "previous"
}
Run Code Online (Sandbox Code Playgroud)

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

Alc*_*zar 14

只需使用drop filter删除任何以以下内容开头的行;:

filter {
   if ([message] =~ "^;") {
      drop {}
  }
}
Run Code Online (Sandbox Code Playgroud)

虽然基于您的输出,但实际上;/r并非;\r如此,因此您可能需要调整输出是否只是一个示例.

您也可以删除任何无法解决的问题:

if "_grokparsefailure" in [tags] { drop {} }
Run Code Online (Sandbox Code Playgroud)