如何使用logstash删除字段名称中的下划线?

lin*_*iao 1 regex logstash

我正在考虑使用mutate过滤器和rename选项,但我不知道相应的正则表达式来实现:

filter {
  mutate {
    rename => {
      "any_field_with_underscore" => "anyfieldwithunderscore" # i don't know how to write regex for this ...
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

Ala*_*ins 5

文档中没有迹象表明rename{}需要regexp.

我已经看到过这个ruby{}过滤器.

根据要求,这里有一些未经测试的 Ruby:

begin
    keys = event.to_hash.keys
    keys.each{|key|
        if ( key =~ /_/ )

            newkey = key.gsub(/_/, '')
            event[newkey] = event.remove(key)

        end
    }

rescue Exception => e
    event['logstash_ruby_exception'] = 'underscores: ' + e.message
end
Run Code Online (Sandbox Code Playgroud)