首页/数据/数据库速查/复制监控工具链选型
主从复制与高可用53 条

复制监控工具链选型

从轻到重三档:P_S 表 + 自研脚本 → mysqld_exporter + Prometheus/Grafana → Orchestrator/云监控;统一落到「双线程状态 + 延迟 + 错误」三组告警。

数据库速查数据更新于 2026-10-13

复制监控工具链是什么

复制监控按复杂度分三档:直接用 performance_schema 与 SHOW REPLICA STATUS 配自研脚本;用 mysqld_exporter 采集指标交给 Prometheus + Grafana;再用 Orchestrator 或云监控做拓扑级管理。不管选哪档,最终都要落到三组告警:两个复制线程是否在跑、延迟是否超过阈值、有无报错导致停止,缺一组就等于漏掉一类故障。

基本信息

最低成本方案performance_schema.replication_* 表 + 定时脚本
主流方案mysqld_exporter + Prometheus + Grafana + Alertmanager
拓扑级方案Orchestrator 或云数据库自带监控
核心告警IO/SQL 线程状态、延迟秒数、relay log 空间、复制错误号
采集频率15-60 秒足够,过密会增加实例开销
账号要求只读、最小权限,避免监控账号成为攻击面

典型使用场景

  • 值班告警配置:复制中断或延迟超标第一时间通知
  • 延迟趋势分析:判断是网络瓶颈还是从库重放能力不足
  • 大促前压测:观察高写入下从库延迟峰值
  • 故障复盘:用历史指标还原复制停止的时间点与原因
  • 容量评估:根据延迟与 relay 空间趋势决定是否加从库或升配

工具档位对照

方案适用规模特点
P_S + 自研脚本小规模零依赖,告警规则要自己写
mysqld_exporter中等规模Grafana 面板成熟,指标齐全
Orchestrator大规模多集群拓扑 API、可视化与切换能力
云监控云上实例开箱即用,但指标口径受厂商限制

自研脚本采集关键项

自研脚本采集关键项
# 每 30 秒采一次,输出便于接入任意告警系统
mysql -N -e "SHOW REPLICA STATUS\G" | grep -E 'Replica_IO_Running|Replica_SQL_Running|Seconds_Behind_Source|Relay_Log_Space|Last_SQL_Error'

# 用位点差计算真实延迟(避免 Seconds_Behind 失真)
mysql -N -e "SHOW REPLICA STATUS\G" | grep -E 'Read_Source_Log_Pos|Exec_Source_Log_Pos'

# 复制线程异常时直接退出码告警
mysql -N -e "SHOW REPLICA STATUS\G" | grep -q 'Replica_SQL_Running: Yes' || echo 'ALERT: sql thread stopped'

exporter 关键告警指标

exporter 关键告警指标
# 以下为常见指标名示例,实际名称随 exporter 版本变化
mysql_slave_status_slave_io_running == 0
mysql_slave_status_slave_sql_running == 0
mysql_slave_status_seconds_behind_master > 300
mysql_slave_status_relay_log_space > 10737418240
指标名随 exporter 版本调整(如 slave 与 replica 命名),配置告警规则前先看实际抓取到的指标名;用 --collect.slave_status 之类的开关控制采集范围,避免指标口径与面板不一致。
告警规则必须演练:阈值改完、静默期、值班切换都要验证通知能真正送到人手里。历史上最常见的失效模式不是指标采不到,而是告警发了没人收到。

易错点

  • 只监控延迟不监控线程状态:SQL 线程停掉后延迟值可能看起来正常,故障被掩盖
  • 只看 Seconds_Behind_Source:无写入或大事务场景下该值失真,应结合位点差与时间戳心跳
  • 监控账号给最高权限:泄露即失守,应使用只读最小权限账号
  • 告警阈值从未评审:低写入实例永远不告警、高写入实例天天误报,最终被忽略
  • 忽略 relay log 空间指标:空间写满导致复制停摆,业务侧才发现从库数据陈旧

数据来源与参考

  • Prometheus mysqld_exporter 文档
  • Orchestrator 项目文档

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌