Linux 上常用的 RabbitMQ 监控工具与方案
一 内置与开箱即用的工具
- rabbitmqctl:查看节点与队列状态、连接、用户与权限、集群成员等,适合日常巡检与临时排查。常用命令示例:
- 查看节点状态:
rabbitmqctl status
- 查看队列与消息数:
rabbitmqctl list_queues name messages_ready messages_unacknowledged
- 查看连接与消费者:
rabbitmqctl list_connections、rabbitmqctl list_consumers
- rabbitmq-diagnostics:健康检查与诊断。常用命令示例:
- 检查网络:
rabbitmq-diagnostics check_network
- 检查磁盘空间:
rabbitmq-diagnostics check_disk_free
- Web 管理插件 rabbitmq_management:启用后通过 http://:15672/ 查看概览、队列、连接、通道、交换机、用户与权限等,并支持按 vhost 浏览;默认账号 guest/guest(建议生产环境创建专用监控账号并分配 monitoring 标签)。启用命令:
rabbitmq-plugins enable rabbitmq_management
- HTTP API(rabbitmqadmin):通过 API 拉取队列、连接、节点等指标,便于对接自建或第三方监控系统(rabbitmqadmin 可从官方仓库下载)。
二 日志与系统级监控
- 日志:默认路径 /var/log/rabbitmq/rabbit@.log,包含版本、节点名、内存/磁盘限制、告警与错误等信息,适合故障定位与审计。
- 系统资源:结合 top/htop、vmstat、iostat 等观察 CPU、内存、I/O 与负载,配合 RabbitMQ 指标判断是否存在资源瓶颈。
三 第三方监控与可视化
- Prometheus + RabbitMQ Exporter + Grafana:以 /metrics 暴露指标,Prometheus 抓取并存储,Grafana 展示与配置告警,适合长期趋势与容量规划。
- Zabbix:通过模板或自定义脚本采集队列、连接、消费者、消息堆积等指标,配置阈值告警,适合已有 Zabbix 体系的团队。
- Nagios / Cacti:Nagios 侧重告警,Cacti 可通过 SNMP 做图形化监控,适合传统监控架构的平滑接入。
四 消息追踪用于问题定位
- Firehose:将生产投递与消费投递的消息镜像到 amq.rabbitmq.trace(topic 类型),可用
rabbitmqctl trace_on/off 开关;注意开启会带来额外开销,排查完及时关闭。
- rabbitmq_tracing 插件:在管理界面提供可视化 Trace 能力,便于按 exchange/queue 记录与回放消息轨迹。
五 快速上手建议
- 启用管理插件并创建只读监控账号:
rabbitmq-plugins enable rabbitmq_management
rabbitmqctl add_user monitor <pwd>
rabbitmqctl set_user_tags monitor monitoring
rabbitmqctl set_permissions -p / monitor ".*" ".*" ".*"
- 巡检关键命令:
rabbitmqctl status、rabbitmqctl list_queues name messages_ready messages_unacknowledged
rabbitmq-diagnostics check_network、rabbitmq-diagnostics check_disk_free
- 建立长期监控:部署 Prometheus + Exporter + Grafana,重点面板包含:消息堆积(ready/unacked)、连接/通道数、节点内存与磁盘告警阈值、队列增长速率与消费滞后趋势。