Prometheus + Grafana 监控 RabbitMQ 实践指南

news/2025/6/19 18:05:05

文章目录

  • Prometheus + Grafana 监控 RabbitMQ 实践教程
    • 一、前言
    • 二、环境搭建
      • 2.1 环境准备
      • 2.2 安装 Prometheus
      • 2.3 安装 Grafana
    • 三、集成 RabbitMQ Exporter
      • 3.1 下载 RabbitMQ Exporter
      • 3.2 解压文件
      • 3.3 配置环境变量
      • 3.4 启动 RabbitMQ Exporter
      • 3.6 验证 Exporter 状态
    • 四、Prometheus添加 RabbitMQ Exporter 作为监控目标
      • 4.1 编辑 Prometheus 配置文件
      • 4.2 重新加载 Prometheus 配置
    • 五、配置 Grafana
      • 5.1 添加 Prometheus 数据源
      • 5.2 导入 RabbitMQ Dashboard
      • 5.3 查看监控数据
    • 六、总结

Prometheus + Grafana 监控 RabbitMQ 实践教程

一、前言

在微服务架构中,消息队列作为关键组件,其性能和状态直接影响系统稳定性。Prometheus + Grafana 作为流行的开源监控解决方案,能够高效监控 RabbitMQ 的运行状态。本文将详细介绍如何使用 Prometheus 和 Grafana 实现对 RabbitMQ 的可视化监控。

二、环境搭建

2.1 环境准备

  • 操作系统 :CentOS 7
  • RabbitMQ 版本 :3.8.4
  • Erlang 版本 :21.3
  • Prometheus 版本 :2.37.0
  • Grafana 版本 :6.4.3

2.2 安装 Prometheus

2.2.1 关闭防火墙
如果是学习环境,可以直接关闭防火墙,生产环境不建议关闭

systemctl stop firewalld
systemctl disable firewalld

2.2.2 安装go环境
由于Prometheus 是golang开发的,所以需要在服务器上安装好golang环境,本博客采用源码安装的方法,如果能科学上网,可以去国外的网站https://golang.org/dl/下载安装包

解压安装包:

 tar-xvf go1.18.3.linux-amd64.tar.gz

添加/usr/loacl/go/bin 目录到/etc/profile

# vim /etc/profile// 在最后一行添加
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
# wq 保存退出后source 一下
source /etc/profile

运行go version,如果显示版本号,则Go环境安装成功

2.2.3 下载 Prometheus

从 Prometheus 官网 下载适合您系统的 Prometheus 二进制文件。

2.2.4 解压文件

tar -xvf prometheus-2.37.0.linux-amd64.tar.gz
cd prometheus-2.37.0.linux-amd64

2.2.5 启动 Prometheus

./prometheus --config.file=/usr/local/prometheus/prometheus.yml &

访问 http://localhost:9090,确认 Prometheus 正在运行。
在这里插入图片描述
2.2.6 设置Prometheus开机启动

添加系统服务,vim /etc/systemd/system/prometheus.service,写入如下内容

[Unit]
Description=Prometheus Monitoring System
Documentation=Prometheus Monitoring System[Service]
ExecStart=/usr/local/prometheus/prometheus-3.4.1.linux-amd64/prometheus \--config.file=/usr/local/prometheus/prometheus-3.4.1.linux-amd64/prometheus.yml \--web.listen-address=:9091
Restart=on-failure[Install]
WantedBy=multi-user.target

重新加载 systemd 配置并启动 prometheus服务

# 重新加载 systemd 配置
sudo systemctl daemon-reload
# 重置服务的失败计数器
sudo systemctl reset-failed prometheus.service
# 启动服务
sudo systemctl start prometheus.service
# 查看服务状态
sudo systemctl status prometheus.service

服务正常应该会这样显示:
在这里插入图片描述

如果服务启动失败,可以使用以下命令查看详细日志:

journalctl -u prometheus.service -l

2.3 安装 Grafana

2.3.1 下载 Grafana

从 Grafana 官网 下载适合您系统的 Grafana 安装包。

2.3.2 安装 Grafana

  • 对于 CentOS
 # 下载wget https://dl.grafana.com/oss/release/grafana-6.4.3-1.x86_64.rpm# 安装yum localinstall grafana-6.4.3-1.x86_64.rpm

2.3.3 启动 Grafana
设置Grafana开机启动并重启

# 重启systemctl 服务systemctl daemon-reload# 使服务生效systemctl enable grafana-server.service# 启动服务systemctl start grafana-server.service

2.3.4 验证安装

访问 http://localhost:3000,默认用户名和密码均为 admin

在这里插入图片描述

三、集成 RabbitMQ Exporter

3.1 下载 RabbitMQ Exporter

从 GitHub Releases 页面下载适合您系统的 RabbitMQ Exporter 二进制文件。

3.2 解压文件

解压下载的文件:

tar-zxf rabbitmq_exporter_1.0.0-RC17_linux_amd64.tar.gz
cd rabbitmq_exporter_1.0.0-RC17_linux_amd64

3.3 配置环境变量

将解压后的可执行文件 rabbitmq_exporter 移动到系统路径下,例如 /usr/local/bin

mv rabbitmq_exporter /usr/local/bin/

3.4 启动 RabbitMQ Exporter

cd到Rabbitmq Exporter目录,启动

RABBIT_USER=admin RABBIT_PASSWORD=123456 OUTPUT_FORMAT=JSON PUBLISH_PORT=9419 RABBIT_URL=http://localhost:15672 nohup ./rabbitmq_exporter &

3.6 验证 Exporter 状态

访问 http://<服务器IP>:9419/metrics 查看 Exporter 暴露的指标数据。

四、Prometheus添加 RabbitMQ Exporter 作为监控目标

4.1 编辑 Prometheus 配置文件

在 Prometheus 配置文件 prometheus.ymlscrape_configs 部分添加 RabbitMQ Exporter 作为监控目标:

scrape_configs:- job_name: 'rabbitmq'static_configs:- targets: ['localhost:9419']

4.2 重新加载 Prometheus 配置

重新加载 Prometheus 配置文件,使更改生效:

sudo systemctl reload prometheus

浏览器访问http://<服务器IP>:9090/targets查看监控信息
在这里插入图片描述

五、配置 Grafana

5.1 添加 Prometheus 数据源

  1. 登录 Grafana,点击主界面的 “Add data source”。
    在这里插入图片描述

  2. 选择 “Prometheus”。
    在这里插入图片描述

  3. 填写数据源设置项,URL 处填写 Prometheus 服务所在的 IP 地址和端口。 点击 “Save & Test” 按钮,保存设置。
    在这里插入图片描述

  4. Dashboards 页面选择“Prometheus 2.0 Stats”
    在这里插入图片描述

  5. 查看监控

点击Grafana图标,切换到主页面,然后点击Home,选择我们刚才添加的Prometheus2.0Stats,即
可看到监控数据
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.2 导入 RabbitMQ Dashboard

  1. 浏览器访问 Grafana 官方 Dashboard 页面,搜索并选择合适的 RabbitMQ 监控 Dashboard。
    在这里插入图片描述
  2. 复制 Dashboard 的 ID。
  3. 打开 Grafana 监控页面,点击 “Import” 按钮。
    在这里插入图片描述

在这里插入图片描述

  1. 将复制的 Dashboard ID 粘贴到输入框中。
    在这里插入图片描述

  2. 点击 “Change” 按钮,生成一个随机的 UID。

  3. 点击下方输入框,选择之前创建的数据源 Prometheus。
    在这里插入图片描述

  4. 最后点击 “Import” 按钮,完成导入。

5.3 查看监控数据

导入成功后,会自动打开该 Dashboard,即可看到 RabbitMQ 的监控数据。

六、总结

通过 Prometheus + Grafana 实现对 RabbitMQ 的可视化监控,可以帮助我们实时了解 RabbitMQ 的运行状态和性能指标。本文从环境搭建到配置 Grafana,提供了详细的步骤和示例,帮助读者快速上手。

如果你在部署或配置过程中遇到问题,可以参考官方文档或在相关社区寻求帮助。

希望这篇实践指南对你有所帮助!


https://dhexx.cn/news/show-5537770.html

相关文章

从零开始搭建现代化 Monorepo 开发模板:TypeScript + Rollup + Jest + 持续集成完整指南

在现代前端开发中&#xff0c;Monorepo&#xff08;单体仓库&#xff09;架构已经成为管理多个相关包的主流方案。无论是 React、Vue、还是 Angular 等知名框架&#xff0c;都采用了 Monorepo 的组织方式。本文将带您从零开始&#xff0c;一步步搭建一个功能完整的 Monorepo 开…

Java设计模式基础问答

面试过程中会让你介绍你项目或实习中使用的设计模式&#xff0c;你该如何说明 工厂模式 工厂模式是把对象创建的逻辑封装到一个工厂类里面&#xff0c;我们用工厂类来创建对象 为什么需要工厂类&#xff08;优点&#xff09;&#xff1a; 可以集中管理对象的创建规则。例如要…

pnpm install 和 npm install 的区别

pnpm install 和 npm install 的区别 pnpm install 和 npm install 都是用于安装项目依赖的命令&#xff0c;但它们在依赖管理机制、磁盘空间占用、安装速度和依赖安全性上有显著区别&#xff1a; 核心区别总结 特性npmpnpm依赖存储平铺结构&#xff08;嵌套改进版&#xff0…

Matlab点云合并函数pcmerge全解析

Matlab 中 pcmerge 函数的详细用法 1. 参数说明2. pcmerge函数调用示例2.1 示例1(对两个点云进行合并)2.2 示例2:对于大量点云数据的适用性分析3 结语1. 参数说明 pcmerge 是 MATLAB 提供的一个用于点云数据合并的函数。其主要作用是将两个点云对象按照指定的空间分辨率进行…

可视化在车间质量管控中的创新应用,提升品质

当某汽车工厂质检员还在用肉眼检查500个零件时&#xff0c;隔壁车间已用上“AI视觉检测系统”&#xff0c;在3秒内完成全车10万检测点筛查&#xff1b;某电子厂因人工漏检导致的百万级召回事件背后&#xff0c;藏着传统质检“看不见”的致命短板。本文将揭穿可视化质检的三大认…

行为设计模式之Memento(备忘录)

行为设计模式之Memento&#xff08;备忘录&#xff09; 前言&#xff1a; 备忘录设计模式&#xff0c;有点像vmware快照可以回滚&#xff0c;idea的提交记录同样可以混滚&#xff0c;流程引擎中流程可以撤销到或者回滚到某个指定的状态。 1&#xff09;意图 在不破坏封装性的…

Mac M4 芯片运行大模型指南,包括模型微调与推理

Mac M4 芯片运行大模型指南&#xff0c;模型微调与推理 背景模型推理 Ollama&#x1f50d; 举例说明&#xff1a;踩坑 模型微调 unsloth 背景 在国补、教育优惠、京东会员500优惠券等众多优惠之下。 我拿下了Macmini M4 16G 内存万兆网卡。在机器到手的第一时间&#xff0c;马…

第四章 RAG 知识库基础

代码仓库地址&#xff1a;https://github.com/Liucc-123/ai-agent 项目目标&#xff1a;通过项目实战掌握AI 大模型应用开发的常见知识&#xff0c;包括有&#xff1a;掌握AI 应用平台使用、AI 大模型接入、开发框架&#xff08;Spring AI LangChain4j&#xff09;、本地部署、…

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…

探秘鸿蒙 HarmonyOS NEXT:鸿蒙定时器,简单倒计时的场景应用

在鸿蒙 ArkTS 开发中&#xff0c;定时器是实现动态效果和定时任务的重要工具。基于鸿蒙 API 12 及以上版本&#xff0c;ArkTS 提供了功能丰富的定时器 API&#xff0c;本文将带你全面了解定时器的使用方法。 一、定时器常用 API 介绍 ArkTS 中的定时器主要分为一次性定时器&a…