OpenClaw 有价值应用(2026-05-16):多Agent告警收敛与智能分诊流——把"告警风暴"变成"精准触达"

OpenClaw 有价值应用(2026-05-16):多Agent告警收敛与智能分诊流——把"告警风暴"变成"精准触达"

多Agent告警收敛与智能分诊流——把"告警风暴"变成"精准触达"

场景演示

深夜,运维群里突然炸了——

📩 10:02 DB-Server-01 CPU > 90%
📩 10:02 API-Gateway-03 响应时间 > 2s
📩 10:03 Payment-Service 错误率 2.3%
📩 10:03 Redis-Cluster-02 连接数上限
📩 10:04 Nginx-Upstream 504
……

5分钟,20+条告警涌进来。工程师手忙脚乱逐条查看,结果发现:根因只有一个——DB-Server-01的慢查询拖垮了整个链路的响应速度。

问题根源:告警没有收敛,全靠人肉去重。

用多Agent告警收敛与智能分诊流,告警进来 → Agent自动去重 → 根因分析 → 智能分诊 → 精准推送给对应负责人。全程无需人工干预,告警从20条压缩到1条。


Step by Step

第一步:建立告警采集Agent(采集层)

定时从监控系统(Prometheus、Zabbix、PagerDuty等)拉取未处理的告警事件,规范化后写入飞书Bitable作为待处理队列。

核心职责:

  • 定时轮询告警源(每分钟)
  • 统一告警格式:时间、级别、服务、指标、阈值、当前值
  • 去重基础版:相同服务+相同指标+10分钟内有记录的,标记为重复

第二步:建立告警收敛Agent(收敛层)

读取待处理队列,执行告警压缩与根因推断。

收敛策略:

  • 时间窗口合并:同一服务5分钟内的多条同类告警,合并为1条
  • 链路关联分析:调用链追踪(Jaeger/OpenTelemetry),找到链路中最先出现异常的节点
  • 根因推断:基于规则或AI判断是DB/中间件/网络/应用哪一层的问题
  • 影响评估:该告警影响了哪些上层服务/多少用户

收敛后,每组告警压缩成一条"告警组",包含:根因服务、影响范围、关联告警数量、建议第一时间动作。

第三步:建立告警分诊Agent(分诊层)

根据告警类型、级别、影响范围,自动匹配值班人和处理流程。

分诊规则:

告警级别触发条件分诊动作
P0 紧急影响核心业务+影响用户 > 10%立即电话+短信+飞书通知值班SRE,附带一键拉群
P1 高优影响核心业务或影响用户 1-10%飞书机器人@值班工程师,5分钟无响应升级
P2 中优非核心服务异常或影响用户 < 1%飞书Bitable记录,下一个工作日处理
P3 低优监控指标波动,无实际影响仅记录,不通知

智能优化点:

  • 夜间/节假日自动切换值班表
  • 告警认领机制:有人接单后自动取消升级
  • 重复告警抑制:同一根因30分钟内不重复升级

第四步:建立告警复盘Agent(闭环层)

告警处理完成后,触发复盘流程:

  1. 提取告警持续时长、响应时间、解决时间
  2. 自动生成告警复盘报告(时间线、根因、处理步骤)
  3. 更新知识库(知识条目→告警类型→标准处理SOP)
  4. 如果是已知根因,更新告警收敛规则的"已知根因库"

可复制提示词

告警收敛Agent提示词


你是一个告警收敛专家。读取以下告警列表,进行收敛处理:

## 收敛规则
1. 时间窗口:5分钟内同类告警合并为1组
2. 链路关联:找到调用链中最早异常的节点,作为根因
3. 影响范围:评估该告警影响多少服务和用户

## 输出格式(JSON)
{
  "group_id": "告警组ID",
  "root_cause_service": "根因服务名",
  "root_cause_type": "DB/网络/中间件/应用/未知",
  "related_alerts": ["告警1", "告警2"],
  "affected_services": ["服务A", "服务B"],
  "affected_users_pct": "估算影响用户百分比",
  "first_action": "建议的第一步动作",
  "priority": "P0/P1/P2/P3"
}

## 告警列表
{ALERT_LIST}

只输出JSON,不要其他文字。

告警分诊Agent提示词


你是一个告警分诊专家。根据以下告警组信息,决定分诊动作:

## 分诊规则
- P0:影响核心业务+用户>10%,立即电话+短信+飞书
- P1:影响核心业务或用户1-10%,飞书@工程师,5分钟无响应升级
- P2:非核心或用户<1%,Bitable记录,下个工作日处理
- P3:仅波动无影响,仅记录不通知

## 当前告警组信息
{ALERT_GROUP_INFO}

## 今日值班表
{ON_CALL_TABLE}

## 输出格式(JSON)
{
  "priority": "P0/P1/P2/P3",
  "action": "通知类型",
  "notify_to": "通知对象(姓名+联系方式)",
  "message": "告警通知内容(含根因、影响、建议动作)",
  "escalation_after_min": "无响应升级时间(分钟)",
  "create_ticket": true/false,
  "ticket_title": "工单标题"
}

使用的Skills

步骤技能用途
告警采集browser-automation登录监控系统抓取告警
告警采集feishu-bitable写入/读取告警待处理队列
告警收敛tavily-search查询同类告警的历史处理记录
告警分诊feishu-bitable查询值班表、写入工单
通知触达feishu_chat飞书消息/机器人通知
复盘闭环feishu-bitable更新知识库和SOP
定时调度OpenClaw cron每分钟触发告警采集

价值与注意事项

核心价值

  1. 告警压缩:从20+条降到1-2条,工程师不再"告警疲劳"
  2. 响应提速:P0告警从发现到电话通知,压缩到2分钟内完成
  3. 闭环可控:每个告警都有记录、有跟进、有复盘,知识库持续积累

避坑指南

  • 不要跳过收敛直接通知:未收敛的告警直接通知,等于制造新的噪音
  • 值班表必须维护:分诊依赖准确的值班表,节假日表必须提前更新
  • P0定义要严格:过度泛化P0范围会导致狼来了效应,工程师不再信任告警
  • 根因库持续积累:每次复盘后更新已知根因库,告警收敛准确率会越来越高

适用场景

  • 有多套监控系统的研发团队(Prometheus + Zabbix + 商业监控)
  • 告警疲劳严重的SRE/DevOps团队
  • 需要7×24告警值班的互联网公司
  • 告警通知渠道分散(飞书+钉钉+短信+电话)的复杂场景

本专栏聚焦OpenClaw在真实工作场景中的高价值应用,每周更新。

评论