Ubuntu RabbitMQ如何监控队列状态
导读:Ubuntu 上监控 RabbitMQ 队列状态的可落地方案 一 管理插件与 HTTP API 启用插件:在 Ubuntu 上执行 sudo rabbitmq-plugins enable rabbitmq_management,访问管理...
Ubuntu 上监控 RabbitMQ 队列状态的可落地方案
一 管理插件与 HTTP API
- 启用插件:在 Ubuntu 上执行 sudo rabbitmq-plugins enable rabbitmq_management,访问管理界面 http://:15672,使用具有监控权限的账号查看队列、连接、通道等,并可通过 HTTP API 拉取队列指标与状态。为安全起见,生产环境建议创建专用监控账号并限制 vhost 权限。该插件提供直观的 Web 界面与完整 REST API,适合日常巡检与自动化集成。
二 命令行快速巡检
- 常用检查命令(按需组合使用):
- 查看队列与关键计数:rabbitmqctl list_queues name messages_ready messages_unacknowledged
- 查看队列内存:rabbitmqctl list_queues name memory
- 查看节点与资源:rabbitmqctl status、rabbitmqctl status --verbose
- 查看连接与通道:rabbitmqctl list_connections、rabbitmqctl list_channels
- 生成诊断报告:rabbitmqctl report(用于排障时上传)
- 建议将以上命令纳入定时巡检脚本,输出到日志或时序库,便于趋势分析与告警回溯。
三 Prometheus Grafana 指标监控
- 启用指标导出:sudo rabbitmq-plugins enable rabbitmq_prometheus,访问指标端点 http://:15692/metrics。
- Prometheus 配置示例:
- scrape_configs:
- job_name: ‘rabbitmq’
static_configs:
- targets: [‘:15692’]
- job_name: ‘rabbitmq’
static_configs:
- scrape_configs:
- Grafana 可视化:导入 RabbitMQ Overview 等官方/社区仪表盘,重点面板包括:Ready messages、Unacknowledged messages、Incoming/Outgoing messages/s、Consumers、Connections、Channels、Nodes、File descriptors available 等,用于容量评估与异常定位。
- 建议为关键队列设置告警规则,例如:队列长度、消费滞后、连接/通道异常增长等。
四 日志与消息追踪
- 日志路径与内容:RabbitMQ 默认日志位于 /var/log/rabbitmq/rabbit@.log,包含版本、节点、内存/磁盘阈值、告警与启动信息,可用于追踪异常与容量问题。
- 消息级追踪(仅在排障时短时开启):
- Firehose:rabbitmqctl trace_on / trace_off,将发布/投递事件输出到 amq.rabbitmq.trace。
- rabbitmq_tracing 插件:rabbitmq-plugins enable rabbitmq_tracing,提供 GUI 管理追踪。
- 注意:开启追踪会带来额外开销,排查完成后应及时关闭。
五 脚本化监控与阈值示例
- Bash 采集与可视化思路:周期性调用 rabbitmqctl list_queues 获取指定队列长度,写入数据文件,并用 gnuplot 生成按日/小时/分钟的堆积图,用于容量趋势观察与回溯。
- 死信队列告警思路:对业务死信队列监控两项核心指标——队列长度与增长速率,示例阈值:长度超过 100 条或每分钟增长超过 10 条触发告警;可结合邮件、钉钉/企业微信、Slack 或 PagerDuty 等通道实现通知。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu RabbitMQ如何监控队列状态
本文地址: https://pptw.com/jishu/750814.html
