MySQL Exporter 是 Prometheus 生态中用于监控 MySQL 数据库的核心工具,通过采集丰富的性能指标帮助用户分析数据库运行状态。以下是其关键指标分类及解读方法:
一、核心指标分类与解读
1. 数据库可用性与基础状态
- **
mysql_up**
值为1表示 MySQL 实例正常运行,0表示不可用。用于快速判断数据库是否存活。 - **
mysql_global_status_uptime**
数据库已运行时间(秒)。若突然归零可能表示实例重启,需结合告警规则监控异常重启。
2. 连接与线程
- **
mysql_global_status_threads_connected**
当前活跃连接数。若接近mysql_global_variables_max_connections(最大连接数),可能触发连接拒绝,需优化连接池或扩容。 - **
mysql_global_status_threads_running**
正在执行查询的线程数。持续高位可能表明查询阻塞或锁竞争。 - **
mysql_global_status_aborted_connects**
连接失败次数。突增可能由网络问题或认证错误引起。
3. 查询性能
- **
mysql_global_status_queries**
服务器执行的查询总数。通过 PromQLrate(mysql_global_status_queries[5m])计算 QPS,反映数据库负载。 - **
mysql_global_status_slow_queries**
慢查询数量。需结合long_query_time配置,突增时使用pt-query-digest分析具体 SQL。 - **
mysql_global_status_select_scan**
全表扫描次数。高值提示索引缺失或优化器选择不当。
4. InnoDB 存储引擎
- 缓冲池指标
mysql_global_status_innodb_buffer_pool_read_requests(读请求数)mysql_global_status_innodb_buffer_pool_reads(从磁盘读取次数)
命中率公式:(1 - reads/requests) * 100。低于 95% 需扩大缓冲池或优化查询。
- 锁竞争
mysql_global_status_innodb_row_lock_waits(行锁等待次数)mysql_global_status_innodb_row_lock_time_avg(平均等待时间)
高值表明事务并发冲突,需优化事务隔离级别或拆分热点数据。
5. 复制状态(主从架构)
- **
mysql_slave_status_seconds_behind_master**
从库复制延迟(秒)。非零值需检查网络或主库写入压力。 - **
mysql_slave_status_slave_io_running**
I/O 线程状态。0表示复制中断,需检查主从配置。
6. 资源使用
- 流量
mysql_global_status_bytes_received(入站)和mysql_global_status_bytes_sent(出站)。突增可能由大查询或数据导出引起。 - 文件描述符
mysql_global_status_open_files与mysql_global_variables_open_files_limit对比,接近上限需调整配置。
二、关键计算指标(PromQL 示例)
- QPS 计算
1rate(mysql_global_status_queries[1m])
- 缓冲池命中率
1(1 - rate(mysql_global_status_innodb_buffer_pool_reads[5m]) / rate(mysql_global_status_innodb_buffer_pool_read_requests[5m])) * 100
- 连接使用率
mysql_global_status_threads_connected / mysql_global_variables_max_connections * 100
三、实战应用场景
- 性能瓶颈定位
- 高 QPS 但低缓冲池命中率 → 优化查询或扩容缓冲池。
- 慢查询突增 → 使用
pt-query-digest分析日志并优化索引。
- 容量规划
- 连接数持续接近上限 → 调整
max_connections或引入读写分离。
- 连接数持续接近上限 → 调整
- 复制监控
- 延迟持续增长 → 检查从库 I/O 线程或主库写入批量。
四、指标采集注意事项
- 权限配置
Exporter 需 MySQL 用户授予SELECT(performance_schema、information_schema)、PROCESS和REPLICATION CLIENT权限。 - 安全优化
- 限制 Exporter 监听 IP,避免暴露
9104端口到公网。 - 使用专用监控用户并定期轮换密码。
- 限制 Exporter 监听 IP,避免暴露
通过以上指标,可全面监控 MySQL 的健康状态,结合 Grafana 仪表盘(如模板 ID 7362)实现可视化,并通过 Prometheus Alertmanager 设置阈值告警。
《MySQL Exporter采集的关键指标有哪些,如何解读这些指标?》 是转载文章,点击查看原文。