我正在考虑使用mutate
滤波器和rename
的选择,但我不知道对应的正则表达式来实现这一目标:
filter {
mutate {
rename => {
"any_field_with_underscore" => "anyfieldwithunderscore" # i don't know how to write regex for this ...
}
}
}
任何人都可以帮忙吗?
我正在考虑使用mutate
滤波器和rename
的选择,但我不知道对应的正则表达式来实现这一目标:
filter {
mutate {
rename => {
"any_field_with_underscore" => "anyfieldwithunderscore" # i don't know how to write regex for this ...
}
}
}
任何人都可以帮忙吗?
还有,该文档没有任何迹象表明rename{}
需要一个正则表达式。
我已经看到了这个用做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
要建立在阿兰的回答,
在Logstash> = 5.x的,一个事件对象访问器执行:
ruby {
code => "
begin
keys = event.to_hash.keys
keys.each{|key|
if ( key =~ /http_/ )
newkey = key.gsub(/http_/, '')
event.set(newkey, event.remove(key))
end
}
rescue Exception => e
event.set('logstash_ruby_exception', 'underscores: ' + e.message)
end
"
}
}
另请参阅此功能要求 ,将做同样的