我有一个非常基本的过滤器。我希望logstash删除所有的“信息”级别的日志,因为我们正在做的事情产生了太多的日志,我们需要削减体积,作为一个测试,我们将削减多余的信息级别的日志。但是,它似乎没有删除任何信息级别的日志。
filter {
if [loglevel] == "info" {
drop { }
}
date {
match => [ bunch of stuff ]
timezone => "UTC"
remove_field => syslog_timestamp"
}
mutate {
add_field => [ stuff ]
add_field => [ stuff ]
add_tag => [ stuff ]
}
}
我用错了吗?它看起来和文件中的丢弃过滤器相匹配。不确定是怎么回事。谢谢!
2条答案
按热度按时间crcmnpdw1#
您的字段名为[log_level],而不是[loglevel],因此请将条件更改为
输入/过滤器/输出节的顺序并不重要。过滤器节内的顺序显然重要。
ejk8hzay2#
因此,出于某种原因,log_level和/或level是消息的一部分,而不是它们自己的键/值。
这过滤了所有log_level:info消息,并将日志计数减少了65%左右。