引言
在分布式应用架构中,RabbitMQ作为关键消息中间,其稳定性直接影响业务链路。随着业务规模的扩张和系统复杂度的提升很容易引发消息堆积、节点宕机等风险,传统监控难以应对。而Prometheus凭借其高效的时序数据采集能力、灵活的查询语言、及强大的告警机制,能够精准抓取 RabbitMQ 的核心指标(如队列长度、消息生产 / 消费速率、节点资源使用率等)并通过Grafana实现多维度可视化分析、历史趋势预测及阈值告警联动等能力,可以帮助运维与开发人员快速定位问题,保障业务稳定运行。
一. 监控架构与核心组件原理
1.1 rabbitmq监控架构构图

1.2 核心组件原理
- rabbitmq_prometheus:rabbitmq官方提供的监控指标暴露插件,其核心作用是将rabbitmq集群的内部状态数据转换为prometheus可识别的时间序列指标,并通过标准HTTP端点供prometheus拉取,从而实现对rabbitmq的可视化监控与故障预警。
- prometheus:定时抓取rabbitmq指标数据,并存储为时间序列数据,结合PromQL实现灵活查询与告警。
- grafana:可以从很多种数据源中读取数据信息,将用户的可视化需求转化为数据源能理解的查询语句(如PromQL、SQL),并将查询结果以图表的形式展示出来。
1.3 服务器规划
| 角色 | 内网IP | 用途 |
|---|---|---|
| RabbitMQ Server1 | 192.168.197.128 | RabbitMQ集群节点 |
| RabbitMQ Server2 | 192.168.197.129 | RabbitMQ集群节点 |
| RabbitMQ Server3 | 192.168.197.130 | RabbitMQ集群节点 |
| Prometheus | 192.168.197.128 | 数据采集 |
| Grafana | 192.168.197.128 | 数据可视化 |
二. prometheus安装与配置
2.1 下载安装包
官网:https://prometheus.io/download/

2.2 解压安装包
tar -xzvf prometheus-*.tar.gz
解压后的目录结构

2.3 配置rabbitmq抓取任务
vi prometheus.yml
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
alerting:
alertmanagers:
- static_configs:
- targets:
rule_files:
scrape_configs:
- job_name: "rabbitmq"
static_configs:
- targets:
- '192.168.197.128:15692'
- '192.168.197.129:15692'
- '192.168.197.130:15692'
labels:
app: "prometheus"
metrics_path: "/metrics"
2.3 启动prometheus
cd prometheus-*
./prometheus
2.4 注册为系统服务
vi /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus Monitoring System
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/prometheus-3.5.0.linux-amd64/prometheus --config.file=/usr/local/prometheus-3.5.0.linux-amd64/prometheus.yml --storage.tsdb.path=/usr/local/prometheus-3.5.0.linux-amd64/data
# 重启策略保持不变
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
重新加载 systemd 配置文件
systemctl daemon-reload
重启prometheus
systemctl restart prometheus
2.5 访问prometheus界面
查看rabbitmq抓取任务是否配置成功

三. rabbitmq启用prometheus插件
3.1 配置集群名称
任意节点执行此命令
rabbitmq-diagnostics -q cluster_status
3.2 启用rabbitmq_prometheus插件
集群每个节点执行此命令
rabbitmq-plugins enable rabbitmq_prometheus
会输出以下内容

3.3 启用身份验证(可选)
默认访问http://ip:15692/metrics获取指标数据是没有权限验证,如果想增加身份验证可增加如下配置。
vi /etc/rabbitmq/rabbitmq.conf
prometheus.authentication.enabled = true
重启
systemctl restart rabbitmq-server
四. grafana安装与配置
4.1 下载安装包
官网:https://grafana.com/grafana/download
4.2 上传到指定目录并安装

rpm -ivh grafana-12.1.0-1.x86_64.rpm
4.3 启动grafana
systemctl start grafana-server
4.4 登录grafana
地址:http://192.168.197.128:3000/
账户:admin
密码:admin

4.5 配置rabbitmq监控
点击grafana左侧菜单栏[Data sources]选项,点击[add data source]按钮添加prometheus数据源
在新界面中选择prometheus并点击作为数据源

添加prometheus相关配置,点击[save & test]按钮配置完成

点击grafana左侧菜单栏[Data sources]选项,在
选择要需要添加的数据源,点击[Build a dashboard]按钮
点击[Import dashboard]按钮

导入官方dashboard有3种方式
官网直接下载rabbitmq dashboard的json文件并上传
直接输入rabbitmq dashboard id 10991点击[load]按钮加载
直接输入第一种下载的json文件内容点击[load]按钮加载

加载完rabbitmq dashboard,选择之前添加的prometheus数据源,点击import即可


五. 总结
本文介绍了基于Prometheus和Grafana构建RabbitMQ监控系统的完整方案,通过实时采集RabbitMQ各项性能指标数据,可以帮助运维与开发人员快速定位问题,保障业务稳定运行。
1054

被折叠的 条评论
为什么被折叠?



