Logstash通过正则表达式删除字段

时间:2017-07-13 20:11:21

标签: logstash logstash-configuration

我正在使用FIX filter plugin来处理我们的一些FIX日志。在这些消息中,我们收到多个自定义字段这是在grok过滤器之外。 我将我关注的邮件传递到此辅助修补程序插件

我们的一些消息例如如下:

  "unknown_fields" => [
    [0] "5000",
    [1] "9723",
  ],
  "5000" => "FOOBARVAL",
  "9723" => "BAZBOOHUM",
  "IDSource" => "RIC_CODE",

问题

我是否可以使用mutate或其他基于正则表达式的过滤器(^\d+$)删除标记?

更具体地说,是否有一种方法可以删除我知道将是自定义FIX字段的所有整数字段(例如5000)?

2 个答案:

答案 0 :(得分:3)

我很欣赏其他答案,但我最终使用了prune过滤器插件。

prune {
    blacklist_names => ["[0-9]+", "unknown_fields", "tags"]
}

答案 1 :(得分:1)

这个答案与这个答案非常相似:https://stackoverflow.com/a/27396056/2785358

您可以执行以下操作来匹配正则表达式:

filter {
  ruby {
    code => "
      event.to_hash.keys.each { |k|
        if k.match(/^\d+$/
          event.remove(k)
        end
      }"
  }
}