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"]
}
我正在使用 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"]
}