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

指标监控: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 数据源,完成导入。

http://www.xdnf.cn/news/2083.html

相关文章:

  • 3:QT联合HALCON编程—海康相机SDK二次程序开发
  • 深入详解人工智能数学基础——微积分中拉格朗日乘数法在GAN训练中的应用
  • python调用ffmpeg对截取视频片段,可批量处理
  • 写了一个关于SpringAop记录用户操作的功能
  • A. Ambitious Kid
  • MySQL 联合查询教程
  • 使用PyTorch实现简单图像识别(基于MNIST手写数字数据集)的完整代码示例,包含数据加载、模型定义、训练和预测全流程
  • 深度探索:DeepSeek赋能WPS图表绘制
  • Docker化HBase排错实录:从Master hflush启动失败到Snappy算法未支持解决
  • Oracle官宣 MySQL+APEX+AI三认证限时免费
  • 使用 AFL++ 对 IoT 二进制文件进行模糊测试 - 第二部分
  • 基于 Requests 与 Ollama 的本地大模型交互全栈实践指南
  • Trae 宝藏功能实测:从 Mcp 搭建天气系统,到 AI 重塑 Excel 数据处理
  • 精通线程池:业务场景中的实践、优化与监控
  • maven打包时配置多环境参数
  • 深入理解二叉树遍历:递归与栈的双重视角
  • php一些命名规范 和 css命名规范
  • 支付宝小程序组件与页面构造器使用指南:从页面到组件的正确迁移
  • 【Agent实战】从0到1开发一个Python 解释器 MCP SSE Server
  • RocketMQ 主题与队列的协同作用解析(既然队列存储在不同的集群中,那要主题有什么用呢?)---管理命令、配置安装(主题、消息、队列与 Broker 的关系解析)
  • 7年经验的Java程序员的技术知识概览(及分阶段学习计划、资源推荐、职业发展建议)
  • 基于Java(JSP)+MySQL实现深度学习的音乐推荐系统
  • Queue和Deque
  • #ifndef #else #endif条件编译
  • C语言基础语法详解:从入门到掌握
  • 【FreeRTOS】事件标志组
  • Linux文件操作命令
  • QPS说明
  • 提升变电站运维效率:安科瑞无线测温系统创新应用
  • oracle数据库物理结构