Logstash 2.0:如何删除失败的解析事件?

时间:2016-01-27 22:30:45

标签: csv elasticsearch logstash

我的logstash配置文件解析一个CSV文件,该文件还包含空行和其他与CSV过滤器不匹配的行。遇到空行时,Logstash会生成以下错误:

"无法解析csv {:source =>" message"," raw" =>"","例外=>#,:level =>:警告}"

如何在logstash中跳过空行或空行?如何跳过无法解析的事件?

1 个答案:

答案 0 :(得分:0)

首先,我会删除你知道无效的事件,如空行:

filter {
    if [message] =~ /^$/ {
        drop { }
    }
}

如果还有其他种类可以删除(注释行以“#”开头等),也可以这样做。

您可能想了解其他“不可解决的”行。如果您不想将它们放入索引中,请考虑将它们发送到文件中。我不记得csv过滤器是否表示成功/失败,但你可以自己做:

csv {
    ...
    add_tag => [ "csvOK" ]
}

只有csv过滤器有效时才会添加此标记。然后将这些事件输出到其他位置:

output {
    if "csvOK" in [tags] {
         elasticsearch {
             ...
         }
    }
    else {
         file {
             ...
         }
    }
 }

[注意:伪代码]