2. 监控策略总体架构:采集层、分析层、告警层、展示层
做证书监控,最怕什么?
最怕你搭了一套系统,结果该告警的时候没响,不该告警的时候刷屏。或者数据全堆在数据库里,没人看得懂。
我早年吃过这个亏。当时给一家金融客户做证书巡检,脚本写了一大堆,每天跑完往日志里一丢。结果有一天生产环境的证书过期了,业务中断两小时。复盘时发现——日志里其实三天前就记录了告警,但没人看。
从那以后,我养成了一个习惯:监控必须分层。每一层干每一层的事,层与层之间解耦。今天我们就聊聊这个四层架构——采集层、分析层、告警层、展示层。
核心原则:采集层只负责拿数据,分析层只负责算状态,告警层只负责通知,展示层只负责呈现。谁也别越界。
2.1 采集层:拿数据是第一要务
采集层是整个监控系统的地基。地基不稳,上面全是空中楼阁。
我个人习惯把采集方式分成三类:
- 主动扫描——定时去连目标设备的端口(比如 443、8443),拉取证书链。适合网络可达的设备。
- Agent 上报——在设备上装个小代理,定期把证书信息推送到中心。适合内网环境或防火墙后面的设备。
- API 拉取——从 CA 系统、Kubernetes、负载均衡器的管理接口获取证书元数据。适合云原生场景。
我的经验:别只依赖一种采集方式。我曾经遇到过一个客户,所有证书都靠主动扫描,结果某个子网防火墙策略变更,扫描全挂了,三天没发现。后来我建议他们加上 Agent 上报做兜底,双通道采集,再没出过类似问题。
采集层要拿哪些数据?我列个清单:
| 数据项 | 说明 | 采集频率建议 |
|---|---|---|
| 证书序列号 | 唯一标识,用于去重 | 每次采集 |
| 颁发者 / 使用者 | 区分 CA 证书和终端证书 | 每次采集 |
| 有效期(notBefore / notAfter) | 过期计算的核心字段 | 每次采集 |
| 签名算法 | 用于合规检查(如 SHA-1 预警) | 首次 + 变更时 |
| 密钥长度 | RSA 2048+ / ECC 256+ 等 | 首次 + 变更时 |
| OCSP / CRL 分发点 | 吊销状态检查用 | 每次采集 |
2.2 分析层:数据变信息
采集层拿到的只是原始数据。分析层要做的,是把这些数据变成有意义的状态。
说白了,就是回答几个问题:
- 这个证书还有多少天过期?
- 证书链是否完整?有没有中间证书缺失?
- 签名算法是不是已经过时了?比如还在用 SHA-1?
- 证书有没有被吊销?
- 域名和 SAN 跟实际使用场景匹配吗?
分析层我建议做成规则引擎的形式。每条规则只做一件事,规则之间不耦合。比如:
规则示例:
- 规则1:如果 notAfter - now < 30 天 → 状态 = "即将过期"
- 规则2:如果签名算法 == "SHA1WithRSA" → 状态 = "弱算法"
- 规则3:如果证书链深度 > 3 且缺少中间证书 → 状态 = "链不完整"
注意:分析层不要做告警。分析层只负责输出状态,比如 "即将过期"、"已吊销"、"合规"。至于这个状态要不要通知人,那是告警层的事。我曾经见过有人把告警逻辑写在分析脚本里,结果想改告警阈值还得改代码,非常痛苦。
2.3 告警层:该响的时候必须响
告警层是监控系统的"嘴"。嘴要会说话,但不能乱说话。
我总结了一个告警分级模型,你可以直接拿去用:
| 级别 | 触发条件 | 通知方式 | 响应要求 |
|---|---|---|---|
| P0 紧急 | 证书已过期 / 已被吊销 | 电话 + 短信 + 即时消息 | 15 分钟内处理 |
| P1 严重 | 距离过期 < 7 天 / 链不完整 | 短信 + 即时消息 | 1 小时内处理 |
| P2 警告 | 距离过期 7-30 天 / 弱算法 | 即时消息 + 邮件 | 24 小时内处理 |
| P3 提示 | 距离过期 30-60 天 / 合规检查项 | 邮件 / 日报 | 规划排期 |
避坑指南:我曾经遇到过一个告警风暴的问题。某个集群里 200 个节点共用一张证书,证书过期前 7 天,告警系统给每个人发了 200 条短信。后来我加了告警聚合——同一张证书的告警,不管关联了多少设备,只发一条,附带受影响设备列表。效果立竿见影。
告警层还要考虑升级策略。比如 P2 告警如果 24 小时内没人确认,自动升级成 P1,通知到更高级别的负责人。这个机制在节假日特别有用。
2.4 展示层:让数据会说话
展示层是给运维和运维领导看的。两者需求不一样。
- 运维想看什么?当前所有证书的状态列表、即将过期的证书、异常证书的详情。
- 领导想看什么?整体健康度、过期趋势、合规率、这个月比上个月好了还是差了。
所以我建议展示层至少包含这几个视图:
- 全局仪表盘——证书总数、健康度百分比、各状态分布(饼图或环形图)。
- 过期日历——按时间轴展示未来 90 天内过期的证书,一眼看出哪天是"高危日"。
- 证书详情页——点开一张证书,能看到完整的证书链、SAN 列表、最近变更记录。
- 合规报表——按部门或业务线统计合规率,支持导出 PDF 或 Excel。
我的建议:展示层不要做得太复杂。我见过有人把证书监控仪表盘做成了"数据大屏",各种动效、3D 旋转,结果真正有用的信息反而被淹没了。干净、清晰、一眼能看到问题——这才是好的展示层。
嗯,四层架构讲完了。你可能会问:这四层一定要分开部署吗?不一定。小规模环境可以合在一起,但逻辑上一定要分清楚。等规模大了,你会发现分层带来的好处——每一层都可以独立扩展、独立升级、独立排障。