我们目前正在使用带有elasticsearch的logstash来记录一些应用程序事件。 某些事件包含动态命名的字段 我们想要在进入elasticsearch之前应用将删除或合并它们的过滤器 例如:
{
"Root": {
"EventType": "Info",
"Timestamp": 20150713153757.758
},
"Event": {
"Message": "itemsViews Created in 1 mSec",
"Cache_11542": true,
"Cache_10242": false,
"Cache_55240": 124
}
}
在这种情况下,我们希望删除对象Event下的“Cache_”开头的所有字段。
所以输出到elasticsearch将是
{
"Root": {
"EventType": "Info",
"Timestamp": 20150713153757.758
},
"Event": {
"Message": "itemsViews Created in 1 mSec"
}
}
有没有办法在logstash配置文件中定义填充程序来实现此目的?
非常感谢提前。
答案 0 :(得分:-1)
看起来@ {magnus-bäck指出的Ruby filter solution可能是您的解决方案。我最初使用“remove_field”数组和gsub过滤器建议mutate filter。 Gsub与正则表达式匹配您的Cache *字段,然后可以将其重命名为变量以用于mutate。但是,由于你有n个Cache字段,我更喜欢ruby脚本。 :)