这是 Beta 探索课程,内容结构、实验步骤和示例可能会继续调整。
日志监控告警
设计海量日志监控、链路追踪、告警系统
系统设计日志监控告警
系统演进路线
从人工查日志到生产级可观测平台
第 1 版
SSH 查日志
接口超时后,工程师登录机器翻 `app.log`。
本地日志grep人工排查
能定位单机问题,但多实例和历史检索几乎不可用。
第 2 版
集中采集
服务扩容后,日志分散在几十台机器上。
Agent缓冲队列日志解析检索存储
日志开始可搜索,但还不能主动发现异常。
第 3 版
指标与告警
故障总是用户先发现,需要从日志和埋点中提取信号。
QPS错误率延迟分位数告警规则值班通知
系统能主动叫醒人,但必须控制噪音和误报。
生产版
可观测平台
微服务链路复杂后,单条日志无法解释完整请求。
Trace ID链路追踪服务看板SLO复盘工单
生产可观测性要同时支持发现、定位、止血和复盘。
课程简介
系统总览
日志监控系统总览
从日志采集、清洗、存储、查询到告警,建立可观测性闭环。
采集
应用日志
指标事件
Agent
处理
清洗解析
索引构建
聚合统计
使用
查询面板
告警规则
故障定位
欢迎来到”系统设计 - 日志监控告警”课程。
系统规模变大以后,最可怕的不是服务出错,而是出错后没人知道、知道后定位不了、定位后无法判断影响范围。日志、指标、链路追踪和告警不是运维附属品,而是系统能否长期运行的基础能力。
这门课会从一次线上接口超时事故开始,逐步搭建一套可观测性平台。每一章都围绕一个具体问题展开:日志如何稳定采集、非结构化文本如何变成可查询字段、指标如何从日志中计算出来、告警如何避免噪音、链路追踪如何还原一次请求经过的服务、看板如何帮助团队协作。
课程会沿着一次线上故障的处理过程展开:最开始只能 SSH 上机器查日志;服务扩容后必须集中采集;故障不能再靠用户反馈,于是提取指标和告警;微服务链路复杂后,再补上 Trace、SLO、看板和复盘机制。每一步都是为了缩短发现、定位和恢复时间。
学习路线
- 日志监控概述:从线上故障出发,明确可观测系统要解决的三个问题:发现、定位、复盘。
- 日志采集:设计应用日志、Agent、缓冲、批量发送和失败重试机制。
- 日志解析:把文本日志转成结构化事件,统一字段、时间、级别和上下文。
- 指标计算:从日志和事件中提取 QPS、错误率、延迟分位数等可告警指标。
- 告警系统:设计规则、抑制、聚合、升级和值班通知,减少无效告警。
- 链路追踪:用 trace id 串起一次请求经过的服务、数据库和外部依赖。
- 可视化:把日志、指标、追踪和告警放到同一工作台,服务故障排查。
- 完整系统:回顾最终架构、关键决策、容量估算和上线检查清单。
学完后,你应该能从读者和工程师两个视角回答:一个服务出问题时,系统如何第一时间发现、如何定位根因、如何评估影响、如何沉淀复盘。
