rabbitmq 常用排查命令

3 阅读1分钟

rabbitmq 常用排查命令

ChatGPT said:

排查 RabbitMQ 问题时,以下是一些常用命令,涵盖连接、队列、交换机、消息堆积、死信等典型场景:


✅ 基础信息查看

1. 查看节点和状态

bash
CopyEdit
rabbitmqctl status

2. 查看所有连接

bash
CopyEdit
rabbitmqctl list_connections

3. 查看连接详细信息(包括 IP、用户名、状态)

bash
CopyEdit
rabbitmqctl list_connections pid username client_properties

📦 队列相关

4. 查看所有队列

bash
CopyEdit
rabbitmqctl list_queues

5. 查看队列的消息堆积(包括准备投递、未确认等)

bash
CopyEdit
rabbitmqctl list_queues name messages_ready messages_unacknowledged

6. 查看队列绑定关系

bash
CopyEdit
rabbitmqctl list_bindings

🔄 交换机相关

7. 查看所有交换机

bash
CopyEdit
rabbitmqctl list_exchanges

8. 查看某个交换机绑定的队列

bash
CopyEdit
rabbitmqctl list_bindings source_name destination_name routing_key

🐞 死信队列排查(DLX)

9. 查看死信队列是否有堆积

bash
CopyEdit
rabbitmqctl list_queues name messages arguments

查找 x-dead-letter-exchangex-dead-letter-routing-key 的队列。


🔧 管理插件命令

10. 启用管理控制台(Web UI)

bash
CopyEdit
rabbitmq-plugins enable rabbitmq_management

访问地址通常是:

arduino
CopyEdit
http://localhost:15672

默认用户名/密码:guest / guest


🧹 清理操作

11. 删除某个队列(慎用)

bash
CopyEdit
rabbitmqctl delete_queue queue_name

12. 断开某个连接(用于强制断开不健康连接)

bash
CopyEdit
rabbitmqctl close_connection <connection_pid> "reason"

📁 进阶排查:日志查看

RabbitMQ 日志默认位于:

bash
CopyEdit
/var/log/rabbitmq/   # Linux

查看最新日志:

bash
CopyEdit
tail -f /var/log/rabbitmq/rabbit@<hostname>.log