Yes / Noshow slave status\G 得到的字段:
Replica_IO_Running: Yes、Replica_SQL_Running: Yes
返回内容是字符串文本,并非数值。
监控平台拿字符串和数字 5 做「不等于」判断:
字符串≠数字永远成立,本该一直告警,但平台做了类型校验、字符串无法和数字对比,逻辑判定失效,告警永远不会触发,这就是告警不生效的核心。5,和 MySQL 实际返回的Yes/No字符串类型不匹配;Yes=1、No=0 做数值映射,你没有对齐映射值。Last_IO_Error、Last_SQL_Error,仅监控线程启停会漏掉 SQL 报错导致线程静默卡死的场景。Yes → 数值 1,No → 数值 0
告警逻辑:线程不为 1(也就是变成 No、线程中断)则触发告警主从复制状态 / Slave_IO运行12次(采集间隔 1 分钟,连续 2 分钟异常再告警,避免瞬时抖动误报)Slave_SQL运行 规则完全一致:不等于 1 连续 2 次触发紧急告警。Yes区分判断:编辑告警时下拉框能否输入英文文本,能输文本就用方案 B;只能填写数字就用方案 A(映射 1/0)。
1 → 采用方案 A 填对比值1;Yes → 采用方案 B 字符串比对。stop replica io_thread;,等待 2 个采集周期,观察是否触发告警,验证配置有效性。Last_IO_Error:不为空则警告Last_SQL_Error:不为空则紧急告警
部分场景 SQL 线程依旧为 Yes,但是 SQL 报错堆积,最终数据不一致,只监控 Running 字段发现不了。5 和字符串Yes类型不一致,平台表达式解析失败,直接丢弃告警判断逻辑;字符串 != 数字5 属于非法运算,永远不会命中告警规则;REPLICATION SLAVE, REPLICATION CLIENT权限,权限不足会导致采集始终拿不到复制状态。| 监控指标 | 运算符 | 对比值 | 连续次数 | 告警等级 |
|---|---|---|---|---|
| Slave_IO 运行 | 不等于 | 1 | 2 | 紧急 |
| Slave_SQL 运行 | 不等于 | 1 | 2 | 紧急 |
ucenter这里,添加好了msyql数据库,可以看到数据库的指标,但是在监控模板里面设置告警阈值后,并没有受到相关告警(我确定指标已经在触发告警的范围内)
ucenter这里,添加好了msyql数据库,可以看到数据库的指标,但是在监控模板里面设置告警阈值后,并没有受到相关告警(我确定指标已经在触发告警的范围内)
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明