如何在Logstash中指定要插入MongoDB输出的文件

时间:2017-06-14 16:32:42

标签: mongodb logstash

我在输出配置下面,但它在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}"
                    }
        }

1 个答案:

答案 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