用途:将机器学习应用于运维指标异常检测,关联告警并降低误报。适用于告警量过大(>100 条/天)、需要检测多指标复杂异常、静态阈值因季节性失效、希望提前预测问题、需要关联告警定位根因、误报过多或需发现细微性能退化趋势的场景。
输入:必需为监控系统的时间序列指标(CPU、内存、延迟、错误率)与至少 30-90 天历史数据;可选告警历史标签、系统拓扑、日志数据、部署/变更事件。
主要能力与步骤:
- 环境与数据准备,安装依赖: python -m venv venv source venv/bin/activate pip install prophet scikit-learn pandas numpy pip install tensorflow keras pip install pyod pip install statsmodels pip install prometheus-api-client pip install plotly matplotlib seaborn
- 用 Isolation Forest 做多变量无监督异常检测,通常标记 0.5-2% 的点为异常。
- 用 Prophet 建模季节性并检测偏离,实际值落在 99% 置信区间外视为异常,并可生成容量规划预测。
- 用 DBSCAN 与依赖图关联告警、识别根因、生成事件摘要。
- 接入告警系统:高严重度触发 PagerDuty,中severity 发 Slack,低severity 仅记录,15 分钟内重复告警抑制。
- 部署为持续监控服务,每 5 分钟检测一次。
验证要点:历史数据无缺失时间戳、模型能检出已知异常、捕获日/周季节性、告警关联与根因正确、重复告警被抑制、严重度评分合理(0.5-0.9)、服务连续运行 7 天以上、误报率<10%、关键事件真阳性率>80%。
限制与常见坑:训练数据须为干净基线;忽略季节性会导致失败;阈值过敏感需从 99.5% 起调;缺失数据需插值处理;低严重度告警需过滤;忽略拓扑会漏掉级联故障;模型会漂移需每月或系统变更时重训;逐指标检测资源开销大,应优先关键服务或采样。相关技能包括 monitor-model-drift、monitor-data-integrity、setup-prometheus-monitoring、forecast-operational-metrics。