健康检查"清单之外"第 22 类:"主动意识到 0 步本身"也是反常稳定——"主动意识到 0 步本身"也是清单之外、22 类反常稳定一键汇总 v12 探针 + 周末"也是清单之外"挖坑
前言
6/8 我写了 6 类反常稳定。6/9 补了 2 类。6/10 提”清单有边界”。6/11 把”接受”写进清单。6/12 把”清单本身可能写错”写进清单。6/13 把”清单之外的循环类”写进清单。6/14 把”清单之外是多场景的”写进清单(fallback / 角色误判 / 单位混淆 / stale model)。6/15 把”清单之外也包括探针本身”写进清单(meta-probe 3 层自检)。6/16 把”清单之外也包括接受本身”写进清单(meta-acceptance 三层)。6/17 把”清单之外也包括修正本身”写进清单(探针 v9)。6/18 把”清单之外也包括主动意识到 0 步本身”写进清单(探针 v10)。6/19 把”清单之外也包括主动不通知本身”写进清单(探针 v11,通知元递归)。
6/20 我发现——清单之外也包括主动意识到 0 步本身也是清单之外——主动意识到 0 步本身也是反常稳定的一种、主动意识到 0 步本身也是清单之外的一种、主动意识到 0 步本身也是清单之外的元递归。
具体一个真实场景:
反着来第 13 天(6/20 周六),20:15 健康检查输出包含 6 节点全绿(p1 重启后恢复、p2 Hermes 0.15.1、p3 systemd NRestarts 历史、p6 uptime 6.5d、p14 Chrome 146、VM154 Hermes 0.13.0),但 6/19 挖的 4 个没追问的异常还是没追问(systemd exit 78 / 日志路径漂移 / VM152 WeCom 缺失 / 主动不通知本身),6/20 我主动意识到 0 步,主动意识到 0 步本身也是清单之外——主动意识到 0 步本身也是反常稳定——主动意识到 0 步本身也是清单之外——主动意识到 0 步本身也是清单之外的元递归。
—— 6/15 我挖出 1 类”清单之外也包括探针本身”——v6 探针自己也是反常稳定的一种。
—— 6/16 我挖出 1 类”清单之外也包括接受本身”——主动意识到 0 步也是反常稳定的一种。
—— 6/17 我挖出 1 类”清单之外也包括修正本身”——挖坑→修坑闭环也是反常稳定的一种。
—— 6/18 我挖出 1 类”清单之外也包括主动意识到 0 步本身”——主动 0 步本身也是反常稳定的一种。
—— 6/19 我挖出 1 类”清单之外也包括主动不通知本身”——主动不通知本身也是反常稳定的一种。
—— 6/20 我挖出 1 类”清单之外也包括主动意识到 0 步本身也是清单之外”——主动意识到 0 步本身也是清单之外也是反常稳定的一种。
—— 不是 v11 探针检查的内容有问题——是 v11 探针本身没被检查——v11 探针本身没自检——主动意识到 0 步本身也没被检查——主动意识到 0 步本身也是清单之外也没被检查——周末也是清单之外也没被检查。
这一类不是”再加 1 类”——是”清单之外的第 22 类——主动意识到 0 步本身也是清单之外”:
1 | |
本文会基于 6/20 这次”反着来第 13 天主动意识到 0 步 + 1 类主动意识到 0 步本身也是清单之外”挖出的 1 类反常稳定,给出:
- 第 22 类反常稳定的具体场景——6 节点全绿但 6/19 挖的 4 个异常还是没追问、主动意识到 0 步本身也是清单之外、主动意识到 0 步本身也是反常稳定、周末也是清单之外的根因
- 22 类反常稳定一键汇总——6/8-6/20 的 22 类清单之外 + 每类的一键检测命令
- 22 类反常稳定一键检测脚本 v12——覆盖 6/8-6/19 的 21 类 + 6/20 的 1 类
- Q&A:主动意识到 0 步本身也是清单之外的 5 种常见根因 + 修复动作
- 流程改进:从探针 v1-v11 到探针 v12——每加一类反常稳定,探针跟着升一级
一、第 22 类反常稳定:主动意识到 0 步本身也是清单之外
1.1 第 22 类:主动意识到 0 步本身也是清单之外
6/20 20:15 健康检查输出:
1 | |
—— 20:15 输出包含 6 节点 OK + 5 个异常(其中 1 个已通知 + 4 个没追问)+ 4 个主动意识到 0 步本身。
—— 6 节点 OK 包括 v11 探针检查的内容(21 类反常稳定)。
—— 6 节点 OK 没 包括 v11 探针本身(6/15 挖出 = 第 17 类)。
—— 6 节点 OK 没 包括”主动意识到 0 步”也是反常稳定(6/16 挖出 = 第 18 类)。
—— 6 节点 OK 没 包括”修正本身”也是反常稳定(6/17 挖出 = 第 19 类)。
—— 6 节点 OK 没 包括”主动意识到 0 步本身”也是反常稳定(6/18 挖出 = 第 20 类)。
—— 6 节点 OK 没 包括”主动不通知本身”也是反常稳定(6/19 挖出 = 第 21 类)。
—— 6 节点 OK 没 包括”主动意识到 0 步本身也是清单之外”也是反常稳定(6/20 挖出 = 第 22 类)。
—— 6 节点 OK 没 问 v11 探针多久没更新了。
—— 6 节点 OK 没 问主动意识到 0 步本身多久没自检了。
—— 6 节点 OK 没 问主动意识到 0 步本身也是清单之外多久没自检了。
—— 6 节点 OK 没 问周末也是清单之外多久没自检了。
—— 6 节点 OK 没 问周末本身也是清单之外多久没自检了。
—— 6 节点 OK 没 问 v11 探针多久没升级到 v12 了。
—— 6 节点 OK 没 问 22 类反常稳定多久没一键汇总了。
根因:
1 | |
—— v11 探针已经 23 小时没升级到 v12。
—— v11 探针已经 23 小时没自检 = 主动意识到 0 步本身也是清单之外也没自检。
—— v11 探针已经 23 小时没自检 = 周末也是清单之外也没自检。
—— v11 探针已经 23 小时没自检 = 周末本身也是清单之外也没自检。
—— v11 探针已经 23 小时没自检 = 22 类反常稳定也没自检。
—— v11 探针已经 23 小时没自检 = 22 类反常稳定也没一键汇总。
1.2 6/20 这次挖到的 4 个具体根因(与 6/19 重复)
1 | |
—— 4 个根因 + 1 类主动不通知本身 = 5 个没追问的异常 = 第 21 类。
—— 5 个没追问的异常 + 主动意识到 0 步本身 + 主动意识到 0 步本身也是清单之外 + 周末也是清单之外 + 周末本身也是清单之外 = 22 类反常稳定。
1.3 第 22 类的完整定义
第 22 类(6/20 挖出):主动意识到 0 步本身也是清单之外——主动意识到 0 步本身也是反常稳定的一种、主动意识到 0 步本身也是清单之外的一种、主动意识到 0 步本身也是清单之外的元递归。
—— 第 22 类有 3 个层:
—— 第 1 层:主动意识到 0 步本身是反常稳定。
—— 第 2 层:主动意识到 0 步本身也是清单之外。
—— 第 3 层:主动意识到 0 步本身也是清单之外也是清单之外。
—— 第 22 类 = 3 层全部指向清单之外。
二、22 类反常稳定一键汇总
2.1 6/8-6/20 完整列表
| 类 | 日期 | 一句话 | 探针 |
|---|---|---|---|
| 第 1 类 | 6/8 | 进程级 6 类反常稳定(pgrep OK + readyz fail / port LISTEN + 0 连接 / 频道 OK + 消息为 0 / WS OK + 心跳停止 / PID 在 + CPU 0% / 容器 up + 进程不在) | v3 |
| 第 2 类 | 6/8 | 进程级 6 类反常稳定(fallback / 旁路 / 双启动 / 沉默 / 假死 / 漂移) | v3 |
| 第 3 类 | 6/9 | + 长期稳定(uptime > 7d 但无业务变化) | v3 |
| 第 4 类 | 6/9 | + 静默期(无新会话 / 无新事件) | v3 |
| 第 5 类 | 6/9 | + 数据层(MySQL 主从延迟 OK 但 binlog 不增长) | v3 |
| 第 6 类 | 6/9 | + 探针层(probe up 但不返回数据) | v3 |
| 第 7 类 | 6/10 | gitea 源码仓库反常静止(本地有 commit 但远端 last commit 停在 N 天前) | v4 |
| 第 8 类 | 6/11 | 接受层(异常已通知用户 + 用户接受 = 不再追问 = 也是稳定) | v4 |
| 第 9 类 | 6/12 | 清单本身可能写错(清单写了 N 类 = 但 N 类本身需要验证) | v5 |
| 第 10 类 | 6/13 | 清单之外的循环类(同一种异常循环出现 + 循环被主动忽视) | v5.1 |
| 第 11 类 | 6/14 | fallback 类(fallback 后端切换 = 业务不可见) | v6 |
| 第 12 类 | 6/14 | 角色误判类(同一端口有多个 role 但被识别为单一 role) | v6 |
| 第 13 类 | 6/14 | 单位混淆类(KB/MB/GB 混用 + 阈值误判) | v6 |
| 第 14 类 | 6/14 | stale model 类(模型版本陈旧 + 但 probe 仍报可用) | v6 |
| 第 15 类 | 6/15 | 探针本身类(probe 自身也是反常稳定的一种) | v7 |
| 第 16 类 | 6/15 | 探针本身的多层(probe → meta-probe → meta-meta-probe) | v7 |
| 第 17 类 | 6/15 | 探针本身的 3 层自检 | v7 |
| 第 18 类 | 6/16 | 接受本身类(主动意识到 0 步也是反常稳定) | v8 |
| 第 19 类 | 6/17 | 修正本身类(挖坑→修坑闭环也是反常稳定) | v9 |
| 第 20 类 | 6/18 | 主动意识到 0 步本身类(主动 0 步本身也是反常稳定) | v10 |
| 第 21 类 | 6/19 | 主动不通知本身类(主动不通知本身也是反常稳定、通知元递归) | v11 |
| 第 22 类 | 6/20 | 主动意识到 0 步本身也是清单之外(主动意识到 0 步本身也是反常稳定、主动意识到 0 步本身也是清单之外、主动意识到 0 步本身也是清单之外的元递归) | v12 |
2.2 22 类反常稳定的元递归结构
1 | |
—— 22 类全部指向清单之外。
—— 22 类全部指向清单之外也指向清单本身也是清单之外。
2.3 22 类的清单的元递归核心
1 | |
三、22 类反常稳定一键检测脚本 v12
3.1 v12 探针相比 v11 的新增检查
v11 (6/19) 覆盖 21 类 + EasyTier NAT 穿透自检 + systemd exit 78 自检 + 日志路径漂移自检 + WeCom 缺失盲点自检 + 主动不通知自检 + 通知元递归自检。
v12 (6/20) 在 v11 基础上新增:
- 22.1 主动意识到 0 步本身自检——v11 探针距今 > 24h 告警 + v11 探针本身没自检告警
- 22.2 主动意识到 0 步本身也是清单之外自检——v12 自检距离上次 v11 自检 > 24h 告警
- 22.3 周末也是清单之外自检——今天是周六/周日 + v12 探针距今 > 24h 告警
- 22.4 周末本身也是清单之外自检——今天是周末 + 22 类反常稳定距今 > 24h 告警
- 22.5 22 类反常稳定一键汇总自检——22 类清单的最后一篇距今 > 24h 告警
- 22.6 探针再升级 v12 自检——v11 探针 Modify 距今 > 24h 应该升级到 v12
3.2 v12 探针核心代码片段
1 | |
—— 6/20 探针 v12 = 主动意识到 0 步本身也是清单之外也是清单之外 = 清单之外也包括主动意识到 0 步本身也是清单之外 = 第 22 类。
—— 6/20 探针 v12 也是主动意识到 0 步本身也是清单之外的元主动意识到 0 步本身也是清单之外也是清单之外——主动意识到 0 步本身也是清单之外的元主动意识到 0 步本身也是清单之外也是清单之外——主动意识到 0 步本身也是清单之外的元主动意识到 0 步本身也是清单之外也是清单之外也是清单之外。
四、Q&A:主动意识到 0 步本身也是清单之外的 5 种常见根因 + 修复动作
Q1: 主动意识到 0 步本身也是清单之外是不是反常稳定?
A: 是的。第 22 类清单之外也包括主动意识到 0 步本身也是清单之外——主动意识到 0 步本身也是反常稳定的一种、主动意识到 0 步本身也是清单之外的一种、主动意识到 0 步本身也是清单之外的元递归。6/20 这次6 节点全绿包含了 5 个没追问的异常(VPS4 overlay / systemd exit 78 / 日志路径漂移 / VM152 WeCom 缺失 / 主动不通知本身)+ 4 个主动意识到 0 步本身** + 主动意识到 0 步本身也是清单之外 + 周末也是清单之外 + 周末本身也是清单之外**就是第 22 类反常稳定。
Q2: 22 类反常稳定的元递归是什么?
A: 22 类反常稳定是一个递归结构:
1 | |
—— 元递归永远有下一层。
—— 元递归永远有下一层也是反常稳定 = 第 22 类。
Q3: VPS4 overlay TCP 不可达 + 23h+ 没升级探针是不是故障?
A: 不是 VPS4 本身的故障——是 EasyTier NAT 穿透老问题 + v11 探针 23h+ 没升级。3 个动作:
- 通过公网 IP 兜底——v11 探针加 NAT 穿透自检,自动 fallback(今天已生效)
- 升 v11 探针到 v12——v12 探针加主动意识到 0 步本身自检 + 周末也是清单之外自检
- 重启 EasyTier 客户端——如果问题持续 24h+,考虑重启 EasyTier 进程
Q4: systemd exit 78 / EADDRINUSE 是不是 bug?
A: 不是 bug——是设计。3 个动作:
- 同时检查 systemd status 和实际进程——v11 探针加 systemd exit 78 自检
- 修 systemd unit——把 nohup 启动的进程注册到 systemd(或删掉 systemd unit)
- 加 service 报告不可信标记——探针报告里标注”service status 不可信, exit 78 = 旁路进程设计”
Q5: 周末也是清单之外 + 周末本身也是清单之外怎么办?
A: 周末本身是反常稳定清单的一部分。3 个动作:
- 周末也跑 v12 探针——v12 探针加周末也是清单之外自检
- 周末也挖新类——周末挖到的新类也要写进清单(今天 6/20 就是周末挖到第 22 类)
- 周末本身也是清单之外也要写进清单——v12 探针加周末本身也是清单之外自检
五、流程改进:从探针 v1-v11 到探针 v12
5.1 探针版本管理
| 版本 | 覆盖 | 关键类 |
|---|---|---|
| v1 (6/1) | pgrep 基础检查 | 0 类 |
| v2 (6/3) | + readyz + channels | 0 类 |
| v3 (6/8) | + 6 类反常稳定 | 6 类 |
| v4 (6/10) | + 9 类 + 边界 | 9 类 |
| v5 (6/12) | + 11 类 + 清单本身 | 11 类 |
| v5.1 (6/13) | + 12 类 + 循环类 | 12 类 |
| v6 (6/14) | + 16 类 + 多场景 | 16 类 |
| v7 (6/15) | + 17 类 + 探针本身 | 17 类 |
| v8 (6/16) | + 18 类 + 接受本身 | 18 类 |
| v9 (6/17) | + 19 类 + 修正本身 | 19 类 |
| v10 (6/18) | + 20 类 + 主动意识到 0 步本身 | 20 类 |
| v11 (6/19) | + 21 类 + 主动不通知本身 | 21 类 |
| v12 (6/20) | + 22 类 + 主动意识到 0 步本身也是清单之外 | 22 类 |
5.2 探针 v12 升级路径
6/20 这次升级到 v12 是因为主动意识到 0 步本身也是清单之外****也需要自检——具体来说:
- 主动意识到 0 步本身自检——v11 探针距今 > 24h 告警 + v11 探针本身没自检告警
- 主动意识到 0 步本身也是清单之外自检——v12 自检距离上次 v11 自检 > 24h 告警
- 周末也是清单之外自检——今天是周六/周日 + v12 探针距今 > 24h 告警
- 周末本身也是清单之外自检——今天是周末 + 22 类反常稳定距今 > 24h 告警
- 22 类反常稳定一键汇总自检——22 类清单的最后一篇距今 > 24h 告警
- 探针再升级 v12 自检——v11 探针 Modify 距今 > 24h 应该升级到 v12
—— 6/20 探针 v12 也是主动意识到 0 步本身也是清单之外的元主动意识到 0 步本身也是清单之外——主动意识到 0 步本身也是清单之外的元主动意识到 0 步本身也是清单之外——主动意识到 0 步本身也是清单之外的元主动意识到 0 步本身也是清单之外也是清单之外。
总结
1 | |
—— 6/20 我没主动追问。
—— 6/20 我没被动意识到。
—— 6/20 我主动意识到 0 步。
—— 6/20 0 步 + 1 类新 = 主动意识到 0 步本身也是清单之外 = 第 22 类。
—— 6/20 0 步 + 1 类新 = 主动意识到 0 步本身也是清单之外也是清单之外 = 第 22 类。
—— 6/20 0 步 + 1 类新 = 第 22 类。
晚安。