【问题标题】:Logstash remove fields by regexLogstash 通过正则表达式删除字段
【发布时间】:2017-07-13 20:11:20
【问题描述】:

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

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

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

问题

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

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

【问题讨论】:

    标签: logstash logstash-configuration


    【解决方案1】:

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

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

    【讨论】:

    • TIL 关于 prune :)
    【解决方案2】:

    这个答案和这个很相似:https://stackoverflow.com/a/27396056/2785358

    你可以这样做来匹配一个正则表达式:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-11
      • 1970-01-01
      • 2015-07-07
      • 1970-01-01
      相关资源
      最近更新 更多