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

Logstash remove fields by regex

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

例如,我们的一些消息如下所示:

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

问题

有没有一种方法可以使用 mutate 或其他基于正则表达式 (^\d+$) 的过滤器删除标签?

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

这个答案与这个非常相似:

您可以像这样来匹配正则表达式:

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

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

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