Amazon DevOps Guru
利用机器学习自动检测 CloudWatch 指标和日志中的异常模式,提供根因推断和改进建议的 AIOps 服务
概述
Amazon DevOps Guru 是一项利用机器学习自动检测应用程序运营异常,并提供根因推断和具体改进建议的 AIOps 服务。它持续分析 CloudWatch 指标、CloudTrail 日志、Config 变更历史等,将偏离正常运营模式的情况作为洞察报告。无需人工即可检测 Lambda 函数冷启动增加、DynamoDB 限流、ECS 任务异常终止模式等无服务器和容器环境的运营问题。
洞察类型与异常检测机制
DevOps Guru 生成的洞察分为反应式洞察和主动式洞察两类。反应式洞察在检测到已发生的异常时生成。例如,当 API Gateway 延迟急剧上升时,它会关联分析相关 Lambda 函数的错误率增加和 DynamoDB 的限流,提示根因候选。主动式洞察检测当前尚未导致故障但放任不管会成为问题的征兆。例如 DynamoDB 表的容量消耗呈增长趋势,或 Lambda 函数的并发执行数接近上限等情况。异常检测的基础是使用 AWS 积累的大规模运营数据训练的机器学习模型。用户无需自行训练模型,只需启用服务即可自动开始基线学习。学习期通常为 1-2 周,期间也会生成洞察,但精度在基线建立后会提高。
覆盖范围设置与资源分组
DevOps Guru 的监控对象可以按 AWS 账户全体、特定 CloudFormation 堆栈或特定标签进行筛选。通常只监控生产环境的堆栈,排除开发环境的噪音。按 CloudFormation 堆栈指定时,堆栈中包含的所有资源(Lambda、DynamoDB、API Gateway、SQS 等)会自动添加到监控对象中。按标签指定时,例如只监控带有 `devops-guru:enabled=true` 标签的资源。资源分组直接影响异常检测的精度。将相关资源归入同一组,DevOps Guru 可以准确把握资源间的依赖关系,追踪故障链。在微服务架构中,按服务分离 CloudFormation 堆栈并将各自作为独立监控单元的设计非常有效。费用基于分析对象的 AWS 资源数按月计费,每个资源约 0.0028 美元/月。
通知渠道与运营工作流
DevOps Guru 的洞察通过 Amazon SNS 主题通知运营团队。设置 SNS 主题后,在新洞察生成、洞察严重度变更、洞察关闭时会发布消息。通过 SNS 经 Chatbot 转发到 Slack 频道,可以在团队日常沟通工具上确认洞察。还可以与 EventBridge 集成,根据洞察类型和严重度触发不同操作。例如,当严重度为 High 的反应式洞察发生时通过 PagerDuty 呼叫值班人员,Medium 以下仅发送 Slack 通知。在洞察详情界面中,显示检测到异常的指标图表、相关资源列表和推荐的处理方法。推荐事项包含 AWS 文档链接,引导到具体的配置变更步骤,即使经验不足的运维人员也能轻松判断应对方针。