完成 ARM 应用健康监控上线(07-27-arm-app-health-rollout)

这个提交包含在:
2026-07-27 23:20:26 +08:00
父节点 4b76bd0afd
当前提交 f908d2a46d
共修改 10 个文件,包含 252 行新增和 10 行删除
+8 -8
查看文件
@@ -57,14 +57,14 @@
- [ ] **EXTERNAL_GATED**:已真正停止一次源端 timer 或故意破坏一次传输,ARM dead-man 仅产生一条脱敏企微告警;恢复 finalize 后收到一次恢复通知,同一失败重复运行已降噪
- [ ] 若调整过 `BACKUP_RUN_AT`,已人工确认调整后的次日 UTC 分桶和 26 小时窗口,未把一次预期空窗误判为长期故障
- [ ] 本季度已由第二名内部人员按 runbook 首部恢复卡在 ARM 隔离目标完成影子恢复走查;timer 未自动恢复生产
- [ ] ARM 公网应用健康监控(未完成远端门禁前保持未勾选):
- [ ] 本地 `bash scripts/qa/run-app-health-monitor-contract.sh` 通过,且自动备份告警契约回归通过
- [ ] **EXTERNAL_GATED**:已批准 ARM systemd 写入,并确认复用 root-owned `0600` webhook;安装的是已通过自动备份回归的共用 helper 修订,不复制或输出 webhook 正文
- [ ] `install-offhost-app-health-monitor.sh install` 只安装 disabled units;应用健康 state/alert state 与备份 dead-man 完全独立
- [ ] 手工 oneshot 健康执行通过,输出不含地址、路径、响应 payload、凭证或原始异常
- [ ] **EXTERNAL_GATED**:另获批准后执行 `enable`,timer 为 enabled/active,oneshot service 平时 inactive,下一次运行不超过 5 分钟
- [ ] **EXTERNAL_GATED**:持续失败演练中第一次仅 pending、第二次只发一条、重复失败降噪、恢复只通知一次;未用“机器人能发消息”替代故障链路
- [ ] 已记录剩余风险:ARM 自身失效会使探测失声,首版没有第三方 dead-man
- [x] ARM 公网应用健康监控(2026-07-27 自动链路与群内收件验收通过):
- [x] 本地 `bash scripts/qa/run-app-health-monitor-contract.sh` 通过,且自动备份告警契约回归通过
- [x] 已批准 ARM systemd 写入,并确认复用 root-owned `0600` webhook;安装的是已通过自动备份回归的共用 helper 修订,未复制或输出 webhook 正文
- [x] `install-offhost-app-health-monitor.sh install` 只安装 disabled units;应用健康 state/alert state 与备份 dead-man 完全独立
- [x] 手工 oneshot 健康执行通过,输出不含地址、路径、响应 payload、凭证或原始异常
- [x] 已执行 `enable`,timer 为 enabled/active,oneshot 最近执行成功,下一次运行不超过 5 分钟
- [x] 持续失败演练中第一次仅 pending、第二次发送、重复失败降噪、正式恢复发送、重复健康降噪;用户确认群内收到一条故障和一条恢复通知
- [x] 已记录剩余风险:ARM 自身失效会使探测失声,首版没有第三方 dead-man
- [ ] 停机复制方案已冻结:旧 PostgreSQL 完全停止后复制到空新目录并保留所有权/权限/链接/扩展属性;旧目录原位保留且观察期内不再写入
## B. 发布(Deploy)
+3 -1
查看文件
@@ -340,10 +340,12 @@ RESTORE_SCOPE=shadow \
- 确认完整批次已经复制到异机/异盘,而不是仍只保存在应用主机。
- 准备独立 smoke 账号,避免使用老板、管理员或真实员工账号跑自动化。
## 1.6 ARM 公网应用健康监控(启用仍为 EXTERNAL_GATED)
## 1.6 ARM 公网应用健康监控(已启用)
应用健康监控与自动备份 dead-man 共用受控企微群机器人入口,但使用独立探测器、systemd units、probe state 和 alert state。它从 ARM 每 5 分钟访问公网 HTTPS `/ready`;连续两次失败才告警,一次成功即恢复。不得把它并入备份 receiver 的安装/卸载生命周期,也不得以本地测试通过代替 ARM 已启用证据。
2026-07-27 已完成 ARM disabled 安装、手工公网健康基线、timer 启用及不影响 OA 的真实故障/降噪/恢复演练;自动链路显示一条故障和一条恢复发送成功,用户确认群内实际收到两条消息。timer 最终 enabled/active、最近 service 成功,备份 dead-man 状态未变,临时上传和临时 sudoers 已删除。
先在仓库运行无真实消息合同:
```bash