logstash - 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”
谢谢你的帮助!
解决方案
您可以使用基于标签的条件来控制该行是否发送到您的 logstash 文件中的 ES 输出。
尝试这样的事情:
output {
if "_todelete" not in [tags] {
elasticsearch {
index => "index-%{+YYYY.MM.dd}"
}
}
}
添加此条件应过滤不需要的行,而不是将它们输出到您的 ES 索引。
推荐阅读
- javascript - 如何在 JavaScript 中每 4 个字符之间添加空格?
- sql-server - Sql Server 2019 Polybase 功能问题
- node.js - 用于下载 Microsoft Team 频道附件的 API
- c# - 用于 Azure SSAS 多维数据集更新的 Rest API
- image - 如何在 JLabel 中显示图像?
- python-3.x - odoo 11 / Python 3:如果排除某些工作日,如何查找订阅的到期日期
- c++ - 不匹配调用内部类对象的向量
- google-calendar-api - 是否可以在不冒超出使用配额的情况下使用 Google Calendar API 事件手表?
- java - Selenium:'包 org.openqa.selenium 不存在'
- ruby-on-rails - 如何使用 || 减少“复杂性太高” - 或运算符