删除过滤器插件中的remove_field和mutate过滤器插件中的remove_field之间的区别

时间:2018-12-12 16:02:17

标签: logstash logstash-configuration mutate

我想知道两者之间有什么区别

filter {
  drop {
    remove_field => ["some_field"]
  }
}

还有这个

filter {
  mutate {
    remove_field => ["some_field"]
  }
}

在阅读文档时,似乎说了同样的话吗?

放置过滤器:https://www.elastic.co/guide/en/logstash/current/plugins-filters-drop.html#plugins-filters-drop-remove_field

变异过滤器:https://www.elastic.co/guide/en/logstash/current/plugins-filters-mutate.html#plugins-filters-mutate-remove_field

我注意到,如果我用config中的drop替换mutate,整个事件都将丢失,并且remove_field选项似乎没有任何其他作用……我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

放置过滤器将停止处理事件,并且不会将其发送到输出。这似乎就是您使用它时所看到的。

通过mutate过滤器,您可以对事件进行某些修改,包括删除看到的单个字段。

针对两种不同用例的两种不同过滤器。

作为公共选项的一部分,remove_field选项在任何过滤器插件中始终可用。它说明了为什么该选项仍存在于drop过滤器中,即使在这里将其设置没有多大意义。