1. 异常发现概述:什么是体量异常、异常检测在运维中的价值、课程整体架构与学习路径
各位同学好,我是老赵。做运维十几年,踩过的坑比吃过的盐还多。今天咱们开始聊一个非常实在的话题——体量异常自动发现与告警。
先问大家一个问题:你负责的系统,每天产生多少条监控指标?几百?几千?还是几万?我见过最夸张的一个客户,单是业务层的计数器就有两万多个。这么多数据,靠人眼看?不现实。靠固定阈值?更不现实。那怎么办?这就是咱们这门课要解决的核心问题。
1.1 什么是体量异常
体量异常,说白了就是系统某个维度的数据量突然变了。变多、变少、变平、变抖,都算。
举个例子。我去年帮一家电商公司排查过一个问题。他们的订单量在凌晨两点突然从每分钟 500 单掉到了 50 单。值班同学看了一眼,觉得「凌晨嘛,正常波动」。结果第二天早上发现,是数据库连接池被一个慢查询打满了。这就是典型的体量异常——量变了,但人没感知到。
体量异常通常分三类:
| 类型 | 表现 | 典型场景 |
|---|---|---|
| 突增型 | 指标值在短时间内大幅上升 | 流量突增、刷单、爬虫攻击 |
| 突降型 | 指标值突然断崖式下跌 | 服务宕机、限流、上游断连 |
| 波动型 | 指标方差变大,不再平稳 | 网络抖动、GC 异常、资源争抢 |
嗯,这里要注意:体量异常不一定是故障。有时候双十一的流量突增是正常的,但如果你没有提前识别出来,扩容跟不上,那就变成故障了。所以关键不是「异常」本身,而是你能不能第一时间知道它发生了。
1.2 异常检测在运维中的价值
我经常跟团队说一句话:没有检测,就没有运维。你连问题都不知道,怎么修?
异常检测的价值,我总结成三个层面:
- 缩短 MTTR(平均修复时间):早发现一分钟,可能就少损失几十万。我在项目中遇到过,一个支付链路超时的问题,人工发现花了 12 分钟,自动检测只用了 30 秒。这 11 分半钟的差距,就是价值。
- 降低告警风暴:很多团队被告警淹没了。一天几千条告警,最后没人看。好的异常检测能帮你把「噪音」过滤掉,只留真正需要关注的信号。
- 发现未知问题:固定阈值只能发现你「已知」的异常。但体量异常往往是「未知」的——你根本不知道什么量级算异常。机器学习类的检测方法,能帮你发现那些「你以为正常,其实不正常」的情况。
核心观点:异常检测不是替代运维人员,而是帮运维人员把精力从「盯屏」转移到「决策」上。你想想看,一个高级运维工程师,每天花 3 小时看监控图表,值吗?不值。这些时间应该用来做架构优化、容量规划、故障演练。
1.3 课程整体架构与学习路径
这门课一共 30 章,我把它分成四个阶段。先看一张图,帮你建立整体认知。
我个人建议的学习路径是这样的:
- 先打基础(第1-8章):别急着上模型。先把数据搞清楚——你的指标是什么类型?周期性强不强?有没有缺失值?这些搞不明白,再好的算法也是白搭。
- 再学算法(第9-18章):从简单的统计方法开始,逐步过渡到机器学习。我会给你讲清楚每个算法的适用场景和坑在哪里。比如孤立森林,很多人觉得它万能,其实它对高维稀疏数据效果很差。为什么?咱们后面细聊。
- 然后搞工程(第19-25章):算法跑通了,怎么上线?怎么保证实时性?告警太多怎么办?这一阶段全是实战经验。我曾经因为告警收敛没做好,被值班同学半夜打电话骂过——嗯,那之后我彻底重构了告警策略。
- 最后做实战(第26-30章):五个完整的案例,从数据采集到告警推送,全链路走一遍。你学完可以直接套用到自己的业务上。
给新同学的建议:如果你时间有限,至少把第1-8章和第19-22章看完。这两块是「性价比最高」的内容——花 40% 的时间,解决 80% 的问题。
1.4 你需要准备什么
这门课不需要你有多深的数学背景。高中水平的统计知识就够了。但你需要:
- 一台能跑 Python 的机器(建议 8G 内存以上)
- 基础的 Python 语法知识(会写 for 循环、会用 pandas 就行)
- 一点点 Linux 命令行基础(能 ssh、能看日志)
如果你这些都不会……嗯,我建议你先去补补基础,再回来。不然你会很痛苦,我也会很痛苦。
避坑提醒:不要试图在课程初期就搭建一个「完美」的异常检测平台。我见过太多人,花了两周搭平台,最后发现数据质量不行,全白干了。先跑通一个小闭环——一个指标、一个算法、一条告警——再逐步扩展。