当前位置: 首页 > news >正文

指标监控:Prometheus 结合 Grafana,监控redis、mysql、springboot程序等等

软件作用说明

  • Prometheus‌:采集各种指标数据(如CPU、内存、请求数),并存储到时序数据库中。
  • Grafana‌:数据可视化,生成监控仪表盘。
     

架构说明

被监控服务(如Redis/MySQL/SpringBoot)│▼
[Exporter](将服务数据转为Prometheus格式,暴露HTTP端点)│▼
Prometheus(定时拉取Exporter/应用端点数据,存储到TSDB时序数据库)│▼
Grafana(连接Prometheus,通过SQL类查询语言PromQL获取数据,导入或自己建仪表盘,即可用图表展示数据)
Prometheus‌ 官网下载对应的Exporterspringboot需要开发Exporter
https://prometheus.io/download/
Grafana 社区提供了许多现成的仪表盘模板,地址如下
https://grafana.com/grafana/dashboards


示例,从redis、mysql、springboot中拉取指标数据,到Grafana 展示


环境说明
redis、mysql、springboot 运行在win11上,IP为 192.168.1.102

Prometheus、Grafana 运行在 linux上,,IP为 192.168.83.16

1-a: redis、mysql 下载对应的 Exporter, 并运行

my.cnf内容如下:
[client]
user=root
password=123456
host=192.168.1.102
port=3306运行以下命令
.\mysqld_exporter.exe --config.my-cnf="C:\my.cnf"redis_exporter.exe --redis.addr=redis://localhost:6379 --redis.password=123456 --web.listen-address=:9121

1-b springboot 开发Exporter 如下

<!-- Spring Boot Actuator -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency><!-- Micrometer Prometheus Registry -->
<dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-prometheus</artifactId>
</dependency>management:endpoints:web:exposure:include: '*' # 暴露所有端点endpoint:health:show-details: alwaysmetrics:tags:application: ${spring.application.name} # 自定义标签

2  Prometheus、Grafana用docker安装及指标数据抓取配置

目录结构如下
[root@node prometheus_grafana]# ls
docker-compose.yml
grafana_data
prometheus_data
prometheus.yml[root@node prometheus_grafana]# pwd
/opt/prometheus_grafana
docker-compose.yml 内容如下
version: "3"
services:prometheus:image: prom/prometheus:latestcontainer_name: "prometheus"ports:- "9090:9090"restart: alwaysvolumes:- "./prometheus.yml:/etc/prometheus/prometheus.yml"- "./prometheus_data:/prometheus"networks:- monitoringgrafana:image: grafana/grafana:latestcontainer_name: "grafana"ports:- "3000:3000"restart: alwaysvolumes:- "./grafana_data:/var/lib/grafana"networks:- monitoring      networks:monitoring:driver: bridge
prometheus.yml 内容如下,指标抓取配置
global:scrape_interval:     15s # 默认抓取周期external_labels:monitor: 'codelab-monitor'
scrape_configs:- job_name: 'prometheus' # 抓取 Prometheus 自身的指标static_configs:- targets: ['192.168.83.16:9090']- job_name: 'redis'static_configs:- targets: ['192.168.1.102:9121'] # redis_exporter 的地址,抓取redis指标- job_name: 'mysql'static_configs:- targets: ['192.168.1.102:9104'] # mysqld_exporter 的地址- job_name: 'springboot-app'metrics_path: '/actuator/prometheus'static_configs:- targets: ['192.168.1.102:8080'] # Spring Boot 应用的地址
安装
创建网络
docker network create monitoringdocker network lschmod -R 777 /opt/prometheus_grafana/prometheus_data
chmod -R 777 /opt/prometheus_grafana/grafana_data安装
docker compose up -d

3 检查Prometheus、Grafana,指标是否可正常收集

Prometheus 可以打开,且都是up状态,说明Prometheus 已经可以接收到指标数据
http://192.168.83.16:9090/targets

Grafana,默认用户名和密码都是 admin
http://192.168.83.16:3000/


4 Grafana 添加数据源,导入仪表盘ID,就可以使用了

添加数据源
登录后,点击左侧菜单中的 Configuration > Data Sources。点击 Add data source,选择 Prometheus。

导入仪表盘
点击左侧菜单中的 Dashboards > Import。输入仪表盘 ID(例如:763 监控redis),然后点击 Load。选择刚刚配置的 Prometheus 数据源,完成导入。

相关文章:

  • 一文详解Adobe Photoshop 2025安装教程
  • Springboot集成SSE实现消息推送+RabbitMQ解决集群环境下SSE通道跨节点事件推送问题
  • 【BBDM】main.py -- notes
  • CrewAI Community Version(二)——Agent
  • springboot入门-DTO数据传输层
  • 大模型的使用
  • C++学习之路,从0到精通的征途:List类的模拟实现
  • 【概念】什么是 JWT Token?
  • Gewechat启动启动报错
  • GPU加速-系统CUDA12.5-Windows10
  • 【开源】基于51单片机的简易智能楼道照明设计
  • 栈应用:括号匹配
  • 论文阅读:2025 arxiv Aligning to What? Limits to RLHF Based Alignment
  • Java大师成长计划之第4天:Java中的泛型
  • Yarn 安装与使用教程
  • 自动化测试方法有哪些?
  • 【软考-架构】14、软件可靠性基础
  • 深入解析 ASP.NET Core 中的 ResourceFilter
  • 从像素到实例:揭示图像分割如何改变视觉世界
  • 线程池单例模式
  • 持续更新丨伊朗内政部长:港口爆炸已致8人死亡750人受伤
  • 70后供销合作总社理事会原副主任侯顺利任中国融通外部董事
  • 交警不在就闯红灯?上海公安用科技手段查处非机动车违法
  • 特朗普称已为俄乌问题设最后期限,届时美国态度或生变
  • 济南市莱芜区委书记焦卫星任济南市副市长
  • 展讯:漫游者秦龙和巫鸿的三本书