我的日志文件中有一行,字面上只有一个半冒号。我假设它附加到上一行。 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掉线?
答案 0 :(得分:13)
只需使用投放过滤器即可删除以;
开头的任何行:
filter {
if ([message] =~ "^;") {
drop {}
}
}
虽然根据您的输出,它确实;/r
而非;\r
,因此您可能需要调整输出是否只是一个示例。
您也可以放弃任何无法理解的内容:
if "_grokparsefailure" in [tags] { drop {} }