返回主 PPT
ALERT INTELLIGENCE

四层降噪 + 智能关联
让告警成为精准信号

从原始告警洪流 → 去重 → 收敛 → 风暴抑制 → 关联根因,
OpsDash 用四层算法把噪音降低 80%+,让运维团队聚焦真正的问题。

80%+
噪音消除
4
层降噪
BFS
关联算法
4
通知渠道
01 / 10
返回
OVERVIEW

四层降噪 架构

告警从产生到通知,经过 4 层算法过滤,每层有明确的职责和可调参数

1

去重 Dedup

相同事件重复触发时不产生重复记录,从根本消除告警噪音。

  • 来源事件一致 → 指同一告警
  • 设备 + 规则 + 指标 天然唯一
  • 内容指纹最后一道兜底
去重率 30%
2

收敛 Converge

滑动窗口内同设备同类型告警合并,更新计数器而非新建。

  • 5 分钟窗口自动合并
  • 保留原始次数,不丢信息
  • 确认即跳出收敛窗口
窗口 300s
3

风暴抑制 Storm

告警突发超过阈值即识别为风暴,抑制期内只发一次通知。

  • 5 分钟超 10 条自动进入风暴
  • 后续 10 分钟仅发 1 条总结
  • 恢复后自动解除抑制
阈值 10 条
4

关联分析 BFS

沿拓扑链路遍历,同一故障引发的所有下游告警归入同组。

  • 从根因沿链路广度遍历
  • 100 + 条告警 → 1 个根因组
  • 备份链路自动跳过去误报
算法 BFS
效果:一个核心交换机故障触发 100+ 条下游告警 → 聚合为 1 个告警组 + 根因提示,值班工程师从"处理 100 条"变成"确认 1 个根因"。
02 / 10
返回
LAYER 1 · DEDUP

去重:消除重复事件

同一事件多次触发时只保留一条;监控重试 / 网络抖动 / 多源重发都不会污染告警列表

三重识别,永不漏判
  • 来源事件一致 — 监控引擎原始事件重发保持指向同一条告警
  • 设备 + 规则 + 指标 — 自建规则的天然唯一组合,即使改名也认得
  • 内容指纹 — 标题 + 级别 + 对象综合指纹作为最后一道兜底
  • 双保险兜底 — 应用层去重 + 数据层唯一约束,零重复
典型场景:监控代理心跳抖动 · 网络重试 · 多源同时上报同一事件 —— 无论进来多少次,只在列表中保留一条。
30%
典型去重率
0
重复通知条数
< 10ms
单条判重耗时
去重前 vs 去重后
去重前 原始告警流
  • CPU 过载 · sv-web-01
  • CPU 过载 · sv-web-01
  • CPU 过载 · sv-web-01
  • CPU 过载 · sv-web-01
  • ...(瞬间 12 条)
去重后 用户可见
  • CPU 过载 · sv-web-01 × 12
03 / 10
返回
LAYER 2 · CONVERGE

收敛:滑动窗口合并

一台设备 CPU 抖动在 5 分钟内连续触发 8 次告警 → 合并为 1 条,notify 仅发一次

5 分钟滑动窗口 · 同设备同规则自动合并
t=0
t=1m
t=2m
t=3m
t=5m
● 原始告警 8 条 ■ 收敛后 1 条 (count=8, last_seen=3m52s) ✓ 只通知 1 次
300s
默认收敛窗口
>50%
典型场景消减比例
无重启
窗口时长在线可调
一键确认
确认后立即跳出合并窗口
收敛 ≠ 屏蔽:原始次数保留在 count 字段,工程师能看到"过去 5 分钟抖了 8 次"而不只是"抖了 1 次",既降噪又不丢信息。
04 / 10
返回
LAYER 3 · STORM

风暴抑制:短时洪流拦截

当告警产生速度异常(某设备 5 分钟内超过 10 条),自动识别为风暴,10 分钟内新告警被标记不再通知

触发条件
探测窗口
同一设备告警产生速率
5 min
阈值
超过即进入风暴态
10 条
抑制时长
新告警标记 storm_suppressed
10 min
通知
抑制期间仅发 1 条"风暴已触发"
1 次
可按需调优:窗口时长、阈值条数、抑制时长均可在后台按业务灵敏度调整,无需重启服务即时生效。
风暴场景可视化
0s2min↑ 10 条超阈值→ 抑制期15min
典型场景:核心交换机故障引发下游 50+ 告警 → 前 10 条触发风暴 → 剩余 40+ 条自动抑制 → 只推送 1 条"设备 sw-core-01 告警风暴,已触发"
05 / 10
返回
LAYER 4 · CORRELATION

关联分析:BFS 根因归组

利用拓扑关系,以故障根因为起点遍历下游链路,自动将同一故障引发的告警归入同一组

BFS 拓扑遍历示意
skip L0 根因 L1 L2
核心交换机
Server-01
Server-02
Backup
数据库
API GW
根因 down 受影响 degraded BFS 传播(蚂蚁线) Backup skip
算法要点
  • 同位置关联 — 同机房/同机柜内告警自动归组
  • 拓扑传播分析 — 从根因沿链路向下游扩散,找出所有受影响设备
  • 冗余链路识别 — 备份链路不计入传播,避免"主备切换"被误判为故障
  • 一键归组 — 同一故障引发的多条告警自动成组,告警数 100 → 1
  • 根因推荐 — 多维度加权评分,自动定位最可能的故障源头
价值:值班工程师看到的不是"100 条告警",而是"1 个告警组 + 根因提示:核心交换机 sw-core-01 端口 Gi0/1 Down"。
06 / 10
返回
RULES CONFIG

告警规则 创建

在告警规则页面可视化配置,支持设备/软件/自定义指标,覆盖全部 16 种监控协议

规则字段
监控指标
VictoriaMetrics 指标名
zabbix_system_cpu_util
目标类型
device / software / custom
device
告警级别
critical / warning / info
warning
条件运算符
> / < / >= / <= / ==
>
阈值
触发判定值
85
持续时间
连续满足条件的秒数
300
通知渠道
多选:邮件 / 钉钉 / 飞书 / 企微
钉钉 + 邮件
生效范围
全局 / 部门 / 机房 / 设备组
服务器组
规则示例
服务器 CPU 过载
监控项CPU 使用率
触发条件> 85% 持续 5 分钟
级别Warning
生效范围production 标签服务器
通知钉钉 ops-team + 邮件管理员
自动闭环:条件恢复后告警自动关闭,避免边界抖动来回刷新,也不用人工手动清理。
07 / 10
返回
NOTIFICATION

四渠道 通知 + 测试

4 渠道并发分发 + 自动重试,保证故障告警第一时间触达决策者

邮件
支持任意标准邮件服务器
HTML 富文本告警卡片
告警级别色标 + 上下文链接
钉钉
群机器人一键接入
ActionCard 交互卡片 · @ 值班
加签验证 · 防伪造消息
飞书
群机器人一键接入
交互式卡片 · 按钮快速操作
加签验证(可选)
企业微信
群机器人一键接入
Markdown 富文本消息
按群组分发不同部门
测试发送 + 通知记录:每个渠道可一键发送测试消息验证可达性;通知记录页回溯每条告警的分发状态(成功 / 失败 / 重试),分发闭环全程可审计。
08 / 10
返回
OPERATIONS

告警 处置 + 自动清理

从确认到解决的完整生命周期,系统自动维护数据的时效性

处置操作
  • 确认
    告警确认 — 记录确认人与时间,来源监控引擎同步反向回写状态
  • 解决
    resolve_alert — 进入已解决状态;自动回填 acknowledged_at 保证 MTTA 计算准确
  • 升级
    Escalation Policy — 告警超时未响应自动升级通知,MTTA 超标逐级推送负责人
  • 维护
    维护窗口 — 计划维护期内告警自动隐藏,支持一次性 / 周期性规则
  • 批量
    批量处置 — 勾选多条一键确认 / 解决,关联组一键清零
自动清理策略
陈旧告警自动解决 > 24 h
审计日志保留 180 d
回收站快照 30 d
凭据使用日志 30 d
风暴抑制状态 10 min
SLA 目标(默认):
· MTTA ≤ 15 分钟(告警响应时长)
· MTTR ≤ 2 小时(告警解决时长)
· 可按全局 / 部门 / 级别三级覆盖
09 / 10
返回
SUMMARY

核心 数字 一览

一眼把告警中心的所有关键指标记在心里

80%+
噪音消除
4
层降噪(去重/收敛/风暴/关联)
300s
收敛滑动窗口
10
风暴触发阈值
600s
风暴抑制时长
BFS
拓扑关联算法
4
通知渠道(Mail/钉/飞/企微)
180d
审计日志保留
"把 100 条 告警压缩为 1 个根因提示,让工程师专注于解决问题,而非处理通知。"
10 / 10