4. 巡检前置条件:升级窗口确认、变更审批流程、巡检工具链准备
在启动服务目录平台容量水位巡检之前,必须完成三项前置条件:升级窗口确认、变更审批流程、巡检工具链准备。这三项条件决定了巡检能否在正确的时间、以合规的方式、使用可靠的数据进行。任何一项缺失,都可能导致巡检结果无效或升级过程受阻。
4.1 升级窗口确认
升级窗口是集群变更的“安全时间框”,容量巡检必须在该窗口内完成数据采集与评估。窗口确认包含以下要素:
| 确认项 | 说明 | 典型值/示例 |
|---|---|---|
| 窗口起始时间 | 允许开始变更操作的具体时间点 | 2025-04-15 02:00 UTC |
| 窗口结束时间 | 必须完成变更或回滚的截止时间 | 2025-04-15 06:00 UTC |
| 窗口时长 | 可用变更总时长(含巡检与执行) | 4 小时 |
| 巡检预留时长 | 从窗口内划出用于巡检的时间段 | 窗口前 30 分钟 |
| 业务低峰期标识 | 确认该时段业务流量处于日间最低水平 | QPS < 峰值的 10% |
| 窗口冲突检查 | 确认无其他并行变更或重大事件 | 无大促、无数据库割接 |
实践建议:在巡检脚本中增加窗口时间校验逻辑,若当前时间不在窗口范围内,自动中止巡检并输出告警。避免因时间错位导致巡检数据与变更环境不匹配。
4.2 变更审批流程
变更审批是运维合规的“安全锁”。容量巡检作为变更的前置步骤,必须纳入审批流程的节点中。标准审批流程包含以下阶段:
- 变更申请提交:填写变更单,包含集群版本、升级范围、影响面评估、回滚方案。
- 技术预审:SRE 团队审核变更方案的技术可行性,确认巡检前置条件已满足。
- 容量水位评估:执行巡检脚本,输出容量报告,作为审批附件。
- 变更审批:根据容量报告,审批人决定是否允许变更。
- 变更执行:审批通过后,在窗口内执行升级。
- 变更关闭:升级完成并验证后,关闭变更单。
注意:容量巡检结果若显示任一核心指标超过阈值(如 CPU 使用率 > 85%、内存使用率 > 80%),审批流程应自动拒绝变更,并要求先进行容量扩容或资源优化。
4.3 巡检工具链准备
巡检工具链是执行容量水位巡检的技术基础。本课程使用 Prometheus + Grafana + 自研巡检脚本 三件套。以下为各组件在巡检中的角色与准备要点:
| 组件 | 角色 | 准备要点 |
|---|---|---|
| Prometheus | 指标采集与存储 | 确认 Target 健康、指标 retention 覆盖窗口、采集间隔 ≤ 15s |
| Grafana | 指标可视化与告警 | 配置巡检专用 Dashboard、导入容量水位模板、验证数据源连接 |
| 自研巡检脚本 | 自动化巡检与报告生成 | 脚本部署、依赖安装、配置参数、输出格式(JSON/HTML) |
工具链集成流程:自研巡检脚本通过 Prometheus API 查询指标,将结果写入临时文件;Grafana 通过数据源读取同一指标集,提供可视化面板;脚本最终聚合数据生成巡检报告,并推送至审批系统。
4.4 自研巡检脚本准备清单
自研巡检脚本是工具链的核心执行单元。以下为脚本部署与配置的详细清单:
| 准备项 | 详细要求 | 验证方法 |
|---|---|---|
| 脚本部署路径 | /opt/sre/capacity-check/ | ls -la 确认目录存在 |
| Python 环境 | Python 3.8+,依赖 requests、pyyaml、jinja2 | python3 -c "import requests" |
| Prometheus API 地址 | 配置在 config.yaml 中,格式:http://prometheus:9090 | curl 测试 API 连通性 |
| 巡检指标列表 | CPU、内存、磁盘、网络、Pod 密度等 | 脚本 dry-run 模式输出指标列表 |
| 阈值配置 | 按环境(生产/预发/测试)分别配置 | 检查 config.yaml 中 threshold 段 |
| 报告输出格式 | JSON(供程序消费)+ HTML(供人工阅读) | 执行脚本查看输出文件 |
| 日志记录 | 输出到 /var/log/capacity-check/,保留 7 天 | 检查日志目录与轮转配置 |
快速验证命令:
# 测试 Prometheus 连通性
curl -s http://prometheus:9090/api/v1/query?query=up | head -20
# 巡检脚本 dry-run 模式
python3 /opt/sre/capacity-check/check.py --dry-run --config config.yaml
# 检查报告输出
ls -la /tmp/capacity-report-*.json
4.5 前置条件检查清单
在进入巡检执行阶段前,建议使用以下清单逐项确认:
- 升级窗口:已确认窗口时间、时长、业务低峰期标识,无冲突变更。
- 变更审批:变更单已提交,技术预审通过,巡检作为审批节点已配置。
- Prometheus:Target 健康、指标可用、采集间隔 ≤ 15s、retention 覆盖窗口。
- Grafana:巡检 Dashboard 已导入、数据源连接正常、告警规则已配置。
- 自研巡检脚本:部署完成、依赖安装、配置正确、dry-run 通过。
- 网络与权限:脚本所在节点可访问 Prometheus API,有权限写入报告目录。
关键提醒:前置条件检查应作为巡检脚本的启动前置钩子。若任意一项检查失败,脚本应输出明确的错误信息并退出,避免在条件不满足时执行无效巡检。