我的logstash配置文件解析一个CSV文件,该文件还包含空行和其他与CSV过滤器不匹配的行。遇到空行时,Logstash会生成以下错误:
"无法解析csv {:source =>" message"," raw" =>"","例外=>#,:level =>:警告}"
如何在logstash中跳过空行或空行?如何跳过无法解析的事件?
答案 0 :(得分:0)
首先,我会删除你知道无效的事件,如空行:
filter {
if [message] =~ /^$/ {
drop { }
}
}
如果还有其他种类可以删除(注释行以“#”开头等),也可以这样做。
您可能想了解其他“不可解决的”行。如果您不想将它们放入索引中,请考虑将它们发送到文件中。我不记得csv过滤器是否表示成功/失败,但你可以自己做:
csv {
...
add_tag => [ "csvOK" ]
}
只有csv过滤器有效时才会添加此标记。然后将这些事件输出到其他位置:
output {
if "csvOK" in [tags] {
elasticsearch {
...
}
}
else {
file {
...
}
}
}
[注意:伪代码]