Ubuntu 上建议以“管理控制台 + Prometheus 指标 + 日志文件/追踪”的组合来落地监控与日志,既满足日常巡检,又便于长期趋势与告警
监控方案总览
- 管理控制台(Web UI):启用后访问 http://:15672,查看节点概览、队列、连接、消息速率、内存/磁盘/FD 等,适合日常巡检与故障定位。
- Prometheus + Grafana:启用 rabbitmq_prometheus 插件,暴露 http://:15692/metrics,用 Prometheus 抓取并配置告警,Grafana 导入官方看板(如 ID 10991)做可视化。
- 命令行巡检:用 rabbitmqctl status / list_queues / list_connections 等快速核查节点与队列状态。
- 第三方监控:如 Zabbix/Nagios 等可通过脚本/插件采集指标与状态。
启用与配置监控组件
-
启用管理插件(Web UI)
- 执行:
sudo rabbitmq-plugins enable rabbitmq_management
- 访问:http://:15672(默认账号 guest/guest,生产环境请创建专用账号与权限)
-
启用 Prometheus 插件(指标)
- 执行:
sudo rabbitmq-plugins enable rabbitmq_prometheus
- 指标端点:http://:15692/metrics
- Prometheus 抓取示例:
- job_name: ‘rabbitmq’
- static_configs: targets: [‘:15692’]
- metrics_path: ‘/metrics’
- scheme: http
- Grafana 导入看板:官方 Dashboard ID 10991(RabbitMQ Management)
-
常用 CLI 巡检命令
- 节点状态:
sudo rabbitmqctl status
- 队列概览:
sudo rabbitmqctl list_queues name messages_ready messages_unacknowledged consumers memory
- 连接与信道:
sudo rabbitmqctl list_connections name state peer_host peer_port channels
- 其他:
list_exchanges / list_users / list_consumers
日志体系与配置
-
默认日志路径与内容
- 路径:/var/log/rabbitmq/
- 文件:rabbit@.log(运行日志)、rabbit@-sasl.log(SASL 认证日志)、rabbitmq-startup.log(启动日志)等,包含版本、节点名、内存/磁盘限制、连接认证等关键信息。
-
查看与变更日志路径
- 查看当前生效路径:
rabbitmq-diagnostics -q log_location
- 自定义路径(环境变量或配置文件):
- 在 /etc/rabbitmq/rabbitmq-env.conf 中设置:
LOG_BASE=/data/logs/rabbitmq
- 或设置:
RABBITMQ_LOGS=/data/logs/rabbitmq.log、RABBITMQ_SASL_LOGS=/data/logs/rabbitmq-sasl.log
- 修改后重启节点生效。
-
日志级别与动态调优
- 在 /etc/rabbitmq/rabbitmq.conf 中设置(示例为仅记录连接 warning 级别):
[{rabbit, [{log_levels, [{connection, warning}]}]}].
- 动态查看/调整(示例):
rabbitmqctl set_vm_memory_high_watermark 0.5(将内存高水位调整到 50%,默认 0.4)
-
消息内容追踪(Tracing,仅用于排障)
- 启用插件:
sudo rabbitmq-plugins enable rabbitmq_tracing
- 开启追踪:
sudo rabbitmqctl trace_on(可按 -p 指定 vhost)
- 管理界面 Admin → Tracing 可创建/管理 trace;会自动创建 amq.rabbitmq.trace / amq.rabbitmq.log 两个 topic 交换机用于订阅收发事件
- 注意:开启 trace 会带来额外开销,排查完成后及时
trace_off 关闭
关键告警与巡检要点
-
概览页核心指标
- Total Queued Messages(堆积)、Message Rates(发布/消费速率)、Connections/Channels、Erlang Processes、Memory Usage / Disk Space、File Descriptors / Sockets
- 经验阈值:内存 > 80%、磁盘可用 < 2GB、FD 使用率 > 90% 应立即告警
-
队列维度重点
- Ready 持续增长:消费者处理慢或异常
- Unacked 高:消费者卡住未确认
- Consumers=0:消费者服务宕机或未注册
-
节点与系统资源
- 关注 内存/磁盘/文件描述符 的硬限制与告警,避免因资源耗尽导致阻塞或不可用