- 首页 >
- 问答 >
-
智能运维 >
- RabbitMQ在Linux下的监控方法有哪些
RabbitMQ在Linux下的监控方法有哪些
小樊
39
2025-12-16 16:21:28
Linux下可用的RabbitMQ监控手段
一 内置与命令行工具
- 启用管理插件并访问 Web UI:执行rabbitmq-plugins enable rabbitmq_management,通过浏览器访问http://:15672/;注意guest/guest默认仅允许本机登录,远程需创建管理员用户并赋权。常用 CLI:查看节点状态rabbitmqctl status;队列与消息rabbitmqctl list_queues name messages_ready messages_unacknowledged consumers memory;连接与消费者rabbitmqctl list_connections、rabbitmqctl list_consumers;用户与权限rabbitmqctl list_users、rabbitmqctl set_permissions -p “." ".” “.*”。这些用于日常巡检与临时排障非常高效。
二 日志与系统资源监控
- 日志:RabbitMQ 日志默认位于**/var/log/rabbitmq/rabbit@.log**,包含版本、节点、内存/磁盘限制、告警等信息,适合定位启动失败、权限、资源阈值触发等问题。系统层面配合systemctl status rabbitmq-server查看服务状态,使用top/htop/vmstat/iostat观察 CPU、内存、I/O 与文件句柄等资源瓶颈。
三 消息轨迹追踪用于问题定位
- Firehose:开启rabbitmqctl trace_on后,消息会被复制并发送到amq.rabbitmq.trace(topic 类型),routing key 形如publish.与deliver.;用于端到端投递路径排查,性能敏感场景用完及时trace_off。rabbitmq_tracing 插件:执行rabbitmq-plugins enable rabbitmq_tracing,在管理界面配置追踪任务,将匹配消息写入日志文件,便于审计与问题复现。
四 指标监控与可视化
- Prometheus 原生指标:RabbitMQ 3.8+ 内置rabbitmq_prometheus插件,暴露http://:15692/metrics;关键指标包括rabbitmq_node_mem_used / mem_limit、rabbitmq_node_disk_free / disk_free_limit、rabbitmq_queue_messages_ready / unacknowledged / consumers等。Prometheus 抓取后结合 Grafana 可视化,可导入官方看板(如 Dashboard ID 10991)实现趋势与告警。
- Exporter 方案:部署rabbitmq_exporter(依赖启用rabbitmq_management),通过环境变量如RABBIT_URL=http://127.0.0.1:15672、RABBIT_USER/PASSWORD、RABBIT_EXPORTERS=exchange,node,overview,queue,aliveness配置采集;常用指标有aliveness_info(存活探测)、up(节点存活)、node_mem_alarm / node_disk_free_alarm(资源告警)、partitions(网络分区计数)等,适合已有监控平台统一接入。
五 生产可用告警阈值与实践建议
- 关键阈值与动作建议:内存使用率**>80%触发告警并扩容或限流;磁盘可用空间<2GB或node_disk_free_alarm=1立即处理;文件描述符使用率>90%检查句柄泄漏或调大上限;队列Ready持续增长或Unacked**高企提示消费者慢/卡;Consumers=0多为消费者宕机;partitions>0表示发生网络分区需紧急处置。日常建议同时保留 Web UI/CLI 快速排障与 Prometheus/Grafana 长期趋势与告警两套机制。