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

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 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等,只是提供了基于自定义规则的降噪方案,并未提供相关智能算法降噪方案。


总结

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

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


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


目录
相关文章
|
1月前
|
人工智能 运维 监控
实现全景化应用监控——关联分析
【2月更文挑战第29天】智能化应用运维借助AI算法处理复杂系统问题,需要数据治理平台整合分散的监控系统,形成统一的全景监控视图。关键方法包括:1) 读取CMDB信息以理解IT组件关系;2) 监控网络流量解析服务交互;3) 使用APM追踪代码链路;4) 应用AI算法挖掘隐藏关联关系,通过时间序列分析和因果推理模型识别异常和故障原因。
|
11月前
|
数据采集 消息中间件 Prometheus
夜莺系列 3 监控采集Categraf
Categraf监控采集agent
829 0
|
数据采集 运维 监控
治理告警风暴,告警降噪的一些典型手段
很多公司希望提升服务稳定性,而上线了各类监控系统,指标的、链路的、日志的,而且只是指标层面可能就会有多个监控系统,这么多监控系统、这么多监控目标,如果没有良好的治理,很快就会产生告警风暴的问题,如何通过一些手段达到告警降噪的效果呢?
316 0
|
存储 缓存 运维
如何实现全链路系统问题90%精准诊断?
DevKit系统诊断工具是鲲鹏性能分析工具的子工具之一,能够针对内存、网络、存储等常见故障和异常,提供精准定位和诊断能力,帮助用户识别出源代码中的问题点,提升程序的可靠性,故障定位准确率高达90%。
174 0
如何实现全链路系统问题90%精准诊断?
|
SQL 机器学习/深度学习 弹性计算
【新功能】智能巡检支持更加灵活的告警
主要介绍如何通过SLS的告警2.0的能力去管理【智能巡检】任务产生的异常事件。通过实体维度和特征纬度的单独配置您需要的告警事件。
344 0
|
消息中间件 存储 运维
平台上配置智能告警
平台上配置智能告警
144 0
|
SQL 存储 监控
一分钟完成访问数据的智能巡检告警
简介: 本篇文章主要介绍针对访问日志类型的数据如何使用SLS的智能巡检服务,通过简单的业务梳理和SQL的使用,就可以实现智能化的指标巡检。通过简单的告警配置,就可以让丰富的告警信息整体推送到您的钉钉机器人中,交互式的打标让您的巡检结果更满足您的业务场景。
|
机器学习/深度学习 编解码 自然语言处理
实时语音质量监控
本文主要想介绍实时语音的质量到底是什么样的,大概介绍一下这个领域的一些已有的一些方法,然后会再介绍一下现有的方法,并且介绍一下未来想做的一些事情。
|
机器人
智能巡检告警配置最佳实践
智能异常分析的检测结果通过 SLS 告警功能输出到用户配置的通知渠道。在智能巡检场景中,单个任务往往会巡检大量的实体对象,涉及到的对象规则很多,我们通过SLS新版告警可以实现较好的对于巡检事件的管理。
710 0
|
存储 SQL 机器学习/深度学习
可观测平台下告警降噪实践——GOPS分享
本文介绍阿里云SLS丁来强(花名成喆)在GOPS2021上海站分享时的议题内容,结尾有PPT下载链接。
999 0
可观测平台下告警降噪实践——GOPS分享