跳到主要内容

MySQL 监控

用 Categraf MySQL 插件采集数据库运行指标,区分性能监控、业务 SQL 查询和夜莺自身的元数据库。

最后校对于

这页办完,你会采到 MySQL 的连接、运行状态等指标,并分清性能监控和业务 SQL 告警。 配置以 Categraf v0.5.17、夜莺 v9 为例。

先分清三种用途​

  • MySQL 性能监控:采集器连接 MySQL,读取运行状态,再把指标写到时序库。
  • 业务 SQL 告警:夜莺直接查询业务数据库,比如统计失败订单数,见 SQL 数据源。
  • 夜莺元数据库:保存用户、规则等配置,见数据库部署;它不自动替代前两条链路。

配置采集​

先完成 Categraf 安装与注册。准备能从采集机器连接 MySQL 的监控账号,再修改 conf/input.mysql/mysql.toml:

[[instances]]
address = "127.0.0.1:3306"
username = "monitor"
password = "replace-with-monitor-password"
parameters = "tls=false"
timeout_seconds = 3
gather_table_size = false
gather_slave_status = false
labels = { instance = "mysql-local:3306" }

替换地址、密码和唯一的实例标签。跨网络使用 TLS 时按实际证书调整,示例仅适合本地验证。 监控账号需要所启用查询的权限;复制状态、进程列表、表大小等附加采集的权限和开销不同,不要为省事直接使用 root。 需要复制状态时再启用对应选项,按 MySQL 版本确认 SHOW SLAVE STATUS 或 SHOW REPLICA STATUS 的支持。

多个目标配置多个 [[instances]],每个目标使用不同的 instance 标签。 完整选项见 v0.5.17 配置示例。

验证​

在 Categraf 安装目录执行:

./categraf --test --inputs mysql

预期结果:输出 mysql_ 前缀的指标,没有认证或 SQL 权限错误。 确认后重启现有 Categraf 服务,在夜莺即时查询中选择存储这些样本的数据源,查找 mysql_ 指标并核对实例标签。

在集成模板中选择 MySQL 对应的仪表盘和规则。指标不存在时先检查采集,不要直接启用缺失数据上的阈值告警。

业务指标​

订单量、失败任务数等不属于 MySQL 运行状态。 可以使用插件的自定义 SQL 查询,或让夜莺通过 SQL 数据源直接判定;两者分别适合“还要保存趋势”与“直接查询并告警”的需求。 查询使用只读账号,限制扫描范围和执行时间,避免监控 SQL 影响业务。

下一步​