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

Prometheus+Grafana监控mysql

1、简述

        使用 Prometheus 结合 Grafana 监控 MySQL 是一套成熟且广泛应用的方案,能实现对 MySQL 性能、状态等指标的实时采集、存储、可视化及告警。

2、整体架构说明

  • Prometheus:负责定时从 MySQL 采集监控指标(需借助 Exporter),并存储在时序数据库中。
  • MySQL Exporter:部署在 MySQL 服务器或可访问 MySQL 的节点上,用于暴露 MySQL 的监控指标(如连接数、查询量、缓存命中率等),供 Prometheus 抓取。
  • Grafana:通过连接 Prometheus 数据源,使用预置或自定义的仪表盘(Dashboard)可视化 MySQL 的监控指标,支持图表联动、告警配置等功能。

3、部署组件

3.1 部署 MySQL Exporter

下载安装包

前往Prometheus 官方下载页获取对应版本(以mysqld_exporter-0.14.0.linux-amd64.tar.gz为例):

wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.17.2/mysqld_exporter-0.17.2.linux-amd64.tar.gz
tar -zxvf mysqld_exporter-0.17.2.linux-amd64.tar.gz
mv mysqld_exporter-0.17.2.linux-amd64 /usr/local/mysqld_exporter

配置 Exporter 连接 MySQL

在 Exporter 目录下创建配置文件my.cnf,写入 MySQL 用户信息:

[client]
user=username  # 上文创建的监控用户
password=password  # 对应密码
host=localhost  # MySQL地址(若远程则填IP)
port=3306  # MySQL端口

启动 Exporter

以系统服务方式启动(推荐),创建/etc/systemd/system/mysqld-exporter.service

[Unit]
Description=MySQL Exporter
After=network.target[Service]
User=root
Group=root
WorkingDirectory=/usr/local/mysqld_exporter
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/my.cnf
Restart=always[Install]
WantedBy=multi-user.target

启动并设置开机自启:

systemctl daemon-reload
systemctl start mysqld-exporter
systemctl enable mysqld-exporter

验证:访问http://服务器IP:9104/metrics,若能看到 MySQL 相关指标(如mysql_upmysql_connections),说明 Exporter 正常运行。

3.2 Prometheus+Grafana

安装

参考文章:docker compose安装Prometheus、Grafana_grafana docker-compose-CSDN博客

配置 Prometheus 抓取 Exporter 指标

编辑 Prometheus 配置文件/usr/local/prometheus/prometheus.yml,在scrape_configs中添加 MySQL Exporter 的配置:

scrape_configs:- job_name: 'mysql'  # 自定义任务名static_configs:- targets: ['localhost:9104']  # Exporter的地址(IP:端口)

重启Prometheus。

4、配置 Grafana 可视化 MySQL 指标

添加 Prometheus 数据源

  • 登录 Grafana 后,点击左侧 “Configuration -> Data Sources”,点击 “Add data source”,选择 “Prometheus”。
  • 在 “URL” 中输入 Prometheus 的地址(如http://localhost:9090),其他默认,点击 “Save & test”,显示 “Data source is working” 即配置成功。

导入 MySQL 监控仪表盘

Grafana 社区提供了大量预置的 MySQL 仪表盘,可直接导入:

  • 点击左侧 “Dashboards -> Import”,输入仪表盘 ID(推荐736211323,可在Grafana Dashboards搜索 “MySQL” 获取)。
  • 选择已添加的 Prometheus 数据源,点击 “Import”,即可看到 MySQL 的监控面板(包含连接数、QPS、慢查询、缓存状态等指标)。

5、关键监控指标说明

  • 可用性指标mysql_up(1 表示正常,0 表示异常)、mysql_seconds_behind_master(从库延迟,主从架构需关注)。
  • 连接指标mysql_connections(当前连接数)、mysql_max_connections(最大连接数)、mysql_threads_connected(已使用连接数)。
  • 查询指标mysql_queries(总查询数)、mysql_questions(客户端发起的查询数)、mysql_slow_queries(慢查询数)。
  • 缓存指标mysql_key_cache_hit_rate(键缓存命中率)、mysql_query_cache_hit_rate(查询缓存命中率,MySQL 8.0 后移除)。
  • I/O 指标mysql_bytes_received(接收字节数)、mysql_bytes_sent(发送字节数)、mysql_table_locks_waited(表锁等待次数)。

6、总结

通过 Prometheus+Grafana+MySQL Exporter 的组合,可实现对 MySQL 的全方位监控,帮助运维和开发人员及时发现性能瓶颈、异常状态等问题。实际使用中可根据需求调整监控指标和仪表盘,优化告警策略,确保 MySQL 服务稳定运行。

http://www.dtcms.com/a/345094.html

相关文章:

  • AI推理革命:从Sequential Thinking到Agentic AI的演进之路——揭秘大语言模型思维进化的四重奏
  • 【Linux网络编程】Reactor反应堆模式
  • 氙灯市场报告:亚太成增长主力,汽车、医疗、科研多领域需求驱动行业发展
  • 永磁同步电机无速度算法--基于跟踪观测器的脉振正弦注入法
  • 无线数传模块实现:焦化厂四大车与除尘系统无线通讯连锁控制方案案例
  • ComfyUI 原生 REST API 技术文档
  • 视频拼接融合技术:打造全景视界的革命性产品
  • modbus绑定变量,并发送8位数据的办法
  • Vue中的methods 和 computed
  • Linux-Makefile
  • 网络编程6(JVM)
  • 【Redis】哨兵模式和集群模式
  • 红帽认证升级华为openEuler证书活动!
  • 【学习记录】c完整线程池实现
  • 未来已来?AI 预测技术在气象、金融领域的应用现状与风险警示
  • MySQL视图详解:从基础概念到实战案例
  • 人工智能-python-深度学习-软件安装阶段
  • 第2章 cmd命令基础:执行动态链接库(rundll32)
  • 大视协作码垛机器人:定制圆形吸盘破解桶型码垛难题
  • HEVC(H.265)与HVC1的关系及区别
  • 【C初阶】数据在内存中的存储
  • 【LeetCode 热题 100】139. 单词拆分——(解法一)记忆化搜索
  • Vue 插槽(Slots)全解析1
  • 所做过的笔试真题
  • 阿里云RDS MySQL数据归档全攻略:方案选择指南
  • (LeetCode 面试经典 150 题) 124. 二叉树中的最大路径和 (深度优先搜索dfs)
  • 大麦盒子DM4036刷包推荐
  • 停车场道闸的常见形式
  • 【会议跟踪】Model-Based Systems Engineering (MBSE) in Practice 2025
  • 场景题:内存溢出 和 内存泄漏 有啥区别?