讲师中心 微信公众号
AI工具推荐 视频效率加速

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

小雪小哥_5048

小雪小哥_5048

发布时间:2026-06-03 09:39:26

|

798人浏览过

|

来源于php中文网

原创

最轻量稳定的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 名就得同步改,否则就是静默失效。

热门AI工具

更多
火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

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

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

1894

2025.09.02

Grafana admin密码
Grafana admin密码

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

710

2025.12.09

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

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

20

2026.09.21

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

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

0

2026.09.21

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

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

0

2026.09.21

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

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

0

2026.09.21

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

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

0

2026.09.21

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

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

40

2026.09.20

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

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

0

2026.09.20

热门下载

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

精品课程

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

共0课时 | 123人学习

RabbitMQ 教程手册
RabbitMQ 教程手册

共0课时 | 0人学习

RabbitMQ 官方文档
RabbitMQ 官方文档

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn