数据库指标怎么采
MySQL 指标采集通常借助官方导出器:它连接数据库实例,把连接数、语句执行量、缓冲池使用与复制状态等指标暴露出来。数据库监控与主机监控不同,指标大多带实例与库的维度,需要单独设计看板与告警。
采集要占用连接
导出器本身要连数据库,因此需要独立账号并限制最大连接数。权限不足时部分指标会缺失而不报错,容易形成监控盲区;复制延迟等字段名还会随版本变化,看板适配要以实际的指标输出为准。
基本信息
| 默认端口 | 9104 |
|---|---|
| 连接方式 | 通过环境变量指定数据源连接串 |
| 账号要求 | 独立的监控账号,授予必要权限 |
| 指标开关 | 通过采集参数按需开启部分指标 |
典型使用场景
- 连接数监控:会话数接近上限前提前预警
- 吞吐观察:语句执行量的趋势与突增
- 复制监控:延迟与复制线程状态
- 缓存与缓冲池:命中率与使用率评估
- 慢查询趋势:结合数据库侧的慢日志分析定位
创建监控账号并运行
创建监控账号并运行
CREATE USER 'exporter'@'localhost' IDENTIFIED BY '***' WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
# 用环境变量提供连接串并启动
export DATA_SOURCE_NAME='exporter:***@(127.0.0.1:3306)/'
mysqld_exporter --web.listen-address=:9104常用指标
| 指标 | 含义 | 用途 |
|---|---|---|
| 实例可用性 | 实例是否可连接 | 最基础的存活告警 |
| 当前连接数 | 正在使用的会话数量 | 接近上限时预警 |
| 已处理语句数 | 累计执行的语句量 | 吞吐趋势 |
| 复制延迟 | 从库落后主库的时间 | 复制健康判断 |
| 缓冲池使用 | 缓冲池占用情况 | 内存与命中率分析 |
部署时的注意点
- 监控账号只授予必要权限,避免使用业务账号
- 限制导出器的最大连接数,防止采集本身打满连接
- 复制相关字段名随版本变化,看板要按实际输出适配
- 导出器与数据库之间的网络与超时要一并考虑
复制相关字段名与含义随版本变化:看板与告警适配时以实际指标输出为准,不要直接照搬旧版本的字段名。
权限不足时部分指标会静默缺失:看板看起来正常但含空值,需要用探针查询或对比指标条数来确认。