gpt4 book ai didi

rabbitmq - 如何获取有关rabbitmq连接操作的详细日志/信息?

转载 作者:行者123 更新时间:2023-12-02 19:09:06 38 4
gpt4 key购买 nike

我有一个连接到rabbitmq服务器的python程序。当该程序启动时,它连接良好。但是当rabbitmq服务器重新启动时,我的程序无法重新连接到它,并留下错误“Socket已关闭”(由kombu产生),这是没有意义的。

我想了解有关连接失败的详细信息。在服务器端,rabbitmq 日志文件中也没有任何有用的内容,它只是说“连接失败”,没有给出任何原因。

我尝试了跟踪插件( https://www.rabbitmq.com/firehose.html ),发现当连接失败时没有发布到 amq.rabbitmq.trace Exchange 的跟踪信息。我启用了该插件:

rabbitmq-plugins enable rabbitmq_tracing
systemctl restart rabbitmq-server
rabbitmqctl trace_on

然后我编写了一个客户端来从 amq.rabbitmq.trace 交换获取消息:

#!/bin/env python
from kombu.connection import BrokerConnection
from kombu.messaging import Exchange, Queue, Consumer, Producer

def on_message(self, body, message):
print("RECEIVED MESSAGE: %r" % (body, ))
message.ack()

def main():
conn = BrokerConnection('amqp://admin:pass@localhost:5672//')
channel = conn.channel()
queue = Queue('debug', channel=channel,durable=False)
queue.bind_to(exchange='amq.rabbitmq.trace', routing_key='publish.amq.rabbitmq.trace')
consumer = Consumer(channel, queue)
consumer.register_callback(on_message)
consumer.consume()
while True:
conn.drain_events()

if __name__ == '__main__':
main()

我还尝试从rabbitmq服务器获取一些调试日志。我根据https://www.rabbitmq.com/configure.html重新配置了rabbitmq.config ,并设置log_levels 至

{log_levels, [{connection, info}]}

但是结果rabbitmq服务器启动失败。看来官方文档不适合我,我的rabbitmq服务器版本是3.3.5。然而

{log_levels, [connection,debug,info,error]}

{log_levels, [connection,debug]}

可以工作,但是日志中没有显示 DEBUG 信息,我不知道这是因为 log_levels 配置无效还是一直没有打印 DEBUG 日志。

最佳答案

我知道这个答案来得太晚了,但对于 future 的供应商来说,这对我有用:

[
{rabbit,
[
{log_levels, [{connection, debug}, {channel, debug}]}
]
}
].

基本上,您只需将要设置的参数包装在它们所属的模块/插件中即可。

关于rabbitmq - 如何获取有关rabbitmq连接操作的详细日志/信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31534719/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com