RabbitMQ进阶之路:如何使用Prometheus+Grafana监控RabbitMQ

引言

在分布式应用架构中,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 Server1192.168.197.128RabbitMQ集群节点
RabbitMQ Server2192.168.197.129RabbitMQ集群节点
RabbitMQ Server3192.168.197.130RabbitMQ集群节点
Prometheus192.168.197.128数据采集
Grafana192.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各项性能指标数据,可以帮助运维与开发人员快速定位问题,保障业务稳定运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值