我的日志文件中有一行,实际上只是其中有一个半冒号。我假设它已附加到上一行。 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"
我尝试使用多行附加到上一行,因此logstash将停止打印:
multiline{
type => "BCM_Core"
pattern => "\;"
negate => true
what => "previous"
}
但logstash仍在打印它们。如何使logstash掉落?
最佳答案
只需使用放置过滤器删除以;
开头的任何行:
filter {
if ([message] =~ "^;") {
drop {}
}
}
尽管基于输出,但实际上不是
;/r
而是;\r
,因此,如果您的输出不仅仅是一个示例,则可能需要调整。您也可以删除任何无法破解的内容:
if "_grokparsefailure" in [tags] { drop {} }
关于regex - 如何从Logstash删除事件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24391004/