告警爆炸,根因定位困难?用DevOps Agent帮你自动查!
随着企业在亚马逊云科技上的工作负载日益复杂——Amazon EC2集群、Amazon RDS数据库、Amazon ECS/EKS容器、Amazon Lambda函数、网络与负载均衡等多种服务交织运行——运维团队面临严峻挑战告警爆炸Amazon CloudWatch、第三方监控Datadog、PagerDuty、Grafana等每天产生数百条告警涉及CPU、内存、磁盘、网络、错误率等数十种指标运维团队疲于应对。跨服务关联困难一个故障追溯可能需要人工从Amazon CloudWatch指标、Amazon CloudTrail操作记录、VPC Flow Logs、Config变更中逐一关联效率极低。响应延迟从告警触发到定位根因往往需要30分钟到数小时甚至更久。对于生产环境的P1故障每分钟的延误都意味着业务损失。知识难以沉淀资深工程师的排查经验分散在个人脑海和零散的runbook中团队扩张时知识传递成本高。多环境多区域管理跨Region、跨账户的故障排查更加复杂单靠人工难以全面覆盖。Amazon DevOps Agent正是为解决这些运维痛点而生。它是一个AI驱动的自主运维Agent能够自动接收来自任何亚马逊云科技服务的告警、跨服务关联数据Amazon CloudWatch指标、Amazon CloudTrail事件、Amazon Config变更、VPC网络日志等、执行深度根因分析并生成结构化的调查报告——整个过程无需人工干预。Amazon DevOps Agent介绍亚马逊云科技于2025年12月re:Invent大会发布Amazon DevOps Agent公开预览版Public Preview并于2026年3月31日宣布其正式可用。它是一款AI驱动的自主运维服务内置了对亚马逊云科技全栈服务的深度理解能够像一位资深SRE工程师一样自动接收告警、主动收集证据、跨服务关联分析并输出结构化的根因分析报告。正式可用版本还新增了对Azure云环境和本地基础设施的支持。核心能力全栈服务分析Agent自动构建应用拓扑Application Topology动态发现并映射亚马逊云科技账户中的资源及其依赖关系。无需预先指定服务列表Agent能自动调用相关Amazon API收集指标、日志和配置信息。正式可用版本还支持Azure和本地环境通过MCP。AI自主调查接收告警后Agent自主决定调查策略——先查什么、再查什么、如何关联——无需预定义runbook。调查范围涵盖Amazon CloudWatch指标与日志、Amazon CloudTrail操作记录、代码仓库、CI/CD流水线数据、部署历史等。深度根因分析不仅识别“发生了什么”更能分析“为什么发生”——从表面症状追溯到根因给出修复建议。例如CPU飙升→分析进程行为→追踪到SSM会话中的异常工作负载→建议升级实例类型。结构化输出调查结果以Markdown格式的Journal Records保存包含症状Symptom、发现Finding、观测数据Observation、调查缺口Gap和最终摘要Summary便于归档和审计。事件驱动集成调查生命周期通过EventBridge发布事件Investigation Created/Priority Updated/In Progress/Completed/Failed、Mitigation In Progress/Cancelled可与任何下游系统无缝对接。丰富的第三方集成原生支持Datadog、Dynatrace、New Relic、Splunk、Grafana可观测性、PagerDuty、ServiceNow事件管理、GitHub、GitLab、Azure DevOps代码/CI-CD、Slack通知。此外还可通过MCP协议对接自定义工具。安全与合规Agent通过IAM角色服务主体aidevops.amazonaws.com调用Amazon API所有操作可通过Amazon CloudTrail审计调查记录持久保存满足合规要求。多种触发方式Backlog Taskcreate_backlog_task异步模式Agent自主调查通过EventBridge通知完成。适用于自动化运维流水线、Amazon CloudWatch/自定义告警触发。Chatcreate_chatsend_message同步流式响应支持多轮对话Agent实时调用Amazon API。适用于交互式排查、实时问答、On-Call辅助。Webhook第三方POST到webhook URLAgent自动接收并智能判断是否需要调查。适用于对接PagerDuty、Datadog、Grafana、GitLab等。Demo方案架构本文以Amazon EC2 CPU告警作为演示场景展示完整的事件驱动架构。同一架构模式可直接适用于上述所有场景——只需调整EventBridge Rule的事件匹配模式和Lambda-A中的告警解析逻辑即可。该架构具有通用性——将Amazon CloudWatch Alarm替换为任意亚马逊云科技服务的告警源RDS、Lambda、ECS等即可复用同一套事件驱动流水线。架构图数据流8步1.EC2 CPU飙升stress --cpu 4模拟高负载。2.CloudWatch Alarm触发CPU80%持续2个评估周期状态OK→ALARM。3.EventBridge Rule-1匹配捕获aws.cloudwatch/CloudWatch Alarm State Change事件。4.Lambda-A触发调查调用create_backlog_task(taskTypeINVESTIGATION)5.DevOps Agent自主调查分析Amazon CloudWatch指标、Amazon CloudTrail事件、EC2配置5~15分钟。6.调查完成事件DevOps Agent发布aws.aidevops/Investigation Completed事件。7.Lambda-B获取结果调用list_journal_records()提取investigation_summary_md记录。8.聊天工具通知将Markdown格式的调查摘要发送到聊天工具群。Investigation Completed事件格式当调查完成时DevOps Agent自动向EventBridge默认总线发布以下事件{ source: aws.aidevops, detail-type: Investigation Completed, detail: { version: 1.0.0, metadata: { agent_space_id: f95eb69d-46e2-48c9-875f-07536fd3b4b2, task_id: 3bb4e347-e040-417c-ac57-b2ce0f2fe3b4, execution_id: exe-ops1-f5998e4d-4a48-442b-92f8-cadc22d8303f }, data: { task_type: INVESTIGATION, priority: HIGH, status: COMPLETED, created_at: 2026-04-07T04:58:05.356Z, updated_at: 2026-04-07T05:04:47.756Z, summary_record_id: f9072676-5b46-4139-afae-3d7a3762bac9 } }}左右滑动查看完整示意*注意事件源是aws.aidevops不是aws.devops-agentIAM action前缀也是aidevops。部署步骤环境变量配置export AWS_ACCOUNT_IDYOUR_AWS_ACCOUNT_IDexport AWS_REGIONus-west-2export EC2_INSTANCE_IDYOUR_EC2_INSTANCE_IDexport DEVOPS_AGENT_SPACE_IDYOUR_AGENT_SPACE_IDexport FEISHU_APP_IDYOUR_FEISHU_APP_IDexport FEISHU_APP_SECRETYOUR_FEISHU_APP_SECRETexport FEISHU_CHAT_IDYOUR_FEISHU_CHAT_ID左右滑动查看完整示意IAM角色与权限创建Lambda执行角色并添加DevOps Agent权限# 创建角色aws iam create-role \ --role-name DevOpsAgentDemoLambdaRole \ --assume-role-policy-document file://iam/lambda-role-trust.json# 添加基础执行权限aws iam attach-role-policy \ --role-name DevOpsAgentDemoLambdaRole \ --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole# 添加 DevOps Agent 权限注意前缀是 aidevopsaws iam put-role-policy \ --role-name DevOpsAgentDemoLambdaRole \ --policy-name DevOpsAgentAccess \ --policy-document { Version: 2012-10-17, Statement: [{ Effect: Allow, Action: [ aidevops:CreateBacklogTask, aidevops:ListJournalRecords ], Resource: * }] }左右滑动查看完整示意Lambda Layer最新boto3*重要提醒Lambda运行时内置的boto3不包含devops-agent服务必须通过Layer提供最新版本。mkdir -p /tmp/boto3-layer/pythonpip install boto3 -t /tmp/boto3-layer/python --upgradecd /tmp/boto3-layer zip -r /tmp/boto3-layer.zip python/ aws lambda publish-layer-version \ --layer-name boto3-latest \ --zip-file fileb:///tmp/boto3-layer.zip \ --compatible-runtimes python3.12左右滑动查看完整示意部署两个Lambda函数Lambda-A触发调查aws lambda create-function \ --function-name devops-agent-trigger-investigation \ --runtime python3.12 \ --handler lambda_a.lambda_handler \ --role arn:aws:iam::${AWS_ACCOUNT_ID}:role/DevOpsAgentDemoLambdaRole \ --zip-file fileb://lambda/lambda_a.zip \ --timeout 30 --memory-size 128 \ --layers ${LAYER_ARN} \ --environment Variables{DEVOPS_AGENT_SPACE_ID${DEVOPS_AGENT_SPACE_ID}}左右滑动查看完整示意Lambda-A关键代码收到CloudWatch Alarm事件后提取告警详情并调用DevOps Agent API创建调查任务。import jsonimport osimport boto3 DEVOPS_AGENT_SPACE_ID os.environ[DEVOPS_AGENT_SPACE_ID] def lambda_handler(event, context): detail event.get(detail, {}) state_value detail.get(state, {}).get(value, ) # 仅在 ALARM 状态时触发调查 if state_value ! ALARM: return {statusCode: 200, body: fSkipped: state{state_value}} # 提取告警信息 alarm_name detail.get(alarmName, Unknown) reason detail.get(state, {}).get(reason, N/A) metrics detail.get(configuration, {}).get(metrics, []) instance_id if metrics: dims metrics[0].get(metricStat, {}).get(metric, {}).get(dimensions, {}) instance_id dims.get(InstanceId, ) # 调用 DevOps Agent 创建调查任务 client boto3.client(devops-agent, region_nameos.environ.get(AWS_REGION, us-west-2)) response client.create_backlog_task( agentSpaceIdDEVOPS_AGENT_SPACE_ID, taskTypeINVESTIGATION, # 任务类型调查 titlefInvestigate: {alarm_name} - {instance_id}, priorityHIGH, # 优先级 descriptionfCloudWatch Alarm {alarm_name} triggered.\n fEC2 Instance: {instance_id}\n fReason: {reason}\n fPlease investigate the root cause., ) task response[task] # 返回 taskId 和 executionId调查已异步启动 return {statusCode: 200, body: json.dumps({ taskId: task[taskId], executionId: task[executionId], status: task[status], # PENDING_START })}左右滑动查看完整示意Lambda-B获取结果聊天工具通知aws lambda create-function \ --function-name devops-agent-notify-feishu \ --runtime python3.12 \ --handler lambda_b.lambda_handler \ --role arn:aws:iam::${AWS_ACCOUNT_ID}:role/DevOpsAgentDemoLambdaRole \ --zip-file fileb://lambda/lambda_b.zip \ --timeout 60 --memory-size 128 \ --layers ${LAYER_ARN} \ --environment Variables{DEVOPS_AGENT_SPACE_ID${DEVOPS_AGENT_SPACE_ID},FEISHU_APP_ID${FEISHU_APP_ID},FEISHU_APP_SECRET${FEISHU_APP_SECRET},FEISHU_CHAT_ID${FEISHU_CHAT_ID}}左右滑动查看完整示意Lambda-B关键代码收到Investigation Completed事件后调用list_journal_records获取调查摘要def get_investigation_summary(agent_space_id, execution_id): 从 DevOps Agent 获取调查摘要 client boto3.client(devops-agent, region_nameus-west-2) response client.list_journal_records( agentSpaceIdagent_space_id, executionIdexecution_id, ) # 在 records 中找 investigation_summary_md 类型Markdown 格式 for record in response.get(records, []): if record.get(recordType) investigation_summary_md: return record.get(content, ) returnNo investigation summary available. def lambda_handler(event, context): detail event.get(detail, {}) metadata detail.get(metadata, {}) agent_space_id metadata[agent_space_id] execution_id metadata[execution_id] # 获取调查摘要 summary get_investigation_summary(agent_space_id, execution_id) # 发送飞书通知富文本消息 token get_tenant_access_token() send_feishu_message(token, FEISHU_CHAT_ID, post, { zh_cn: { title: DevOps Agent Investigation Completed, content: [ [{tag: text, text: fTask: {metadata[task_id]}}], [{tag: text, text: summary}], ] } })左右滑动查看完整示意要点list_journal_records返回多种类型的记录其中investigation_summary_md是Markdown格式的完整调查摘要可直接用于通知展示。Journal Record类型一览investigation_summary_md完整调查摘要Markdown格式。investigation_summary结构化调查摘要JSON格式。symptom发现的症状。finding调查发现含根因。observation观测数据。investigation_gap调查中的信息缺口。messageAgent的对话消息。EventBridge规则Rule-1CloudWatch Alarm→Lambda-A。aws events put-rule \ --name DevOps-Agent-Demo-Alarm-To-Lambda \ --event-pattern { source: [aws.cloudwatch], detail-type: [CloudWatch Alarm State Change], detail: { alarmName: [DevOps-Agent-Demo-CPU-High] } } aws events put-targets \ --rule DevOps-Agent-Demo-Alarm-To-Lambda \ --targets Idtrigger-investigation,Arnarn:aws:lambda:${AWS_REGION}:${AWS_ACCOUNT_ID}:function:devops-agent-trigger-investigation左右滑动查看完整示意Rule-2Investigation Completed→Lambda-B。aws events put-rule \ --name DevOps-Agent-Investigation-Completed \ --event-pattern { source: [aws.aidevops], detail-type: [Investigation Completed] } aws events put-targets \ --rule DevOps-Agent-Investigation-Completed \ --targets Idnotify-feishu,Arnarn:aws:lambda:${AWS_REGION}:${AWS_ACCOUNT_ID}:function:devops-agent-notify-feishu左右滑动查看完整示意进阶Chat API实时对话除了异步的Backlog Task方式DevOps Agent还提供Chat API支持实时对话式交互。企业可以基于此功能将Devops Agent的能力集成至企业自己的运维系统或者通讯工具中。基本用法import boto3client boto3.client(devops-agent, region_nameus-west-2)# 创建聊天会话chat client.create_chat( agentSpaceIdYOUR_AGENT_SPACE_ID, userIdmy-user, userTypeIAM,)execution_id chat[executionId]# 发送消息并获取流式响应response client.send_message( agentSpaceIdYOUR_AGENT_SPACE_ID, executionIdexecution_id, contentWhat EC2 instances are running in this account?, userIdmy-user,)# 解析 EventStreamfor event in response[events]: ifcontentBlockDelta in event: text event[contentBlockDelta].get(delta, {}).get(textDelta, {}).get(text, ) if text: print(text, end, flushTrue)左右滑动查看完整示意EventStream事件类型send_message返回的是一个流式EventStream包含以下事件类型responseCreated响应开始。responseInProgressAgent正在处理。contentBlockStart新的内容块开始文本或工具调用。contentBlockDelta增量内容——textDelta文本或jsonDelta工具调用/结果。contentBlockStop内容块结束。heartbeat长时间操作的保活信号。responseCompleted响应完成。responseFailed发生错误。多轮对话与上下文保持使用相同的executionId可以进行多轮对话Agent会保持上下文# 第一轮列出实例response1 client.send_message(..., contentList all running EC2 instances.)# 第二轮基于第一轮结果追问Agent 记住了之前的实例列表response2 client.send_message(..., contentWhich one has the highest CPU?)左右滑动查看完整示意总结Amazon DevOps Agent代表了云运维领域的一个重要趋势从被动响应走向主动治愈。本文演示的是“告警→调查→通知”这一闭环的第一步而可以预见的演进方向远不止于此。自动修复层面Agent未来不仅能给出修复建议还能在人工审批后或在预设策略下自动地直接执行修复操作——扩容实例、回滚部署、调整安全组规则——从“告诉你怎么修”进化到“帮你修好”。预测性运维层面随着调查记录的持续积累Agent对特定业务环境的理解会越来越深入结合历史数据和趋势分析它将能够在故障真正发生之前识别风险并预警把运维模式从“事后灭火”推进到“事前预防”。覆盖范围层面Amazon DevOps Agent现已支持Azure和本地环境的接入Agent正在从亚马逊云科技单云工具演进为跨云、跨本地的统一智能运维中枢。AI Agent在运维场景的应用不是对现有监控工具的简单替代而是一次范式升级。它将运维从“人驱动、规则执行”的模式推进到“AI驱动、人审核”的新阶段。对于正在管理复杂云环境的团队来说现在正是拥抱这一变革的最佳时机——从一个Amazon EC2告警的Demo开始构建属于自己的智能运维体系。本篇作者张盼富亚马逊云科技解决方案架构师从业十三年先后经历过云计算、供应链金融、电商等多个行业担任过高级开发、架构师、产品经理、开发总监等多种角色有丰富的大数据应用与数据治理经验。加入亚马逊云科技后致力于通过大数据AI技术帮助企业加速数字化转型。Gao Yunyi亚马逊云科技生成式AI解决方案架构师负责亚马逊云科技的人工智能与机器学习、生成式AI方案及架构设计咨询。新用户注册海外区域账户可获得最高200美元服务抵扣金覆盖Amazon Bedrock生成式AI相关服务。“免费计划”账户类型确保零花费安心试用。星标不迷路开发更极速关注后记得星标「亚马逊云开发者」听说点完下面4个按钮就不会碰到bug了点击阅读原文查看博客获得更详细内容
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2628916.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!