RabbitMQ监控怎么做?Prometheus+Grafana监控RabbitMQ教程

小雪小哥_5048

小雪小哥_5048

2026-06-03

798人浏览

原创

最轻量稳定的rabbitmq监控方案是启用rabbitmq_prometheus插件(≥3.8+erlnag≥23.2),prometheus抓取/metrics/per-object路径,grafana展示;需验证插件启用、端口开放、认证配置、label一致性及告警逻辑。

rabbitmq监控怎么做?prometheus+grafana监控rabbitmq教程

直接用 RabbitMQ 自带的 rabbitmq_prometheus 插件 + Prometheus 抓取 + Grafana 展示,是当前最轻量、最稳定、也最贴近官方支持的方案。不用额外部署 Exporter,不引入单点故障,指标全、延迟低、权限收敛——前提是 RabbitMQ ≥3.8 且 Erlang ≥23.2。

确认 rabbitmq_prometheus 插件已启用并暴露端口

这是整个链路的起点。很多问题不是配置错,而是插件根本没跑起来。

  • 执行 rabbitmq-plugins list,确认输出里有 [E*] rabbitmq_prometheusE* 表示已启用);如果没有,运行 rabbitmq-plugins enable rabbitmq_prometheus
  • 默认监听在 15692 端口,用 curl -s http://localhost:15692/metrics | head -n 5 能看到类似 # HELP rabbitmq_queue_messages_ready Number of messages ready to be delivered 的指标文本才算成功
  • 如果返回连接拒绝或超时:检查防火墙(firewall-cmd --permanent --add-port=15692/tcp)、SELinux(setsebool -P prometheus_can_network_connect 1),以及 RabbitMQ 是否以非 root 用户启动但绑定了特权端口(改 prometheus.tcp.port = 15692 到非特权端口如 95692 更稳妥)

Prometheus 配置 job_name 时必须用 /metrics/per-object

只写 /metrics 会漏掉绝大多数关键指标——比如单个队列的 rabbitmq_queue_messages_ready、消费者数量、通道状态等,全在 /metrics/per-object 下。

RabbitMQ 4.2.3
RabbitMQ 4.2.3

RabbitMQ 4.2.3 是 2026 年初发布的重要稳定更新版本,重点修复了 Khepri 元数据存储相关问题,并改进了监控性能。对于使用 Docker、Kubernetes 或微服务架构的开发团队来说,该版本兼容性和稳定性表现较好。

下载
  • prometheus.ymlscrape_configs 中添加如下片段:
job_name: 'rabbitmq'
  scrape_interval: 30s
  metrics_path: '/metrics/per-object'
  static_configs:
    - targets: ['192.168.1.100:15692', '192.168.1.101:15692']
      labels:
        cluster: 'prod-rmq'
  • /metrics/per-object 是关键。它会让插件为每个 queue、exchange、channel、connection 单独生成指标(例如 rabbitmq_queue_messages_ready{queue="order.created",vhost="/"} 124),否则你只能看到节点级聚合值,无法定位具体哪个队列堵了
  • 如果目标多于 1 个节点,建议加 relabel_configs 去重或打标,避免同名 queue 在不同节点上冲突(比如都叫 default
  • Prometheus 抓取失败时,看日志里是否出现 server returned HTTP status 401 Unauthorized:说明 RabbitMQ 启用了管理插件认证,需在 static_configs 下加 basic_auth 配置

Grafana 导入 Dashboard 前先验证指标是否存在

别急着导入 ID 为 1099112027 的 RabbitMQ 官方仪表盘——如果 Prometheus 根本没采到 rabbitmq_queue_.* 类指标,面板只会显示 “No data”。

  • 进 Grafana → Explore → 选择 Prometheus 数据源 → 输入查询:count by (queue) (rabbitmq_queue_messages_ready{queue!=""}),能列出所有队列名说明数据通了
  • 常见空数据原因:RabbitMQ vhost 名含特殊字符(如 /.),导致 Prometheus label 解析失败;此时需在 Prometheus 配置中加 metric_relabel_configsvhost label 做 replace 替换(例如把 / 换成 _slash_
  • 导入 Dashboard 后,检查变量(Variables)里的 $queue$vhost 是否能下拉出真实值;不能的话,说明 label_values(rabbitmq_queue_messages_ready, queue) 查询无结果,得回上一步排查采集链路

告警规则要避开“平均值陷阱”

直接对 rate(rabbitmq_queue_messages_unacknowledged[5m]) 取平均,可能掩盖单个慢消费者拖垮整个队列的问题。

  • 真正有用的告警是:“某个队列未确认消息持续超过 1000 条,且最近 5 分钟消费速率低于生产速率” —— 这需要两个 PromQL 组合:
absent(rate(rabbitmq_queue_messages_published_total{queue=~".+"}[5m])) == 0 and
  (rabbitmq_queue_messages_unacknowledged{queue=~".+"} > 1000) and
  (rate(rabbitmq_queue_messages_published_total[5m]) - rate(rabbitmq_queue_messages_delivered_total[5m]) > 10)
  • 注意:rabbitmq_queue_messages_delivered_total 是消费者主动 basic.get 或推送给消费者的总量,而 rabbitmq_queue_messages_consumed_total 是成功 ack 的量,告警应基于前者判断“是否在消费”,而非后者判断“是否消费成功”
  • 所有告警规则里涉及的指标,必须在 Prometheus 的 Targets 页面里明确显示为 UP 状态,且 Last Scrape 时间距现在不超过 scrape_interval * 2,否则规则永远不触发

最容易被忽略的是指标命名空间和 label 的一致性:RabbitMQ 插件默认用 vhostqueuenode 作 label,但如果你在 Prometheus 里做了 relabel 重命名,Grafana 查询和告警规则里的 label 名就得同步改,否则就是静默失效。

相关专题

更多
Grafana重置admin密码
Grafana重置admin密码

本专题整合了grafana admin密码相关教程,阅读专题下面的文章了解更多详细内容。

2025.09.02

1894

12

Grafana admin密码
Grafana admin密码

本专题整合了Grafana密码相关教程,阅读专题下面的文章了解更多详细内容。

2025.12.09

710

9

Vibeknow在线使用入口合集
Vibeknow在线使用入口合集

本专题汇总了Vibeknow在线创作视频的官方入口及网页版使用教程,涵盖PPT、PDF、Word等文档一键转讲解视频的核心操作,并整理了免费版水印规则与手机端浏览器访问指南,助你快速将知识内容视频化。

2026.09.21

0

20

NumPy随机数文件读写与dtype数据类型
NumPy随机数文件读写与dtype数据类型

本专题整理 NumPy 随机数、文件读写与 dtype 数据类型相关教程,覆盖 Generator/random、随机数种子、正态分布采样、npy/npz/CSV/TXT 保存读取、loadtxt/savetxt、memmap、大文件处理、astype 类型转换、结构化 dtype、整数溢出和精度丢失等场景。

2026.09.21

0

24

NumPy矩阵运算与线性代数计算
NumPy矩阵运算与线性代数计算

本专题整理 NumPy 矩阵运算与线性代数计算相关教程,覆盖矩阵乘法、dot 与 @ 运算符、逆矩阵、行列式、特征值与特征向量、SVD、线性方程组、欧氏距离、矩阵分解和大规模矩阵性能优化等内容,帮助读者掌握 np.linalg 与矩阵计算实战。

2026.09.21

0

20

NumPy广播机制数学运算与统计分析
NumPy广播机制数学运算与统计分析

本专题整理 NumPy 广播机制、数组数学运算与统计分析相关教程,覆盖广播规则、维度对齐、矩阵与数组加减除法、向量化计算、均值方差、分位数、中位数、直方图和 unique 频次统计等场景,帮助读者掌握 ndarray 高效计算与统计处理方法。

2026.09.21

0

17

NumPy数组创建索引切片与数据选择
NumPy数组创建索引切片与数据选择

本专题整理 NumPy 数组创建、索引、切片与数据选择相关教程,覆盖 np.array、zeros/ones、多维数组形状、基础切片、花式索引、布尔索引、条件筛选、视图与副本等常用场景,帮助读者系统掌握 ndarray 数据构造与高效提取方法。

2026.09.21

0

12

Aionclaw智能助手介绍
Aionclaw智能助手介绍

本专题汇总了AionClaw(AI龙虾助手)的功能介绍与在线使用入口。AionClaw是杭州趣猿人工智能有限公司推出的桌面级AI智能体,能直接在电脑上读写文件、运行脚本、操作浏览器,自动交付Word、PPT、Excel等成品。

2026.09.20

20

13

AionClaw AI智能体与电脑自动化任务执行功能使用教程
AionClaw AI智能体与电脑自动化任务执行功能使用教程

AionClaw专题整理AI智能体与电脑自动化相关功能使用教程,涵盖安装部署、AI任务执行、Skills技能、文件处理、浏览器控制、电脑操作、持久记忆、聊天工具连接以及办公、编程和内容创作等功能,帮助用户快速掌握AionClaw的实际使用方法。

2026.09.20

0

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
RabbitMQ 入门教程
RabbitMQ 入门教程

共0课时 | 121人学习

RabbitMQ 教程手册
RabbitMQ 教程手册

共0课时 | 0人学习

RabbitMQ 官方文档
RabbitMQ 官方文档

共0课时 | 0人学习