覆盖率衡量的是什么
巡检覆盖率衡量应检对象中有多少真正被检到,检漏统计则回答没检到的都是谁、原因是什么。两者都要求先有独立的目标台账作为分母,再与实际执行记录比对。分母若直接取自采集结果,覆盖率必然接近百分之百,问题会被统计口径本身吞掉。
基本信息
| 分子 | 采集成功且结果可判读的唯一目标数 |
|---|---|
| 分母 | 台账中处于在用状态且应受检的目标数 |
| 常见漏检原因 | 新增资产未纳管、目标不可达、凭证失效、清单过期 |
| 统计维度 | 按目标、按检查项、按周期分别统计 |
| 配套指标 | 采集成功率、结果有效率、异常占比 |
典型使用场景
- 周期复盘:看覆盖率曲线识别长期漏检的目标集合,而不是逐次追查单点失败
- 资产纳管核查:把自动发现结果与巡检清单比对,找出未纳管的增量设备
- 检查项检漏:同一批目标某些检查项长期失败,说明脚本与环境不匹配
- 合规举证:审计需要证明周期内应检对象全部被检过,必须给出清单级证据
- 退场确认:已下线目标未从清单移除会长期拉低覆盖率,需定期清理
覆盖率的四种口径
| 口径 | 分母 | 用途 |
|---|---|---|
| 目标覆盖 | 台账应检目标数 | 发现漏检设备与环境 |
| 检查项覆盖 | 应检项乘应检目标数 | 发现脚本不兼容与权限缺口 |
| 周期覆盖 | 本周期计划执行次数 | 验证巡检计划是否真被执行 |
| 有效覆盖 | 采集成功且结果可判读的次数 | 剔除假成功,反映真实可达性 |
用差集算漏检清单
用差集算漏检清单
# 台账与实际采集记录做差集,得到漏检清单
comm -23 <(sort inventory.txt) <(sort collected.txt) > missed.txt
# 对漏检目标归类原因,而不是只留一个失败数字
while read -r host; do
timeout 5 ping -c 1 -W 1 $host >/dev/null 2>&1 || echo $host unreachable
grep -q $host auth_errors.txt && echo $host credential-issue
done < missed.txt
# 覆盖率与漏检清单同期保存,便于按期对比
collected=$(wc -l < collected.txt)
total=$(wc -l < inventory.txt)
echo coverage ${collected}/${total}分母必须以台账为准,且台账要有纳管流程保证及时更新。已采集数除以已采集数得到的百分之百没有意义;反过来,长期停用却未下线的目标留在台账里,会让覆盖率永远上不去。
只报覆盖率不报漏检明细,等于把问题藏进一个百分比。审计与复盘真正需要的是漏检目标清单与原因分类,缺了它覆盖率无法驱动任何修复动作。