Logstash 使用 Grok 删除线条



我的计划是使用 Logstash 过滤特定 IP 的日志文件。

我从一个简单的IP过滤器开始,它应该删除所有无效IP的行,然后删除。

grok {
match => [ "ip_filter" , " %{IPV4:clientip}" ]
tag_on_failure => [ "_todelete" ]
}

因此,每行具有无效 IP 的行都应该被标记为_todelete,但在 Kibana 上,我看到每一行都标有它。知道为什么吗?

我的下一步是删除所有带有标签"_todelete"的行

grok {
remove_tag => [ "_todelete" ]
}

这让我想到了一个"_grokparsefailure">

感谢您的帮助!

如果有人也需要答案:问题是格罗克在IP之前寻找一个空间。就我而言,该行直接以IP开头,所以我的解决方案是使用

^%{IPV4:clientip}

您可以使用基于标记的条件来控制是否将行发送到 logstash 文件中的 ES 输出。

尝试这样的事情:

output {
if "_todelete" not in [tags] {
elasticsearch {
index => "index-%{+YYYY.MM.dd}"
}
}
}

添加此条件应过滤不需要的行,而不是将它们输出到 ES 索引。

相关内容

  • 没有找到相关文章

最新更新