如何获取有关rabbitmq连接操作的详细日志/信息?
我有一个python程序连接到rabbitmq服务器。当这个程序启动时,它连接良好。但当rabbitmq服务器重新启动时,我的程序无法重新连接到它,只留下错误“套接字关闭”(由kombu生成),这是毫无意义的 我想知道有关连接失败的详细信息。在服务器端,rabbitmq日志文件中也没有任何有用的内容,它只是说“连接失败”,没有给出任何原因 我尝试了trace plugin(),发现在连接失败时没有发布到amq.rabbitmq.trace exchange的跟踪信息。我启用了以下插件:如何获取有关rabbitmq连接操作的详细日志/信息?,rabbitmq,Rabbitmq,我有一个python程序连接到rabbitmq服务器。当这个程序启动时,它连接良好。但当rabbitmq服务器重新启动时,我的程序无法重新连接到它,只留下错误“套接字关闭”(由kombu生成),这是毫无意义的 我想知道有关连接失败的详细信息。在服务器端,rabbitmq日志文件中也没有任何有用的内容,它只是说“连接失败”,没有给出任何原因 我尝试了trace plugin(),发现在连接失败时没有发布到amq.rabbitmq.trace exchange的跟踪信息。我启用了以下插件: rabb
rabbitmq-plugins enable rabbitmq_tracing
systemctl restart rabbitmq-server
rabbitmqctl trace_on
然后我编写了一个客户端,从amq.rabbitmq.trace exchange获取消息:
#!/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服务器获取一些调试日志。我根据重新配置了rabbitmq.config,并设置
将所有级别记录到
{log_levels, [{connection, info}]}
但结果是rabbitmq服务器无法启动。官方文档似乎不适合我,我的rabbitmq服务器版本是3.3.5。然而
{log_levels, [connection,debug,info,error]}
或
工作正常,但是日志中没有显示调试信息,我不知道这是因为日志级别配置无效还是因为一直没有打印调试日志。我知道这个答案来得太晚了,但对于未来的供应商来说,这对我来说很有效:
[
{rabbit,
[
{log_levels, [{connection, debug}, {channel, debug}]}
]
}
].
基本上,您只需要将要设置的参数包装到它们所属的模块/插件中。您知道如何从rabbitmq向syslog发送日志吗?@Luv33preet查看syslog
[
{rabbit,
[
{log_levels, [{connection, debug}, {channel, debug}]}
]
}
].