CentOS 环境下 RabbitMQ 监控实践
一 监控方案总览
二 快速上手步骤
启用管理插件并创建管理员
rabbitmq-plugins enable rabbitmq_managementrabbitmqctl add_user monitor <StrongPass>rabbitmqctl set_user_tags monitor administratorrabbitmqctl set_permissions -p / monitor ".*" ".*" ".*"命令行巡检与健康检查
rabbitmqctl statusrabbitmqctl node_health_checkrabbitmqctl list_connections、rabbitmqctl list_channelsrabbitmqctl list_queues name messages consumersrabbitmq-diagnostics check_network、rabbitmq-diagnostics check_disk_freerabbitmqctl 默认管理本机节点,远程管理需配置 Erlang Cookie 与网络互通。Prometheus + rabbitmq_exporter + Grafana
wget https://github.com/kbudde/rabbitmq_exporter/releases/download/v0.10.0/rabbitmq_exporter-0.10.0.linux-amd64.tar.gz./bin/rabbitmq_exporterscrape_configs: - job_name: 'rabbitmq' static_configs: - targets: ['<Exporter_IP>:9419']Zabbix 监控
三 关键监控指标与告警阈值建议
| 指标 | 说明 | 建议阈值/动作 |
|---|---|---|
| 队列长度(ready + unacked) | 持续增长通常意味着消费能力不足 | 设置分级阈值(如 > 1万、> 10万),扩容消费者或优化消费逻辑 |
| 消息速率(publish/consume) | 观察负载与处理能力 | 突增时排查生产者/消费者异常 |
| 连接数 | 连接泄漏或突发流量 | 超过历史基线 +30% 触发告警,核查连接关闭与空闲超时 |
| 通道数 | 每个连接可并发多个通道 | 异常升高时检查客户端是否异常创建通道 |
| 节点状态与健康 | 节点是否可用、资源是否告警 | node_health_check 失败立即告警,检查磁盘/内存/网络 |
| 磁盘空间 | 磁盘告警会触发流控甚至停机 | 低于高水位立即清理或扩容,避免进入 disk_free_limit 保护 |
| 内存使用 | 接近内存阈值会触发流控 | 超过 80% 告警,优化消息积压与内存占用策略 |
四 安全与排障要点
list_queues 与业务侧确认消费者是否存活、是否存在异常重试或阻塞;必要时扩容消费者或优化处理链路。