LESSON 7.5 / PRODUCTION

日志、监控、备份与恢复

上线后需要知道系统是否可用、哪里变慢、错误影响了谁。日志、指标和告警提供不同角度,恢复演练证明备份真的能用。

预计阅读约 25 到 40 分钟
完成结果为任务应用建立最小观测面板和一次恢复演练记录,故障时能从用户现象追到请求。
本课目标
  • 为任务应用建立最小观测面板和一次恢复演练记录,故障时能从用户现象追到请求。
  • 结构化日志、错误追踪和关键指标
  • 验证日志、监控、备份与恢复后,应当为任务应用建立最小观测面板和一次恢复演练记录,故障时能从用户现象追到请求,并保留权限响应、测试报告、证书状态、告警和恢复记录作为可重复检查的依据。
开始之前
  • 完成 7.4「域名、HTTPS、SEO 与可访问性」
01

FOUNDATION

必须理解

上线后你无法站在每位用户身边。日志、指标和告警让系统留下证据,备份与恢复则确保最坏情况发生时仍能找回关键数据。

本课依次讲清结构化日志、错误追踪和关键指标、健康检查、告警与服务依赖和数据库备份、恢复演练和回滚,最后通过“执行一次数据库备份并在隔离环境恢复验证”检查学习结果。

先建立整体直觉

运营一家店需要收银记录、监控仪表、异常报警和备用账本。只有顾客投诉后才知道停电,或者有备份却从没试过恢复,都不算可靠。

贯穿本课的实际场景

任务应用记录带请求 ID 的结构化错误,监控响应时间与失败率,对异常登录和数据库错误告警,并定期备份 PostgreSQL、演练恢复。

概念 1

结构化日志、错误追踪和关键指标

先用白话理解

日志记下某次具体事件和上下文,指标把大量事件汇总成趋势,追踪再把一次请求经过的多个服务串起来。它们都不能顺手记录密码和完整敏感数据。

基础概念

日志记录离散事件,指标把大量事件聚合为数值趋势,错误追踪收集异常与上下文。结构化表示字段稳定,便于搜索、关联和告警。

进一步理解

一条请求日志可有时间、级别、requestId、路由、结果和耗时;指标可统计成功率、延迟分位数与队列长度。

日志不能记录密码、完整令牌和无必要个人数据。requestId 可串联浏览器错误、服务端处理与下游请求,而不暴露秘密。

放进实际场景

创建任务失败时,前端显示 requestId;维护者用它找到接口异常、数据库超时和同一时间段失败率上升。

容易混淆的地方

日志多不等于可观测。没有稳定字段、上下文和查询方式的大量文本只会增加成本与隐私风险。

这一小节记住:记录能回答谁、何时、在哪里、发生什么和影响多大的必要证据。

概念 2

健康检查、告警与服务依赖

先用白话理解

好告警应该告诉你用户受到了什么影响,以及接下来能做什么。相比 CPU 偶尔升高,登录失败率、接口延迟和核心流程成功率往往更接近真实体验。

基础概念

健康检查回答服务当前能否履行基本职责,告警在关键指标越过阈值时通知负责者,服务依赖是应用运行所需的数据库、队列或外部 API。

进一步理解

存活检查确认进程存在,就绪检查确认能否接收流量。深度健康检查要谨慎,避免一次依赖波动让所有实例同时被判死。

好告警围绕用户影响、持续时间和可行动性设计。偶发 CPU 高不一定需要叫醒人,核心流程持续失败则应立即处理。

放进实际场景

任务 API 的就绪检查确认必要配置和数据库连接;告警关注五分钟创建成功率低于阈值,并附仪表盘与处理手册。

容易混淆的地方

健康接口返回 200 只证明检查内容通过,不证明每条业务流程都健康;告警也不是所有异常都发一条消息。

这一小节记住:监控最接近用户价值的信号,并让告警指向可以采取的行动。

概念 3

数据库备份、恢复演练和回滚

先用白话理解

备份文件存在不代表一定能恢复。你还要知道多久备一次、保存多久、放在哪里,以及实际恢复会丢多少数据、花多少时间。

基础概念

备份是数据的独立可恢复副本,恢复演练证明副本真的可用,回滚是把应用或配置切回稳定版本。RPO 描述最多可接受丢失多久数据,RTO 描述最多可接受恢复多久。

进一步理解

备份要规定频率、保留周期、存储位置、加密与访问权限。与生产放在同一故障域的副本可能一起丢失。

恢复必须在隔离环境定期演练并记录时间与校验结果。代码回滚不能撤销已发生的数据写入,数据库恢复也会影响恢复点之后的新数据。

放进实际场景

任务数据每小时增量、每日完整备份;季度在隔离库恢复,验证记录数量、关键关系和应用读取,并记录实际 RPO/RTO。

容易混淆的地方

看到备份任务“成功”不代表内容完整可恢复;回滚部署也不等于把数据库自动回到昨天。

这一小节记住:只有经过恢复验证的备份,才是可信的灾难恢复能力。

02

AI COLLABORATION

AI 如何参与

在日志、监控、备份与恢复这一课,AI 负责根据真实材料解释结构化日志、错误追踪和关键指标并指出遗漏,学习者负责控制范围、执行修改和核对权限响应、测试报告、证书状态、告警和恢复记录。

推荐协作顺序

  1. 1

    先把用户最重要的三条流程告诉 AI,让监控围绕它们设计。

  2. 2

    让它把每项日志、指标和告警对应到一个具体问题。

  3. 3

    拿一次模拟故障检验告警是否能指导动作,并演练从备份恢复。

可直接使用的 Prompt
这是脱敏日志字段、指标和用户故障描述。请按时间与请求标识关联证据,提出最小告警条件和恢复检查。不要要求生产秘密或用户正文,不把单次异常直接定为根因。
应该得到什么

方案规模与小产品匹配,关注登录和任务读写成功率,不引入过重平台;每条告警有负责人动作;日志、监控、备份与恢复的人工验收必须回到真实页面、请求、终端、测试或数据结果,不能用 AI 的文字说明代替。

人工检查清单

  • 确认日志脱敏、错误可关联、备份与生产分离,并明确实际恢复验证。
  • 让 AI 的诊断引用具体日志字段、指标时间窗和依赖状态,并标明缺失证据。
  • 实际制造可控失败与隔离恢复演练,确认告警到达、手册可执行、备份能读取。
03

COMMON TRAPS

常见误区

下面三类问题会让任务看似完成,却经不起刷新、错误输入或真实环境检查。先看现象,再找原因和修正方法。

误区 1

收集日志却不保护数据

你会看到
日志中出现令牌和用户正文
为什么发生
日志通常保存更久、访问者更多,敏感正文和凭证会扩大泄露面。
怎样纠正
只记录必要字段并脱敏
误区 2

告警过多没有优先级

你会看到
值守者逐渐忽略通知
为什么发生
无法行动的通知会持续消耗注意力,最终连重要告警也被忽略。
怎样纠正
只为可行动问题设置分级
误区 3

从未做恢复演练

你会看到
事故时才发现备份损坏
为什么发生
备份文件存在不代表能够读取和还原,问题往往到事故时才暴露。
怎样纠正
按计划在隔离环境还原
04

HANDS-ON

动手任务

为任务应用建立最小观测面板和一次恢复演练记录,故障时能从用户现象追到请求。

准备条件
  • 完成 7.4「域名、HTTPS、SEO 与可访问性」

跟着做

  1. 01

    为每次请求生成或传播 requestId。

  2. 02

    定义结构化日志字段和禁止记录清单。

  3. 03

    记录请求量、错误率和延迟三项基础指标。

  4. 04

    为登录失败激增和任务 API 高错误率建立告警说明。

  5. 05

    执行一次数据库备份并在隔离环境恢复验证。

完成标志

为任务应用建立最小观测面板和一次恢复演练记录,故障时能从用户现象追到请求。

加餐挑战

写一份 20 分钟故障处理卡:确认影响、止损、沟通、恢复、复盘分别做什么。

离开本课前,自问四件事

  • 日志、指标与错误追踪分别适合回答什么问题?
  • 存活检查、就绪检查和业务健康有什么区别?
  • 一个可行动告警至少应包含哪些信息?
  • RPO、RTO、备份、恢复演练与代码回滚如何关联?
完成本课了吗?

确认完成后,会同步更新学习中心的课程学习进度。