Ubuntu 上监控 RabbitMQ 的实用方案
一 快速可视化与命令行巡检
- 启用管理插件并访问控制台:执行 sudo rabbitmq-plugins enable rabbitmq_management,通过浏览器访问 http://<服务器IP>:15672。默认账号 guest/guest 仅允许本地登录,远程请创建专用管理员或监控账号。
- 常用 CLI 巡检:
- 查看节点状态:sudo rabbitmqctl status
- 查看队列与消息数:sudo rabbitmqctl list_queues name messages
- 诊断网络与磁盘:sudo rabbitmq-diagnostics check_network、sudo rabbitmq-diagnostics check_disk_free
- 日志路径:/var/log/rabbitmq/,用于排查异常与告警。
二 关键监控指标与告警阈值
- 队列与消息:关注队列长度(持续增长通常意味着消费者处理能力不足)、消息生产/消费速率(突增可能带来拥塞)。
- 连接与通道:连接数、通道数(异常升高可能预示连接泄漏或客户端异常)。
- 资源与系统:节点 CPU、内存、磁盘空间(磁盘不足会导致写入阻塞或节点停止),以及 套接字描述符使用量(接近上限会引发连接失败)。
- 集群与流量:节点健康状态、节点间通信流量速率(异常波动可能预示网络或节点问题)。
三 Prometheus Grafana 与 Exporter 方案
- 部署 RabbitMQ Exporter(常见端口 15692),在 Prometheus 配置抓取任务:
- scrape_configs: job_name: ‘rabbitmq’ static_configs: targets: [‘<rabbitmq_ip>:15692’]
- Grafana 导入 RabbitMQ 官方或社区仪表盘,实现队列、连接、速率、资源等多维度可视化与告警。
四 开箱即用的可观测平台采集
- 启用管理插件后,使用 DataKit 采集 RabbitMQ 指标:
- 配置示例:[[inputs.rabbitmq]] url = “http://localhost:15672” username = “guest” password = “guest” interval = “30s”
- 在观测云平台查看节点、队列、连接、资源等监控面板与告警。
五 安全与远程访问要点
- 远程访问管理界面需开放 15672 端口;应用访问 5672 端口。
- 不要使用 guest/guest 远程登录,建议创建专用账号并赋予合适角色与权限:
- 新增用户:sudo rabbitmqctl add_user
- 设置角色:sudo rabbitmqctl set_user_tags monitoring(或 administrator)
- 设置权限:sudo rabbitmqctl set_permissions -p / “." ".” “.*”
- 如需远程管理,确保防火墙与安全组放行对应端口,并遵循最小权限原则。