4. 巡检前置条件:升级窗口确认、变更审批流程、巡检工具链准备

在启动服务目录平台容量水位巡检之前,必须完成三项前置条件:升级窗口确认、变更审批流程、巡检工具链准备。这三项条件决定了巡检能否在正确的时间、以合规的方式、使用可靠的数据进行。任何一项缺失,都可能导致巡检结果无效或升级过程受阻。

4.1 升级窗口确认

升级窗口是集群变更的“安全时间框”,容量巡检必须在该窗口内完成数据采集与评估。窗口确认包含以下要素:

确认项 说明 典型值/示例
窗口起始时间 允许开始变更操作的具体时间点 2025-04-15 02:00 UTC
窗口结束时间 必须完成变更或回滚的截止时间 2025-04-15 06:00 UTC
窗口时长 可用变更总时长(含巡检与执行) 4 小时
巡检预留时长 从窗口内划出用于巡检的时间段 窗口前 30 分钟
业务低峰期标识 确认该时段业务流量处于日间最低水平 QPS < 峰值的 10%
窗口冲突检查 确认无其他并行变更或重大事件 无大促、无数据库割接
实践建议:在巡检脚本中增加窗口时间校验逻辑,若当前时间不在窗口范围内,自动中止巡检并输出告警。避免因时间错位导致巡检数据与变更环境不匹配。

4.2 变更审批流程

变更审批是运维合规的“安全锁”。容量巡检作为变更的前置步骤,必须纳入审批流程的节点中。标准审批流程包含以下阶段:

  1. 变更申请提交:填写变更单,包含集群版本、升级范围、影响面评估、回滚方案。
  2. 技术预审:SRE 团队审核变更方案的技术可行性,确认巡检前置条件已满足。
  3. 容量水位评估:执行巡检脚本,输出容量报告,作为审批附件。
  4. 变更审批:根据容量报告,审批人决定是否允许变更。
  5. 变更执行:审批通过后,在窗口内执行升级。
  6. 变更关闭:升级完成并验证后,关闭变更单。
注意:容量巡检结果若显示任一核心指标超过阈值(如 CPU 使用率 > 85%、内存使用率 > 80%),审批流程应自动拒绝变更,并要求先进行容量扩容或资源优化。

4.3 巡检工具链准备

巡检工具链是执行容量水位巡检的技术基础。本课程使用 Prometheus + Grafana + 自研巡检脚本 三件套。以下为各组件在巡检中的角色与准备要点:

组件 角色 准备要点
Prometheus 指标采集与存储 确认 Target 健康、指标 retention 覆盖窗口、采集间隔 ≤ 15s
Grafana 指标可视化与告警 配置巡检专用 Dashboard、导入容量水位模板、验证数据源连接
自研巡检脚本 自动化巡检与报告生成 脚本部署、依赖安装、配置参数、输出格式(JSON/HTML)
工具链集成流程:自研巡检脚本通过 Prometheus API 查询指标,将结果写入临时文件;Grafana 通过数据源读取同一指标集,提供可视化面板;脚本最终聚合数据生成巡检报告,并推送至审批系统。
巡检工具链架构图 Prometheus 指标采集与存储 Grafana 可视化与告警 自研巡检脚本 自动化巡检与报告 数据流说明 1. 自研巡检脚本通过 Prometheus HTTP API 查询指标(/api/v1/query_range) 2. Grafana 通过 Prometheus 数据源读取同一指标集,提供实时 Dashboard 3. 脚本聚合数据生成巡检报告,推送至变更审批系统 巡检报告 变更审批系统

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,有权限写入报告目录。
关键提醒:前置条件检查应作为巡检脚本的启动前置钩子。若任意一项检查失败,脚本应输出明确的错误信息并退出,避免在条件不满足时执行无效巡检。