Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging 如何记录所有Rabbit MQ消息?_Logging_Rabbitmq - Fatal编程技术网

Logging 如何记录所有Rabbit MQ消息?

Logging 如何记录所有Rabbit MQ消息?,logging,rabbitmq,Logging,Rabbitmq,我们使用RabbitMQ服务器在应用程序之间进行消息传递。我们需要为进入Rabbit服务器的所有amqp消息创建一个中心日志。我们的目的不是临时调试,而是可审计性。理想情况下,我可以先登录到指定的文件,然后再登录到外部系统,如Logly或Splunk 我已经探索过打开Firehose和使用跟踪插件,但所讨论的队列并不持久。如果在日志记录启动后向虚拟主机添加新的队列和交换,我也不确定这些解决方案是否有效。这些工具似乎更多地是为我所需要的临时调试而设计的 我很想听听你的想法。在这一点上,我担心我将不

我们使用RabbitMQ服务器在应用程序之间进行消息传递。我们需要为进入Rabbit服务器的所有amqp消息创建一个中心日志。我们的目的不是临时调试,而是可审计性。理想情况下,我可以先登录到指定的文件,然后再登录到外部系统,如Logly或Splunk

我已经探索过打开Firehose和使用跟踪插件,但所讨论的队列并不持久。如果在日志记录启动后向虚拟主机添加新的队列和交换,我也不确定这些解决方案是否有效。这些工具似乎更多地是为我所需要的临时调试而设计的


我很想听听你的想法。在这一点上,我担心我将不得不设置一个网络监视器,在消息到达Rabbit之前拦截并记录消息。

为什么你会说消防软管不能工作?您可以根据需要创建侦听队列,例如:持久等。然后,如果您需要每条消息,可以使用
#
字符进行绑定

见:


如前所述,性能会下降,但如果不测试性能,我不会放弃解决方案。

exchange到exchange绑定在您的场景中是否有帮助?这是个好主意。不幸的是,我认为这并不能解决我们的问题,因为我们的交流是动态创建的。对于这种方法,我们最坏的情况是要求开发人员使用特定的库向Rabbit发送消息,并让库向日志交换重复消息。这似乎有点苛刻,需要大量的应用程序更新。我们理想的解决方案是找到一种方法,使它在服务器上为任何已创建或将创建的exchange工作。我的实验表明,跟踪功能在服务器重新启动后无法继续运行。它必须重新设置和配置。关于这个主题的大多数谷歌搜索都是关于试图登录到队列的人,而不是从队列登录的人。“#”绑定很有趣——我找过类似的东西,但没找到。文件在哪里?我看了一遍又一遍的兔子文档,还没看到。看这里:上面写着“#(散列)可以代替零个或多个单词。”