DevOps Agent 接入实操:手把手配置 AI 自动排障,从告警到修复方案

DevOps Agent 接入实操:手把手配置 AI 自动排障,从告警到修复方案

配 AI 值班员,不是装个软件那么简单

上一篇聊了 on-call 的痛点。这篇进入实操------怎么把亚马逊云科技的 DevOps Agent 接入你的环境,让它开始替你值班。

先说结论:接入本身不复杂,核心在于想清楚让它看到什么、对接什么、输出到哪

接入前三个问题

  1. 可观测性工具是什么? CloudWatch 肯定有,但大多数团队还有 Datadog / Splunk / Grafana / Prometheus / New Relic / Dynatrace
  2. 工单和协作工具是什么? ServiceNow / PagerDuty / Slack
  3. 代码在哪? GitHub / GitLab / Azure DevOps

这三类工具决定了 DevOps Agent 的数据输入、触发方式和结果输出。

七步接入流程

第一步:开通

DevOps Agent 在亚马逊云科技控制台的 CloudOps 下。按秒计费,$0.0083/agent-second。不需要预付,用多少算多少。

开通后得到一个 Agent workspace------所有配置都在这里面做。

第二步:连接可观测性工具

这步决定 Agent 能看到什么。看不到的东西它查不了。

CloudWatch 同账号自动接入。其他工具需要手动配置集成:

yaml 复制代码
# 概念示意
integrations:
  - type: datadog
    api_key: ${DATADOG_API_KEY}
    app_key: ${DATADOG_APP_KEY}
    
  - type: splunk
    host: your-splunk-instance.com
    token: ${SPLUNK_HEC_TOKEN}
    
  - type: grafana
    url: https://your-grafana.com
    api_key: ${GRAFANA_API_KEY}
    
  - type: prometheus
    endpoint: https://your-prometheus:9090

注意:给 Agent 的凭证只需只读权限。它只查看 metrics/logs/traces,不需要写。

第三步:连接代码仓库

Agent 需要看到代码变更和部署时间线,才能把告警关联到具体的 commit。

支持 GitHub(GitHub App 授权)、GitLab(Access Token)、Azure DevOps(Service Connection)。

接入后它能看到:最近的 commit 和 PR、部署时间线、代码 diff。这些信息让它在排查时能直接说出"这个问题是今天下午 3 点那次部署引入的,具体在 commit abc123 的第 47 行"。

第四步:配置告警路由

两种模式:

模式一:ServiceNow 工单触发

复制代码
告警 → ServiceNow 创建 Incident → DevOps Agent 自动调查 → 结果回写工单

适合已有 ITSM 流程的团队。不改变现有告警路由,只在 ServiceNow 环节加一层 AI 调查。

模式二:直接告警触发

复制代码
CloudWatch Alarm / PagerDuty → DevOps Agent 直接启动调查

更轻量,适合小团队或没有 ServiceNow 的场景。

第五步:配置输出通道

Agent 调查完要推给人审。支持三个通道:

  • Slack:推到指定 channel,团队可以在 Slack 里追问。这个最灵活------不是单向推送,是可以对话的
  • ServiceNow:结果写到 Incident 的 Work Notes
  • PagerDuty:更新 Incident 状态

Slack 集成体验最好。你在 channel 里看到调查报告,觉得某个方向需要深入,直接 @ Agent 让它继续查。

第六步:MCP 扩展(进阶)

如果有内部工具不在官方集成列表------比如自研 CMDB、内部 wiki、自建部署系统------可以通过 MCP Server 接入。

MCP(Model Context Protocol)让 Agent 调用你的私有数据源。

python 复制代码
from mcp import Server

server = Server(\"internal-cmdb\")

@server.tool(\"get_service_dependencies\")
async def get_deps(service_name: str):
    \"\"\"查询服务依赖关系\"\"\"
    deps = await cmdb_client.query_dependencies(service_name)
    return {\"dependencies\": deps}

@server.tool(\"get_recent_changes\")
async def get_changes(service_name: str, hours: int = 24):
    \"\"\"查询最近的变更记录\"\"\"
    changes = await change_mgmt.query(service_name, hours)
    return {\"changes\": changes}

这意味着 Agent 的能力边界不限于官方工具列表。任何能暴露 MCP 接口的系统都能成为数据源。

第七步:学习循环冷启动

刚接入时 Agent 没有你环境的历史调查数据。前几周是冷启动期:

  • 每次调查完自动学习排障路径
  • 积累几十次后学习循环开始发挥作用
  • 类似场景再出现会复用已学到的排障技能

建议:冷启动期主动发起"练习赛"------挑最近的告警让 Agent 复盘,快速积累经验。不要只等自动触发。

实际效果参考

United Airlines 的数据:

  • 每天 50 万旅客
  • 38,000 个 Dynatrace OneAgent 监控混合云
  • 500+ AWS 账号,20,000 个 Lambda 函数

接入前:多工具跨域排查有盲区,凌晨还要拉会切工具。 接入后:Dynatrace 检测问题 → 定位应用层 → DevOps Agent 深入调查出修复方案 → 单一面板搞定。

安全注意事项

  1. 最小权限:集成凭证只给只读
  2. 网络隔离:MCP Server 部署在 VPC 内,PrivateLink 连接
  3. 审计:所有调查记录有完整 audit trail
  4. 修复审批:Agent 只给建议,执行需人批准(除非开启自动修复)

成本估算

场景 月调查次数 每次时长 月成本
小团队(5 服务) 50 3 min ~$75
中等(20 服务) 200 5 min ~$500
大规模(100+ 服务) 1000 5 min ~$2,500

对比 SRE 的人力成本,怎么算都划算。

我的建议

  1. 先小范围试:挑一两个最常出问题的服务接入,验证效果
  2. 从 Slack 开始:Slack 集成成本低,团队适应快
  3. 不急着开自动修复:先跑几周"只建议不执行"模式,建立信任
  4. 重视冷启动:前两周每天喂几个历史告警让它学

工具本身不难配,难的是让团队信任它。先让它在小范围证明价值,再逐步扩大。


参考:

相关推荐
yyuuuzz13 小时前
独立站的技术基础与常见运维问题
大数据·运维·服务器·网络·数据库·aws
代码N年归来仍是新手村成员2 天前
【AWS】Lambda 初识与服务部署
javascript·react.js·ai·node.js·云计算·ai编程·aws
zhojiew3 天前
在AWS裸金属实例上安装Cubesandbox并集成PydanticAI进行数据分析的实践
数据分析·云计算·aws
yyuuuzz3 天前
aws亚马逊云上运维常见问题梳理
运维·服务器·网络·云计算·aws
亚林瓜子4 天前
AWS S3日志桶常用过期文件生命周期策略
云计算·生命周期·aws·s3·过期·glacier
yyuuuzz4 天前
企业出海场景下的技术适配小经验
运维·服务器·网络·云计算·aws
yyuuuzz6 天前
国外云服务使用的常见技术问题梳理
运维·服务器·网络·数据库·aws
光于前裕于后7 天前
AWS Redshift 集成Zero-ETL和数据共享 Data sharing
云计算·etl·aws
zhojiew9 天前
在AWS中国区实现EKS跨VPC跨区域实现节点加入集群的实践
云计算·aws
认真的薛薛9 天前
Terraform: AWS VPC+可SSH登录EC2
ssh·aws·terraform