Logstash删除筛选器未删除/筛选信息级别日志

busg9geu  于 2022-12-09  发布在  Logstash
关注(0)|答案(2)|浏览(185)

我有一个非常基本的过滤器。我希望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 ]
  }
}

我用错了吗?它看起来和文件中的丢弃过滤器相匹配。不确定是怎么回事。谢谢!

crcmnpdw

crcmnpdw1#

您的字段名为[log_level],而不是[loglevel],因此请将条件更改为

if [log_level] == "info" { drop { } }

输入/过滤器/输出节的顺序并不重要。过滤器节内的顺序显然重要。

ejk8hzay

ejk8hzay2#

因此,出于某种原因,log_level和/或level是消息的一部分,而不是它们自己的键/值。

filter {
  if '"log_level":"info"' in [message] {
    drop { }
  }
}

这过滤了所有log_level:info消息,并将日志计数减少了65%左右。

相关问题