如何监控 RabbitMQ 交换生命周期事件

How do I monitor RabbitMQ exchange lifecycle events

我正在使用一个产品套件,它使用 RabbitMQ 作为服务总线消息传递的后端。许多客户端使用的软件 (NeuronESB) 应该会根据需要自动配置交换、队列和通道。 Rabbit 系统中的某个地方正在删除而不是重新创建,从而导致意外问题。由于系统的规模和至少一个服务总线客户端的闭源性质,代码审计未能成功确定删除这些交换的来源。

我已经尝试使用 Rabbit 的 firehose 功能,但它只提供通过 Rabbit 发送的消息,而不是我需要的内部活动。

在RabbitMQ中记录交换器创建和删除的方法有哪些?理想情况下,我想知道删除者的日期、时间和客户端 IP,但即使只是获取日期和时间也可以让我缩小日志搜索范围以帮助找到违规者。

尝试 Events Exchange plugin 应该可以解决问题。

如果因为某些原因无法工作,我能想到的最后一招:

如果你的应用程序很忙,请使用less clients/messages 获取测试环境,然后使用wireshark(它可以理解amqp)分析你的流量以过滤掉删除exchange 的请求。