我正在使用Logstash的RabbitMQ插件从RabbitMQ中提取并使用以下管道推送到Elasticsearch:
input {
rabbitmq {
queue => "Elasticsearch_Queue"
host => "rabbitmq"
exchange => "my_event_bus"
key => "SomeIntegrationEvent"
}
}
output {
elasticsearch {
hosts => [ "elasticsearch:9200" ]
}
stdout { codec => rubydebug }
}
它工作正常,并创建了一个名为Elasticsearch_Queue
的队列,并使用routing_key my_event_bus
绑定到SomeIntegrationEvent
交换。
我需要订阅多个事件,但是plugin docs上没有明确的解决方案。
答案 0 :(得分:0)
由于key
必须是字符串,因此您不能使用多个键将队列显式绑定到交换。
我建议将my_event_bus
设为 fanout交换。这会将传递到此交换机的所有邮件路由到绑定队列。
然后定义第二个直接交换,您可以使用感兴趣的路由键(=事件)将其手动绑定到第一个交换多次。
答案 1 :(得分:0)
我们必须添加具有相同的/subscriptions/{0}/resourceGroups/my-snapshot/providers/Microsoft.Storage/storageAccounts/mysnapshots -f $sourceSnapshotSubscriptionId
和queue
但不同的exchange
的多个条目,如下所示:
key
我从弹性论坛中获得了the answer。