构件
Lurus Witness · 见证
成熟度:早期试点回答一个问题:你环境里的这套系统现在是什么状态,以及我们对这个判断有多确定。
platform-corev1.4.2 正常版本来自服务自报 · 健康来自自省实证12 秒前
证据强度
同样是「正常」,分量不同。
platform-corev1.4.2 正常版本来自服务自报 · 健康来自自省实证12 秒前
app/postgres15.8 正常版本来自镜像标签 · 健康来自宿主证据(容器状态)40 秒前
客户自建 supabase? 正常(推断)版本未知 · 健康为黑盒推断(仅可达性)40 秒前
每个组件的版本和健康都必须附带来历,界面必须把来历显示出来。 我们不承诺全绿,只承诺每个绿点都标明它的证据强度。
版本从哪来:version.source
版本号从不单独出现。self_report 是组件自报;image_tag 读自镜像标签,只说明部署了什么;blackbox_inferred 从外部特征推测,不能用来判断升级了没有;unknown 显示为 ?,绝不显示成 latest。
组件返回 dev、unknown 这类占位字面量时,一律降级为未知。 很多组件本来就不自报版本,显示 ? 是准确,不是缺陷。
健康从哪来:health.evidence_class
introspected:组件自己的健康或就绪接口回答了。host:在它所在的主机上看到的,如容器状态、服务单元、磁盘用量、备份文件时间。blackbox:只有外部信号,如状态码、证书到期日、端口是否接受连接。
黑盒推断的「正常」只证明能连上,不证明功能对。连接失败也不算自省: 我们只知道连不上,证据降级为黑盒。
陈旧不是正常,未知不是故障
nginx vhost— 陈旧采集器 3 小时未上报 —— 这不是「正常」,是「不知道」
读数超过判定窗口 max(3 × 上报间隔, 180 秒) 即显示陈旧, 不沿用上一次的绿色。服务端判一次,大屏再用本机时钟判一次,取更悲观的结论。
探针自己的命令失败、超时或解析不出来,结果是未知,不是故障。 故障必须来自证据,比如容器报已退出、服务单元报失败。
三种看法
同一份只读数据,三种看法。
大屏:会议室投屏或电脑上盯。
浏览器打开,粘一次只读令牌。一个部署一段,段首写明采集器上次上报距今多久, 卡片按严重度排序:故障、降级、未知、陈旧、正常。
现状:已在我们自己的预发布环境常驻运行。
手机:随身、值班。
用手机打开同一块大屏,或在移动端扫运维出示的一次性绑定码。绑定码短时效,扫过即作废。
现状:手机端的接入链路还没有完成验证。
整机进内网:数据不出网。
汇聚服务整体搬进客户自己的网络,同一个二进制,只换配置和网络位置。 大屏在该部署的标题旁显示「数据不出网」。另一种形态是采集器向外推送快照, 被观测主机不需要开放任何入站端口。
现状:试点目前只运行在我们自己的环境里。安装包与镜像尚未公开发布; 采集器能交叉编译到国产 CPU 架构,但能编译不等于验证过,交付前需在目标环境实测。
恢复演练
备份可用,只认真恢复。
把备份真的恢复出来,再逐表核对行数。备份文件存在、压缩包校验通过、能列出目录,都不算。
演练怎么做
- 期望值从备份文件本身逐表数出来,不经过恢复路径。
- 恢复进一次性隔离容器:无网络、不映射端口,跑完连数据目录一起删除。
- 实际值逐表
count(*);附件另行核对文件数与元数据行数。 - 全部相等才算通过。期望清单为空不算通过,那说明判据本身失效了。
负对照:判据要能报失败
演练脚本带一个开关,故意用有缺陷的恢复流程再跑一遍,判据必须报失败。 一个从没见过它报失败的检查,不能当作证据。
这不是假设:我们遇到过恢复命令退出码为 0,关键表却恢复成 0 行。只看退出码,那次会被记成成功。
月度证据报告
每个数字旁边,写着它是怎么测的。
可用率分本机与外部两路并列;外部一路缺样本的时段记为「未采样」,不计为成功。
报告里有什么
- 外部探测每 5 分钟一次;报告同时写出成功、失败、未采样三个数。
- 备份恢复演练每月一次;最近一次演练超过 35 天,报告标为异常,不留空。
- 证书读线上实际在用的那张;备份写明校验方式。
- 指标在生成报告时现场采集,不含人工填写的数字;人工部分只有本月完成、下月计划、需要贵方配合三段文字。
为什么从另一台机器测
服务器自己探测自己,整机宕机时探针一起停,那段时间会被记成正常。测量与被测不能同源。
边界
它不是什么。
- 不是运维控制台。v1 没有任何写操作:采集器只发 GET / HEAD,唯一例外是提交自己的快照; 契约里预留的操作接口恒返回 501,界面上没有操作按钮。
- 不只认自家产品。组件可以是一套开源数据库、一个 nginx 站点、一张快过期的证书,不认识的类型照常显示。
- 不采集业务数据,也不是性能监控。按上报间隔观测,不叫「实时」。