我在输出配置下面,但它在MongoDB中插入原始数据。如何只插入几个选定的字段?对于InfluxDB,我们有一个属性data_points,我可以用它来做,但MongoDB插件似乎没有任何这样的功能。
mongodb {
collection => "logs"
database => "test"
uri => "mongodb://localhost:27017"
codec => line
{
enable_metric => "false"
format => "data1:%{val1}, data2:%{val2}, data3:%{val3}"
}
}
答案 0 :(得分:3)
您可以使用Logstash prune filter进行此操作。剪枝过滤器的whitelist_names
设置允许您删除数组中未枚举的所有字段。
filter {
prune {
whitelist_names => ["field1", "field2", "field3"]
}
}
我认为修剪过滤器非常酷的一点是,它还允许您输入正则表达式 - 并删除任何与正则表达式不匹配的字段。因此,除了上述内容,您还可以:
filter {
prune {
whitelist_names => ["^field\d+"]
}
}
另一个注意事项:默认情况下不会安装修剪过滤器。您必须运行bin/logstash-plugin install logstash-filter-prune