Linux里RabbitMQ怎么监控
导读:Linux下RabbitMQ监控实践 一 快速巡检与命令行监控 节点健康与诊断 检查节点存活:rabbitmq-diagnostics -q ping(返回“Ping succeeded”为正常) 查看节点状态:rabbitmq-dia...
Linux下RabbitMQ监控实践
一 快速巡检与命令行监控
- 节点健康与诊断
- 检查节点存活:
rabbitmq-diagnostics -q ping(返回“Ping succeeded”为正常) - 查看节点状态:
rabbitmq-diagnostics -q status - 查看告警:
rabbitmq-diagnostics -q alarms - 网络与磁盘检查:
rabbitmq-diagnostics check_network、rabbitmq-diagnostics check_disk_free
- 检查节点存活:
- 运行时指标与资源
- 节点概览:
rabbitmqctl status - 队列与消息:
rabbitmqctl list_queues name messages_ready messages_unacknowledged consumers memory - 连接与通道:
rabbitmqctl list_connections、rabbitmqctl list_channels - 交换机与绑定:
rabbitmqctl list_exchanges、rabbitmqctl list_bindings
- 节点概览:
- 日志定位
- 默认日志路径:
/var/log/rabbitmq/rabbit@< 主机名> .log,关注节点启动、内存/磁盘告警、连接异常等日志。
- 默认日志路径:
二 Web管理控制台监控
- 启用管理插件并访问
- 启用:
rabbitmq-plugins enable rabbitmq_management - 访问:
http://< IP> :15672(默认账号 guest/guest,生产环境请创建专用账号并分配权限)
- 启用:
- 重点观测页面
- Overview:总消息数、消息速率(发布/消费)、Connections/Channels、Memory Usage、Disk Space、File Descriptors
- Connections:客户端 IP/端口、状态、vhost、速率,支持强制关闭异常连接
- Queues:每个队列的 Ready/Unacked、Consumers、内存占用、策略标记(如 D/T/S、SAC)
- 使用建议
- 适合日常巡检与故障排查;不提供历史趋势与自动告警,需配合时序监控与告警系统。
三 Prometheus + Grafana 专业监控与告警
- 启用内置指标端点
- 启用插件:
rabbitmq-plugins enable rabbitmq_prometheus - 默认指标端口:15692(部分版本或配置可能为 5552,以实际环境为准)
- 验证端点:
curl http://localhost:15692/metrics
- 启用插件:
- Prometheus 抓取配置
- 示例:
scrape_configs: - job_name: 'rabbitmq' static_configs: - targets: ['< RabbitMQ服务器IP> :15692'] metrics_path: '/metrics' scheme: http
- 示例:
- Grafana 可视化
- 导入官方看板模板:ID 10991(RabbitMQ Management),覆盖节点资源、队列趋势、发布/消费速率、连接/信道、死信队列等
- 关键告警示例
- 队列积压:
expr: rabbitmq_queue_messages > 1000 for: 5m - 节点内存高:
expr: rabbitmq_node_mem_used / rabbitmq_node_mem_limit > 0.8 - 磁盘空间低:
expr: rabbitmq_node_disk_free < 2147483648(小于 2GB)
- 队列积压:
四 日志与消息追踪
- 日志分析
- 路径:
/var/log/rabbitmq/rabbit@< 主机名> .log,用于定位启动、告警、连接与策略加载等事件
- 路径:
- 消息追踪
- Firehose:将消息的 publish 与 deliver 事件以记录形式发送到 amq.rabbitmq.trace(topic 类型),routing key 形如
publish.< exchange>、deliver.< queue>,便于端到端排查 - rabbitmq_tracing 插件:提供可视化追踪界面,按需开启与清理,避免性能开销
- Firehose:将消息的 publish 与 deliver 事件以记录形式发送到 amq.rabbitmq.trace(topic 类型),routing key 形如
- 使用建议:追踪仅用于问题定位,生产环境谨慎长期开启
五 生产环境监控清单与阈值建议
- 资源与告警
- 内存使用率 > 80%
- 可用磁盘空间 < 2GB
- 文件描述符使用率 > 90%
- 业务与队列
- Ready 持续增长:消费者处理慢或宕机
- Unacked 高:消费者卡住未确认或异常
- Consumers=0:消费者服务不可用
- 连接与通道
- 异常断开频繁:检查网络质量、心跳与客户端配置
- 集群与告警
- 关注
rabbitmq-diagnostics alarms的本地与集群告警 - 结合 Prometheus 做多节点聚合与历史趋势分析
- 关注
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux里RabbitMQ怎么监控
本文地址: https://pptw.com/jishu/751083.html
