基于 ML 的运维异常检测 - 使用 Amazon DevOps Guru 在预兆阶段发现故障
解析使用 Amazon DevOps Guru 进行基于 ML 的运维异常检测。介绍 CloudWatch 指标自动分析、异常预兆检测、推荐操作及 CloudFormation 堆栈级监控。
运维监控的挑战与 DevOps Guru 的角色
云环境的运维监控通常通过设置 CloudWatch 指标、告警和仪表板来检测异常。但在监控对象达数百到数千指标的大规模环境中,为所有指标设置和维护适当阈值非常困难。此外,还存在单个指标阈值无法检测的复合异常 (如 CPU 正常但延迟逐渐增加且错误率也微增)。DevOps Guru 通过 ML 自动学习正常模式并检测偏差。
监控对象设置与异常检测
DevOps Guru 的监控对象通过两种方式指定。按 CloudFormation 堆栈指定时,仅监控特定堆栈 (应用) 包含的资源。可实现沿应用边界的监控,便于确定异常影响范围。监控整个 AWS 账户时,以账户内所有资源为对象。DevOps Guru 自动学习目标资源的正常行为模式,检测偏离正常范围的异常。
根因分析与推荐操作
DevOps Guru 的 Insight 包含异常根因推测和具体推荐操作。例如 Lambda 函数错误率增加时,与同期发生的 CloudFormation 部署事件或 Config 配置变更进行相关分析,推测「可能是最近的部署导致」。DynamoDB 节流被检测到时,推荐「将预置容量增加到 X」或「切换到按需模式」等具体操作。
与 CloudWatch Anomaly Detection 的使用场景区分
DevOps Guru 和 CloudWatch Anomaly Detection 都是基于 ML 的异常检测,但范围不同。CloudWatch Anomaly Detection 对单个指标设置异常检测带 (期望值范围),偏离时触发告警。需要逐指标设置,不进行多指标相关分析。DevOps Guru 自动分析多个指标的相关性,检测复合异常并推测根因。
DevOps Guru 的费用
DevOps Guru 按分析对象的 AWS 资源数计费。基于 CloudFormation 堆栈的分析每资源月费约 0.0028 美元,基于标签的分析约 0.0042 美元。100 个资源的环境月费约 0.28-0.42 美元,成本很低。Proactive Insights (预兆检测) 和 Reactive Insights (故障分析) 均包含在内。
总结 - DevOps Guru 的活用指南
Amazon DevOps Guru 是通过基于 ML 的自动分析在预兆阶段检测运维异常的服务。CloudWatch 指标自动分析、多指标相关分析、根因推测和推荐操作是其主要优势。通过 CloudFormation 堆栈级监控实现沿应用边界的异常检测,无需单个指标阈值设置因此导入简便。