Module Document

基础架构 · 备份 / 监控 / 审计详细设计文档

基础架构 · 备份 / 监控 / 审计详细设计文档

版本: v0.1
日期: 2026-07-06
归属: 基础架构 / 备份 / 监控 / 审计

1. 模块定位与目标

为试产期所有关键数据、服务和操作提供可恢复、可观测、可追溯的保障底盘。备份保证数据不丢,监控保证异常可感知,审计保证操作可追责。

目标 说明
数据不丢 核心数据库、代码仓、制品仓每日备份,RPO ≤ 1 小时,RTO ≤ 4 小时。
异常可感知 关键服务宕机 / 资源告警 5 分钟内推送飞书,On-Call 可介入。
操作可追责 生产变更、高危命令、权限变更全部有操作人、时间、结果审计。
合规可导出 审计日志支持按时间段导出,满足内部合规和外部审查需求。

2. 执行计划

阶段 时间 交付物 Owner 工作量
P0 备份策略 0–14 天 核心数据库 / GitLab / 配置备份策略落地,验证恢复 云运维 1人×2周
P1 监控基础 15–35 天 Prometheus + Grafana 部署,核心 Node/K8S/DB 指标接入 平台运维 1人×3周
P2 告警接入 36–50 天 AlertManager + 飞书 Webhook 告警,On-Call 轮值配置 平台运维 1人×2周
P3 审计汇聚 51–75 天 操作审计日志(堡垒机/K8S Audit/GitLab/IAM)汇聚到 ES 平台运维 1人×3周
P4 日志平台 76–105 天 ELK/Loki 业务日志接入,异常检索和告警联动 平台运维+研发 2人×4周
P5 演练优化 106–150 天 季度灾难恢复演练,备份/监控/审计合规报告 云运维+安全 1人×3周

3. 困难点与复杂度分析

困难点 复杂度 应对
多云(阿里云+AWS+内网)统一监控汇聚 Prometheus 各环境独立采集,Thanos / Victoria Metrics 做跨区汇聚;Grafana 统一展示。
RTO 4 小时的恢复演练落地 备份恢复流程文档化,每季度做真实演练(恢复到隔离测试环境),演练报告留档。
审计日志量大,存储和检索成本 热数据 ES(90 天),冷数据 OSS 归档(1 年+),检索仅针对热数据,按需解冻冷数据。
告警噪音多导致 On-Call 疲劳 分级告警(P0/P1/P2),P0 电话/飞书双通道,P2 只邮件;建立告警复盘机制。
GitLab 备份恢复复杂(含 LFS/CI 数据) 使用 GitLab 官方 backup-cron,分 repo/config/uploads 分类备份,定期恢复验证。

4. 核心流程

flowchart LR
  subgraph Backup["备份"]
    A1["定时备份任务"] --> A2["导出 DB Dump / Git Bundle"]
    A2 --> A3["加密上传 OSS / S3"]
    A3 --> A4["备份校验 + 告警"]
  end
  subgraph Monitor["监控"]
    B1["Prometheus 采集"] --> B2["AlertManager 规则评估"]
    B2 --> B3{告警级别}
    B3 -->|P0| B4["飞书电话 + 消息"]
    B3 -->|P1| B5["飞书消息"]
    B3 -->|P2| B6["邮件"]
  end
  subgraph Audit["审计"]
    C1["操作事件(堡垒机/K8S/IAM)"] --> C2["日志采集 Agent"]
    C2 --> C3["ES 热存储(90天)"]
    C3 --> C4["OSS 冷归档(1年+)"]
  end

5. 系统架构

flowchart LR
  subgraph Sources["数据源"]
    DB["数据库"] 
    GITLAB["GitLab"]
    K8S["K8S Cluster"]
    BASTION["堡垒机"]
  end
  subgraph Collect["采集层"]
    PROM["Prometheus"]
    AGENT["Log Agent (Filebeat/Promtail)"]
    BACKUP_JOB["Backup CronJob"]
  end
  subgraph Store["存储层"]
    THANOS["Thanos / Victoria"]
    ES["ElasticSearch"]
    OSS["OSS / S3 (冷归档)"]
  end
  subgraph Present["展示 & 告警"]
    GRAFANA["Grafana Dashboard"]
    ALERT["AlertManager"]
    FEISHU_BOT["飞书 Bot"]
    KIBANA["Kibana / Grafana Loki"]
  end
  Sources --> Collect
  BACKUP_JOB --> OSS
  PROM --> THANOS --> GRAFANA
  PROM --> ALERT --> FEISHU_BOT
  AGENT --> ES --> KIBANA
  ES --> OSS

6. 关键技术决策

决策点 选择 理由
指标监控 Prometheus + Grafana 开源标准,K8S 原生支持,Exporter 生态成熟。
跨区指标汇聚 Thanos (首选) / VictoriaMetrics (备选) Thanos 与 Prometheus 无缝集成,支持跨区 Query。
日志收集 Filebeat / Promtail 轻量,与 ES/Loki 集成成熟,支持多源日志。
日志存储 ElasticSearch (热) + OSS/S3 (冷) ES 检索快,OSS 存储便宜;热冷分离控制成本。
备份存储 阿里云 OSS (国内) + AWS S3 (海外) 与各自云原生集成,备份异地存储满足容灾要求。
告警通道 AlertManager + 飞书 Webhook 团队已在飞书,告警直达,响应快。

7. 数据模型

模型 关键字段 说明
BackupJob idtargettypescheduleretentionlast_run_atstatus 备份任务定义。
BackupRecord idjob_idsizechecksumstorage_uriverifiedcreated_at 备份执行记录。
AlertRule idnameexprlevelchannelsilence_period 告警规则。
AlertEvent idrule_idtriggered_atresolved_atnotified_toack_by 告警事件。
AuditLog idactoractionresourceresultipsourceoccurred_at 统一操作审计。

8. 接口设计

接口 方法 说明
/backups/jobs GET 备份任务列表及最近执行状态。
/backups/records GET 备份记录查询,含校验状态。
/backups/restore POST 触发恢复到测试环境(需审批)。
/alerts/rules GET/POST 告警规则查询 / 创建。
/alerts/events GET 告警事件查询及 ACK 状态。
/audit/logs GET 审计日志查询,支持时间/actor/action 筛选。

9. 验收点

验收点 量化标准
备份覆盖 核心 DB / GitLab / 配置 100% 纳入备份,每日执行,校验通过。
恢复演练 每季度恢复演练,RTO ≤ 4 小时,RPO ≤ 1 小时,演练报告留档。
监控覆盖 核心服务 / Node / K8S / DB 指标 100% 接入 Prometheus。
告警时效 P0 告警 5 分钟内推送飞书,On-Call 确认 ≤ 15 分钟。
告警降噪 告警误报率 < 20%(按月统计),P2 以下不影响 On-Call 睡眠。
审计完整 生产变更 / 高危命令 / 权限变更 100% 有审计记录,可检索。

10. 风险与应对

风险 应对
备份未验证,恢复时发现损坏 每次备份后自动校验 checksum,每月抽样恢复验证,异常告警。
监控平台自身宕机(观测者失效) 监控组件高可用部署,另设心跳探测(外部 Uptime 工具)监控监控平台。
日志量爆炸导致存储费用失控 日志分级采集(ERROR 必采,DEBUG 按需),热数据 90 天 TTL 自动清理。
审计日志被篡改 审计日志写入后 append-only,不允许 update/delete,存储层权限最小化。