我有一个logstash exe,它从RabbitMQ队列中读取JSON事件。
input {
rabbitmq {
codec => json
...
}
}
我需要有2个输出。第一个是带有整个JSON文档的MongoDB输出(没问题,它可以工作),第二个是另一个rabbitMQ队列,但我不需要整个JSON。我只需要选择一些领域。
我该怎么做?
谢谢
答案 0 :(得分:3)
您使用带有mutate
条目的remove_field
过滤条件来删除您不想要的所有字段。如果您不知道需要删除的所有字段是什么,则需要创建一个ruby
过滤器,迭代事件并删除任何不在您想要的列表中的字段。
ruby代码看起来像这样:
filter {
ruby {
code => "
event.to_hash.each {|k,v|
if (!['a','b','c'].include?(k))
event.remove(k)
end
}"
}
}
其中['a','b','c']
是您要保留的字段列表。
答案 1 :(得分:0)
或者您可以使用以下编解码器:https://github.com/payscale/logstash-codec-fieldselect它选择一些输出字段。就像上面一样但没有红宝石过滤器。