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

18 阅读1分钟

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 同账号自动接入。其他工具需要手动配置集成:

# 概念示意
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 调用你的私有数据源。

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 服务)503 min~$75
中等(20 服务)2005 min~$500
大规模(100+ 服务)10005 min~$2,500

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

我的建议

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

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


参考: