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

MySQL 跑得稳不稳,Prometheus 得能抓到这个数据才能说清楚

前言数据库出问题的时候最怕的不是故障本身而是故障发生了却没人知道等用户反馈过来才去翻日志慢了不止一拍。MySQL 本身有一些状态变量能反映运行状况——连接数、QPS、缓冲池命中率、慢查询数量——但这些数据要么存着没人看要么得手动查才能看到。Prometheus 解决的是把这类指标持续采集、存储、查询的问题mysql_exporter 在这里面扮演的是翻译角色它去拉 MySQL 的状态数据以 Prometheus 能识别的格式暴露出来Prometheus 定时抓取之后配上 Grafana 就能看到可视化面板设置告警规则还能在指标异常的时候主动通知。整个链路跑通之后数据库的运行状态就不再是一个黑盒子出现问题之前通常能从指标变化里看到端倪。1.Centos7安装mysql_exporter实时监控mysql数据在CentOS 7环境中仅靠MySQL自身难以实现对运行状态的全面可观测性。通过部署mysql_exporter可将关键性能指标实时暴露给Prometheus轻松构建高效的数据库监控体系。本文将手把手指导你在CentOS 7环境中安装并配置mysql_exporter快速打通MySQL与Prometheus的监控链路实现数据库指标的实时采集与可视化。若还没有安装mysql的小伙伴可以参考cpolar官网这篇教程《手把手教你Centos7下MySQL的安装与初始配置》在prometheus的官网下载对应的mysql_exporter的linux版本下载完成后上传到/app目录下也可以使用这个命令一键安装可自定义版本wgethttps://github.com/prometheus/mysqld_exporter/releases/download/v0.18.0/mysqld_exporter-0.18.0.linux-amd64.tar.gz解压mysql_exporter压缩文件tar-zxvfmysqld_exporter-0.18.0.linux-amd64.tar.gz修改mysql_exporter文件名mvmysqld_exporter-0.18.0.linux-amd64/ mysqld_exporter2.启动mysql_exporter创建mysql用户与权限在MySQL数据库中创建一个专门用于监控的用户并赋予其足够的权限来查询所需的信息GRANT REPLICATION CLIENT, PROCESS ON *.* TOmysqld_exporterlocalhostidentified by12345678;GRANT SELECT ON performance_schema.* TOmysqld_exporterlocalhost;flush privileges;创建一个文件输入我们刚创建好的用户名及密码[client]userexporterpassword12345678创建mysql_exporter服务[Unit]DescriptionexporterAfternetwork.target[Service]TypesimpleUserprometheusExecStart/app/mysqld_exporter/mysqld_exporter --config.my-cnf/app/mysqld_exporter/localhost_db.cnf--web.listen-address:9105Restarton-failure[Install]WantedBymulti-user.target也可以直接手动启动sudo-uprometheus /app/mysql_exporter/mysqld_exporter --config.my-cnf/app/mysql_exporter/localhost_db.cnf--web.listen-address:9105接下来我们通过使用浏览器用IP端口就可以访问我们安装好的mysql_exporter页面啦3.配置prometheus监控mysql_exporter没有prometheus的小伙伴可以参考cpolar官网这篇教程《监控不再局域网Cpolar 让 Prometheus 走出内网限制》找到prometheus的配置文件编辑添加如下内容viprometheus.yml- targets:[localhost:9105]labels: app:mysql_exporter重启prometheus服务:systemctl restart prometheus使用浏览器Ip9090打开promethues的页面我们可以看到成功的检测到了mysql_exporter服务啦4.使用alertmanager配置mysql_expoter告警没有alertmanager的小伙伴可以参考这篇文章告别宕机零基础搭建服务器监控告警系统小白也能学会配置mysql告警。我这里举两个例子groups: - name: mysql-alerts rules:# 1. MySQL 实例宕机或 exporter 无法采集- alert: MySQLDown expr: mysql_up0for: 1m labels: severity: critical annotations: summary:MySQL instance downdescription:MySQL instance {{$labels.instance }} has been down for more than 1 minute.# 2. 主从复制中断仅适用于有从库的场景- alert: MySQLReplicationBroken expr: mysql_slave_status_seconds_behind_master300for: 2m labels: severity: warning annotations: summary:MySQL replication lagdescription:MySQL replication on {{$labels.instance }} is lagging by {{$value}} seconds.# 3. 主从 IO/SQL 线程停止- alert: MySQLReplicationIOThreadDown expr: mysql_slave_status_master_server_id0and mysql_slave_status_slave_io_running0for: 1m labels: severity: critical annotations: summary:MySQL replication IO thread stoppeddescription:Slave IO thread is not running on {{$labels.instance }}.- alert: MySQLReplicationSQLThreadDown expr: mysql_slave_status_master_server_id0and mysql_slave_status_slave_sql_running0for: 1m labels: severity: critical annotations: summary:MySQL replication SQL thread stoppeddescription:Slave SQL thread is not running on {{$labels.instance }}.# 4. 连接数使用率过高超过 80%- alert: MySQLTooManyConnections expr:(mysql_global_status_threads_connected / mysql_global_variables_max_connections)*10080for: 2m labels: severity: warning annotations: summary:High MySQL connection usagedescription:{{$labels.instance }}: MySQL connection usage is {{$value| printf\%.2f\}}% of max_connections.# 5. 慢查询数量突增过去5分钟慢查询 10 条- alert: MySQLHighSlowQueries expr: rate(mysql_global_status_slow_queries[5m])0.1# ≈ 每分钟 6 条for: 5m labels: severity: warning annotations: summary:High rate of slow queries on MySQLdescription:{{$labels.instance }}: Slow query rate is {{$value| printf\%.2f\}} per second.编辑为4.yml接下来配置prometheus告警进入prometheus配置文件:找到prometheus的配置文件编辑添加如下内容viprometheus.ymlrule_files: -/app/prometheus/1.yml-/app/prometheus/2.yml-/app/prometheus/3.yml-/app/prometheus/4.yml重启prometheus服务:systemctl restart prometheus使用浏览器Ip9090打开promethues的页面可以看到我们设置好的告警就出来啦这时我们mysql是没有启动的所以告警了。重启后恢复正常。那么问题来了倘若我想监控朋友的mysql但是我们不在一个局域网怎么办别急cpolar来帮助你5.安装cpolar内网穿透工具cpolar 可以将你本地电脑中的服务如 SSH、Web、数据库映射到公网。即使你在家里或外出时也可以通过公网地址连接回本地运行的开发环境。❤️以下是安装cpolar步骤使用一键脚本安装命令sudocurlhttps://get.cpolar.sh|sh安装完成后执行下方命令查看cpolar服务状态如图所示即为正常启动sudosystemctl status cpolarCpolar安装和成功启动服务后在浏览器上输入虚拟机主机IP加9200端口即:【ip:9200】访问Cpolar管理界面使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可打开浏览器访问本地9200端口使用cpolar账户密码登录即可,登录后即可对隧道进行管理。6.配置公网地址登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道隧道名称可自定义本例使用了:mysql_exporter注意不要与已有的隧道名称重复协议http本地地址9105域名类型随机域名地区选择China Top创建成功后打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址接下来就可以在其他电脑或者移动端设备异地上使用地址访问。访问成功。7.将本mysql_exporter暴露给Prometheus进行远程抓取Prometheus可以通过这个公网地址38c53143.r2.cpolar.top访问到运行在本地9105端口的mysql_exporter服务从而抓取系统指标。- targets:[38c53143.r2.cpolar.top]labels: app:mysql_exporter抓取成功8.保留固定公网地址使用cpolar为其配置二级子域名该地址为固定地址不会随机变化。点击左侧的预留选择保留二级子域名地区选择china Top然后设置一个二级子域名名称我这里演示使用的是mysqll大家可以自定义。填写备注信息点击保留。登录cpolar web UI管理界面点击左侧仪表盘的隧道管理——隧道列表找到所要配置的隧道mysql_exporter点击右侧的编辑。修改隧道信息将保留成功的二级子域名配置到隧道中域名类型选择二级子域名Sub Domain填写保留成功的二级子域名地区: China Top点击更新更新完成后打开在线隧道列表此时可以看到随机的公网地址已经发生变化地址名称也变成了保留和固定的二级子域名名称。最后我们使用固定的公网地址在任意设备的浏览器中访问可以看到成功访问本地部署的页面这样一个永久不会变化的二级子域名公网网址即设置好了。至此我们完成了无需公网 IP 的远程服务器监控搭建。结尾数据库出问题的时候最怕的不是故障本身而是故障发生了却没人知道等用户反馈过来才去翻日志慢了不止一拍。MySQL 本身有一些状态变量能反映运行状况——连接数、QPS、缓冲池命中率、慢查询数量——但这些数据要么存着没人看要么得手动查才能看到。Prometheus 解决的是把这类指标持续采集、存储、查询的问题mysql_exporter 在这里面扮演的是翻译角色它去拉 MySQL 的状态数据以 Prometheus 能识别的格式暴露出来Prometheus 定时抓取之后配上 Grafana 就能看到可视化面板设置告警规则还能在指标异常的时候主动通知。整个链路跑通之后数据库的运行状态就不再是一个黑盒子出现问题之前通常能从指标变化里看到端倪。

相关文章:

MySQL 跑得稳不稳,Prometheus 得能抓到这个数据才能说清楚

前言 数据库出问题的时候,最怕的不是故障本身,而是故障发生了却没人知道,等用户反馈过来才去翻日志,慢了不止一拍。 MySQL 本身有一些状态变量能反映运行状况——连接数、QPS、缓冲池命中率、慢查询数量——但这些数据要么存着没…...

‌隐私透明化测试:直播用户数据的匿名表演‌

一、直播用户数据匿名化:隐私保护的核心防线在直播行业高速发展的当下,用户数据已成为平台运营、内容优化和商业变现的核心资产。然而,数据的过度收集与滥用也引发了严重的隐私担忧。据2025年全球隐私监管报告显示,直播行业因用户…...

限时开放|Perplexity学术搜索私藏工作区(含18个学科定制模板+实时更新的期刊影响因子映射表)

更多请点击: https://kaifayun.com 第一章:Perplexity学术搜索的核心价值与适用场景 Perplexity.ai 并非传统搜索引擎,而是一个融合大语言模型推理能力与实时学术信息检索的智能研究协作者。其核心价值在于将“提问—验证—溯源”闭环内化为…...

RISC-V开发板VisionFive 2 UEFI固件移植与启动实战指南

1. 项目概述:当RISC-V单板机拥抱UEFI 对于玩惯了x86平台或者树莓派的开发者来说,给一块单板计算机(SBC)刷写固件、配置启动项,可能已经轻车熟路。但当你把目光投向RISC-V架构,特别是像赛昉科技的VisionFiv…...

NotebookLM+遥感影像分析实战:水稻倒伏预警模型搭建(含Landsat-8元数据自动标注技巧)

更多请点击: https://kaifayun.com 第一章:NotebookLM农业科学研究 NotebookLM 是 Google 推出的基于 AI 的研究协作者工具,专为知识密集型工作设计。在农业科学研究中,它能高效整合多源异构文献(如 FAO 报告、PubMed…...

BLE扫描器开发实战:从原始字节解析到IN100设备高效调试

1. 项目概述:从芯片到应用,一个BLE扫描器的诞生去年五月,我们团队独立开发的NanoBeacon™ BLE扫描器移动应用在应用宝正式上架了。这件事本身可能不算惊天动地,但对我们这些从底层芯片一路摸爬滚打上来的工程师来说,意…...

EcoServe:LLM服务优化的KV缓存复用与动态调度技术

1. EcoServe系统概述:LLM服务优化的新范式在大型语言模型(LLM)服务领域,预填充(prefill)和解码(decode)阶段的资源竞争一直是制约系统效率的关键瓶颈。传统解决方案通常采用两种极端…...

SMARC模块化电脑标准:嵌入式系统设计、选型与集成实战指南

1. 项目概述最近在规划一个边缘计算网关项目,选型时又和硬件同事聊到了SMARC。这已经不是第一次在项目里接触这个标准了,但每次和不同背景的工程师讨论,总会发现大家对它的理解深浅不一。有的嵌入式软件工程师觉得它就是个“带金手指的核心板…...

GSE魔兽世界宏编译器完全指南:告别255字符限制,实现智能一键输出

GSE魔兽世界宏编译器完全指南:告别255字符限制,实现智能一键输出 【免费下载链接】GSE-Advanced-Macro-Compiler GSE is an alternative advanced macro editor and engine for World of Warcraft. 项目地址: https://gitcode.com/gh_mirrors/gs/GSE-…...

支付系统架构设计:从交易核心到资金核算的稳定性实践

1. 支付系统总览:从业务到资金的桥梁但凡涉及在线交易的公司,支付系统都是其技术架构中当之无愧的“心脏”。它远不止是调用一个第三方支付接口那么简单,而是一套连接用户、业务、资金渠道和内部账务的复杂工程体系。一个设计得当的支付系统&…...

STM32 ADC采样详解(标准库版):普通模式与DMA模式,附完整可用代码

前言 ADC(模数转换器)是嵌入式开发中测量模拟信号的核心外设,从简单的电压读取到复杂的传感器数据采集都离不开它。STM32F103 内置 12 位逐次逼近型 ADC,最多支持 18 个通道,在 72MHz 主频下最高采样率达 1Msps&#x…...

车间违规操作难监管?AI Box 智能视频监控系统解决方案

干工控这么多年,我最不愿意看到的就是安全事故。每次听到哪个工厂出了安全事故,心里都特别难受。其实很多安全事故都是因为违规操作引起的,比如不戴安全帽、不系安全带、在车间吸烟等等。传统的监控只能事后追溯,不能事前预警&…...

用ArcGIS做快餐店选址分析:手把手教你用OD方法分析KFC和麦当劳的聚集关系

用ArcGIS解码快餐店选址密码:OD方法揭示KFC与麦当劳的区位博弈 当你在商业区看到KFC和麦当劳总是比邻而居,是否好奇这背后隐藏着怎样的商业逻辑?本文将以空间分析的视角,带你用ArcGIS工具揭示两大快餐巨头的选址策略。不同于传统的…...

Figma中文界面插件:设计师告别英文困扰的终极解决方案

Figma中文界面插件:设计师告别英文困扰的终极解决方案 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在为Figma的英文界面而头疼吗?FigmaCN中文插件是你期待已…...

Spring Boot条件装配原理

Spring Boot条件装配原理 引言 条件装配是Spring Boot自动配置的核心机制,通过Conditional及其派生注解,Spring能够根据当前环境、classpath、配置属性等因素智能地决定是否创建某个Bean。本文将深入剖析条件装配的实现原理、各种条件注解的使用方法以及…...

别再手动折腾了!用Docker Compose 5分钟搞定Kamailio + MySQL + RTPproxy完整SIP服务栈

5分钟极速搭建Kamailio SIP服务栈:Docker Compose实战指南 在VoIP开发领域,快速搭建可靠的SIP服务环境是每个开发者都会遇到的基础需求。传统的手动部署方式往往需要数小时甚至更长时间,涉及复杂的依赖安装、配置文件修改和服务调优。而今天&…...

抖音下载器技术架构解析:从零构建高效内容采集系统

抖音下载器技术架构解析:从零构建高效内容采集系统 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support.…...

可穿戴魔法独角兽帽:从PWM控制到软硬件集成的嵌入式实践

1. 项目概述:一个会动的魔法独角兽帽子几年前,我第一次在创客展上看到有人把微控制器和伺服电机缝进衣服里,让一件普通的卫衣“活”了起来,当时就觉得这太酷了。这种将冰冷的电子元件与温暖的织物结合,创造出有生命感的…...

AI智能体编排框架Agent-Octo:章鱼架构解析与实战应用

1. 项目概述:当AI智能体遇上“章鱼”架构最近在开源社区里,一个名为purton-tech/agent-octo的项目引起了我的注意。乍一看这个标题,你可能会想,这又是一个AI智能体(Agent)框架。没错,它的核心确…...

发动机悬架系统场景下的多目标优化算法与最优控制算法【附程序】

✨ 长期致力于深度神经网络、深度学习、多目标优化算法、最优控制、主动悬置系统研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)基于深度神经网络与N…...

硬件工程师避坑指南:从原理到实战,搞定ESD防护设计与IEC 61000-4-2测试

硬件工程师避坑指南:从原理到实战,搞定ESD防护设计与IEC 61000-4-2测试 在北方干燥的冬季,脱下毛衣时噼啪作响的静电火花或许只是生活中的小插曲,但对于价值数百万的医疗设备或自动驾驶系统而言,同样的静电放电&#x…...

从Django后台到Celery Worker:一个完整用户注册邮件异步发送的部署实录

从Django后台到Celery Worker:一个完整用户注册邮件异步发送的部署实录 在Web应用开发中,用户注册流程是每个系统必备的基础功能。当新用户完成注册表单提交后,系统通常需要发送欢迎邮件或激活链接。如果直接在请求响应周期内执行邮件发送&am…...

第5章(补充) 张量宇宙学对黑洞奇点的解释——兼论奇点与大爆炸的统一机制

第5章(补充) 张量宇宙学对黑洞奇点的解释——兼论奇点与大爆炸的统一机制 摘要 黑洞奇点是广义相对论最著名的困境之一。奥本海默和斯奈德从爱因斯坦场方程出发,严格推导出大质量恒星引力塌缩会形成密度无穷大的奇点。然而,奇点的…...

NotebookLM摘要质量断崖式下滑?揭秘92%用户忽略的3个语义锚点校准技巧

更多请点击: https://intelliparadigm.com 第一章:NotebookLM摘要质量断崖式下滑的真相溯源 近期大量用户反馈 NotebookLM 生成的摘要出现关键信息遗漏、逻辑断裂与事实扭曲等现象,部分案例中摘要准确率较 2023 年底下降超 40%。这一退化并非…...

光模块PCB设计学习记录01

/*光模块布局,有错误可以指出,有不足可以补充*/ 光模块PCB布局规划 01导入板框与结构约束导入 这里的outline板框一般由机械提供.dxf文件,板框决定PCB尺寸、器件可用区域和接口位置;成功导入dxf文件后,打开Board Geo…...

跨平台图形API实战选型:从Vulkan、DirectX到Metal与WebGPU的架构抉择

1. 图形API的演变与现状 十年前我刚入行时,OpenGL还是图形开发的主流选择。记得第一次在Ubuntu上配置GLFW环境就花了整整两天,而现在Vulkan只需要几行命令就能跑起来。这种变化背后是GPU架构的革命性演进——从固定功能管线到可编程着色器,再…...

NotebookLM概念关联分析终极对照表,覆盖12类典型文档结构,99.2%的关联断裂问题可秒级定位

更多请点击: https://intelliparadigm.com 第一章:NotebookLM概念关联分析 NotebookLM 是 Google 推出的基于用户自有文档构建可信 AI 助手的实验性工具,其核心能力在于对上传 PDF、TXT 等文本进行语义理解与跨文档概念链接。它并非通用大模…...

2026年Java面试,不会背这些八股文真不行

Java 面试 Java 作为编程语言中的 NO.1,选择入行做 IT 做编程开发的人,基本都把它作为首选语言,进大厂拿高薪也是大多数小伙伴们的梦想。以前 Java 岗位人才的空缺,而需求量又大,所以这种人才供不应求的现状,就是 Java 工程师的薪…...

3个关键步骤解锁Switch隐藏功能:TegraRcmGUI图形化注入工具完整指南

3个关键步骤解锁Switch隐藏功能:TegraRcmGUI图形化注入工具完整指南 【免费下载链接】TegraRcmGUI C GUI for TegraRcmSmash (Fuse Gele exploit for Nintendo Switch) 项目地址: https://gitcode.com/gh_mirrors/te/TegraRcmGUI 想为你的Nintendo Switch解锁…...

我给 Codex 加上 Superpowers 和 OpenSpec 后,才开始真正理解 AI Coding 工作流

上一篇我写了 Codex 怎么参与 Good Plan 的开发过程。 那篇文章里,我真正想说的不是“Codex 帮我写了多少代码”,而是另一个感受:AI coding 真的进入项目以后,最考验人的地方,往往不是写代码本身,而是问题…...