我有一个动态字段,字段格式看起来像
A-B-C::D_[randomNum]
该字段是动态的,因为randonNUM, 我想将' - '更改为'_'并删除[randomNUM] 它将如下所示,
A_B_C::D
是否有解决此问题的插件/策略?
答案 0 :(得分:0)
您应该可以使用mutate/gsub
过滤器
filter {
mutate {
gsub => [
# replace random num suffix
"fieldname", "_\d+", "",
# replace all dashes with underscores
"fieldname", "-", "_"
]
}
}
请务必将fieldname
替换为您的实际字段名称。
<强>更新强>
鉴于您的评论,结果表明它是动态而非价值的字段名称。出于这个原因,你不能使用上面的解决方案,但下一个解决方案应该工作,即使用ruby
filter:
filter {
ruby {
code => "
newhash = {}
event.to_hash.each {|key, value|
if key =~ /^CISCO/ then
newkey = key.gsub(/_\d+/, '').gsub('-', '_')
newhash[newkey] = event[key]
event.remove(key)
end
}
newhash.each {|key,value|
event[key] = value
}
"
}
}
此过滤器运行后,您的活动将包含字段A_B_C::D
,而不是原始A-B-C::D_num