如何解决Logstash过滤器如何找出已删除的事件?
我有LogStash过滤器,我想知道自从此以来日志文件中的哪些事件已被删除 我在logstash输出文件中看不到它们。该怎么做?
我的过滤器如下:
filter {
grok {
patterns_dir => "C:\logstash-7.4.2\patterns"
match => { "message" => "^\[%{TIMESTAMP_ISO8601:timestamp}\]\[%{LOGLEVEL:level}\]\[%{TThread:thread}\]\[%{JAVACLASS:class}\] %{GREEDYDATA:msg}" }
}
if "_grokparsefailure" in [tags] {
drop{}
}
}
解决方法
当您drop
在管道中的事件停止在管道中存在时,您不会在任何输出中看到它,也无法删除事件并将其放入输出中。
在这种情况下,您要删除与grok
过滤器不匹配的事件,如果您想知道哪些事件未能解析,则需要停止删除这些事件,然后将这些事件重定向到另一个事件输出以进行更好的分析,如果需要,还可以将其保留在相同的输出中,然后再进行过滤。
您可以使用以下配置。
output {
if "_grokparsefailure" in [tags] {
output to store failed events
}
if "_grokparsefailure" not in [tags] {
normal output for the other events
}
}
您还可以在日志级别设置为debug的情况下运行logstash,但是它将记录很多内容,并不是您进行此操作的最佳方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。