盘点监控系统中的告警智能降噪方案

本文涉及的产品
对象存储 OSS,20GB 3个月
阿里云盘企业版 CDE,企业版用户数5人 500GB空间
日志服务 SLS,月写入数据量 50GB 1个月
简介: 在监控场景下,一旦出现告警风暴,告警本身就失去了意义和价值。因此需要有一套方案,帮助用户在不遗漏重要告警前提下,有效减少告警数量。本文主要调研了业界常见的监控/告警系统中使用到的智能算法降噪方案。

背景

运维监控系统/平台,一般是通过配置固定阈值或条件,达到阈值或满足特定条件后自动触发/生成告警。如网络中断、闪断、系统升级更新等。在设备多、监控内容多等情况下,可能会产生海量告警。以下为告警管理常见问题:

  • 故障期间,告警风暴,手机/邮箱会被海量告警淹没;
  • 运维人员很难从海量告警从筛选出重要告警,容易忽略重要告警;
  • 固定阈值控制,频繁误报、漏报告警;
  • ...

在监控场景下,一旦出现告警风暴,告警本身就失去了意义和价值。因此需要有一套方案,帮助用户在不遗漏重要告警前提下,有效减少告警数量。

如果把监控告警放到机器学习领域,它是一个典型的机器学习回归问题,是一个牺牲准确率,满足召回率的场景,即宁可多报、误报,也不遗漏告警。而告警降噪的目的就是在保证所有重要告警成功报出的前提下,尽量减少重复、无意义的告警(噪音)。换言之,是保证告警召回率接近 100%的前提下,尽量提升准确率(有意义、不重复的告警)。


告警降噪机制

告警降噪主要有三种机制:

  1. 自定义规则降噪
  1. 自动去重(第一种机制的子集,简化版)
  • 通过一个或一组字段的集合来标识一个告警的ID,ID取值相同的告警被视为同一类告警。Moogsoft中的Deduplicate机制便是属于此类型。
  • 指定时间窗口内,相同ID的告警会被合并。
  • ID标识和时间窗口可由用户自定义,也可系统内置。
  1. 智能算法降噪(本文的主题)
  • 智能降噪的原理是以历史数据预测当前状态。通过历史的告警数据来预测当前新来的告警是否需要被过滤掉。
  • 可供选择的算法模型包括经典统计模型比如相似度模型、分类模型、预测模型,或机器学习回归模型等。

前两种降噪机制需要用户手工配置规则和参数,第三种智能算法降噪则不需要用户过多的配置。

本文主要调研了业界常见的监控/告警系统中使用到的智能算法降噪方案。


常见监控/告警管理系统中的智能降噪方案

一、Moogsoft

Moogsoft提供了一个关联引擎(Correlation Engine)来将相似的告警合并为一个事件(Incident)

1.png

其算法总体流程如下:

  1. (可选) 用户选择告警内容中的一组指定字段,并且为这一组或每个字段分别配置相似度阈值;
  2. 告警触发后,如果是首次触发,则直接发送告警通知;
  3. 如果不是首次,则将该告警的指定字段值与历史告警的指定字段值计算相似度,如果相似度高于用户设定的阈值,则认定为重复告警,自动静默该告警。
  4. 如果用户不配置特定字段。使用告警的全文本来进行相似度计算。

2.png

通过上述流程,相似的告警在一定的时间窗口内将被聚合为一个告警事件(Incident),从而达到减少重复告警数量(降噪)的效果。


二、Azure Monitor

Azure Monitor在其告警管理模块提供了一个智能组的功能,用于进行告警的智能降噪。其官网描述如下:

“智能组是使用机器学习算法自动创建的,用于将表示单个问题的相关警报组合在一起。 某个告警触发后,智能组会根据历史模式、相似属性和相似结构等信息,将其添加到新智能组或现有智能组。同一个智能组的告警,在一定时间窗口内,不会被重复通知。 ”


其主要的智能降噪方法有2种:

  1. 计算告警之间的相似度,包含:
  1. 文本相似性
  2. 告警结构相似性
  1. 挖掘历史告警数据中的共现关系,对告警进行合并。

相似的告警或在历史数据中频繁共现的告警,将被分配到一个智能组之中。对于对警报进行故障排除的人员来说,智能组不仅可以通过将相关警报作为单个聚合单元进行管理来降低噪音,还可以引导他们找到其警报的可能共同根本原因。


下面是Azure Monitor智能组的一个例子:

  • 如果某个订阅中多个虚拟机上的 % CPU 同时达到峰值导致生成许多单独的警报,并且如果此类警报在过去的任何时间一起发生,则这些警报可能会被分组到一个智能组中,从而表明存在潜在的共同根本原因。

3.png


三、PagerDuty

PagerDuty中的事件智能组件(PagerDuty Event Intelligence),通过内置的自适应机器学习算法,可以有效地降低告警噪声,让开发运维人员专注在处理重要事件上,避免无意义的告警风暴。

4.png

其智能降噪算法的核心是一个支持用户反馈的自适应机器学习模型,该学习模型主要由两部分组成:

  1. 文本相似度模型
  • 利用告警的标题、内容、触发时间等文本信息,计算两个告警的相似度
  • 该模型将在冷启动(即缺少历史告警数据和用户行为数据)时,承担大部分的工作。
  1. 分类模型
  • 利用历史告警数据的合并/静默行为,训练出的分类模型。
  • 用户在使用过程中,可以手动对告警智能合并的结果进行打标,标注合并错误或正确,这样的行为会持续改进该分类模型


上述两个模型会通过动态权重进行合并训练,得到一个统一的模型。在初始阶段,由于缺少告警数据和用户行为数据,更多的程度上是文本相似度模型在发挥更大作用。随着告警数据不断的产生以及用户持续的对智能降噪的结果进行反馈,该模型会自适应地进行训练,提高分类模型在整个模型中的权重,使该模型的智能降噪结果更贴近去用户行为。


四、Cloud Alert (睿象云)

Cloud Alert(原OneAlert,下面简称CA)通过积累各行各业2亿条原始告警,3GB告警专业特色词库以及230万条告警人工标注,并利用机器学习算法进行模型的在线训练和迭代,为告警降噪提供了智能算法支撑。总结来说,主要提供两种降噪算法:

  1. 仿阅读智能算法:
  1. 告警全文本预处理:基于CA打造的告警专业特色词/停用词库,数据字典,人工标注信息等,对告警全文本分词处理等;
  2. 基于CA内置的分类等算法,对告警进行自动标注分类信息。
  3. 对于新触发的告警,利用其分类信息,判断新触发的告警是否已存在同类告警,如果存在,则静默该告警,避免重复发送。

  1. 高聚合智能算法:
  1. 告警全文本预处理:与算法智能分类预处理一致,无需重复处理;
  2. 基于CA内置聚类等算法,提取告警关键特征信息,对告警进行算法聚类,将关键特征信息与聚类结果关联。
  3. 对于新触发的告警,如果与已有告警属于同一聚类,则将其静默,避免重复发送。


下图是其聚类效果截图:

5.png


五、其他监控/告警管理系统

其他常见的监控/告警管理系统,如AWS CloudWatchAlertManager等,只是提供了基于自定义规则的降噪方案,并未提供相关智能算法降噪方案。


总结

对于监控系统的运维人员来说,告警的降噪与分组不仅可以将相关告警作为单个聚合单元进行管理来降低噪音,还可以引导他们找到告警的可能共同的根本原因。

然而现实环境总是十分复杂的,作为运维人员,往往很难确定如何按照某种固定的规则去对告警进行合并、降噪,即使设置了比较合理的合并降噪规则,现实场景下也有可能出现意想不到的告警风暴。


智能告警降噪算法,可以在最小化用户配置成本的同时,通过智能的机器学习算法,自动化地去学习告警之间的关联或相似关系,同时接受用户的反馈,去进一步优化学习模型,达到贴合用户行为的智能降噪效果。


相关实践学习
通过云拨测对指定服务器进行Ping/DNS监测
本实验将通过云拨测对指定服务器进行Ping/DNS监测,评估网站服务质量和用户体验。
目录
相关文章
|
4月前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第26天】Prometheus与Grafana是智能运维中的强大组合,前者是开源的系统监控和警报工具,后者是数据可视化平台。Prometheus具备时间序列数据库、多维数据模型、PromQL查询语言等特性,而Grafana支持多数据源、丰富的可视化选项和告警功能。两者结合可实现实时监控、灵活告警和高度定制化的仪表板,广泛应用于服务器、应用和数据库的监控。
524 3
|
7月前
|
Prometheus 监控 Cloud Native
【监控】prometheus传统环境监控告警常用配置
【监控】prometheus传统环境监控告警常用配置
【监控】prometheus传统环境监控告警常用配置
|
3月前
|
Prometheus 监控 Cloud Native
无痛入门Prometheus:一个强大的开源监控和告警系统,如何快速安装和使用?
Prometheus 是一个完全开源的系统监控和告警工具包,受 Google 内部 BorgMon 系统启发,自2012年由前 Google 工程师在 SoundCloud 开发以来,已被众多公司采用。它拥有活跃的开发者和用户社区,现为独立开源项目,并于2016年加入云原生计算基金会(CNCF)。Prometheus 的主要特点包括多维数据模型、灵活的查询语言 PromQL、不依赖分布式存储、通过 HTTP 拉取时间序列数据等。其架构简单且功能强大,支持多种图形和仪表盘展示模式。安装和使用 Prometheus 非常简便,可以通过 Docker 快速部署,并与 Grafana 等可
861 2
|
4月前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第27天】在智能运维中,Prometheus和Grafana的组合已成为监控和告警体系的事实标准。Prometheus负责数据收集和存储,支持灵活的查询语言PromQL;Grafana提供数据的可视化展示和告警功能。本文介绍如何配置Prometheus监控目标、Grafana数据源及告警规则,帮助运维团队实时监控系统状态,确保稳定性和可靠性。
482 0
|
8月前
|
存储 传感器 监控
云监控:引领未来监控技术的新篇章
传统监控系统需要投入大量的人力物力进行建设和维护,而云监控则通过云计算平台的按需付费特性降低了建设和维护成本。用户只需根据实际需求购买相应的服务和资源即可实现监控功能,无需担心设备升级、维护等问题。
|
10月前
|
弹性计算 监控 安全
【阿里云弹性计算】ECS实例监控与告警系统构建:利用阿里云监控服务保障稳定性
【5月更文挑战第23天】在数字化时代,阿里云弹性计算服务(ECS)为业务连续性提供保障。通过阿里云监控服务,用户可实时监控ECS实例的CPU、内存、磁盘I/O和网络流量等指标。启用监控,创建自定义视图集中显示关键指标,并设置告警规则(如CPU使用率超80%),结合多种通知方式确保及时响应。定期维护和优化告警策略,利用健康诊断工具,能提升服务高可用性和稳定性,确保云服务的卓越性能。
298 1
|
10月前
|
Prometheus 监控 Cloud Native
使用 Prometheus 配置 SLO 监控和告警
使用 Prometheus 配置 SLO 监控和告警
|
10月前
|
弹性计算 监控 调度
带你读《弹性计算技术指导及场景应用》——2. vGPU资源利用率的提升、监控与告警的实现
带你读《弹性计算技术指导及场景应用》——2. vGPU资源利用率的提升、监控与告警的实现
230 2
|
监控 Shell API
shell监控脚本告警通过微信外发
shell监控脚本告警通过微信外发
237 1
|
10月前
|
编解码 监控 调度
GPU实例使用--vGPU资源利用率的提升、监控与告警的实现
随着AI计算及云游戏为代表的图形渲染业务的飞速发展,越来越多的企业和个人开始使用GPU实例。同时,由于GPU算力资源成本较高,对于负载相对较小的业务,客户会更倾向于选择使用1/2或者1/4甚至更小的vGPU实例来运行其业务,vGPU技术随之得以迅速发展。