一、文章标题
一种适用多指标联合分析长时序数列异常检测和告警降噪的智能运维方案
二、名词解释
智能运维,也称为AIOps。AIOps 结合了大数据和机器学习,使IT运营过程自动化,包括事件关联、异常检测和因果关系确定。利用AI及其子集来监控和解决与企业IT运营相关的问题。本论文主要解决智能运维中的以下场景:某客户的正常业务涉及多种运维指标数据,通过多指标联合分析,从而判断业务数据是否发生异常,减轻运维人员的工作量、提升其工作效率。
异常检测是一种机器学习和统计分析的技术,用于识别与正常模式或预期行为明显不同的数据点、事件或样本。它的目标是识别出不符合预期的、异常的、罕见的或异常的数据点,这些数据点可能表示潜在的故障、欺诈、异常行为或其他值得进一步调查的情况。
告警降噪是一种用于减少或过滤系统或应用程序产生的告警数量,以去除无关或冗余的告警,从而提高告警的有效性和可用性的技术或方法。告警降噪可以提高操作人员处理告警的效率,减少对系统资源的占用,同时确保重要的告警能够及时得到关注和处理。
三、所属技术领域
本发明属于人工智能中的时序数据异常检测领域。
四、背景技术
在大数据时代,智能运维解决传统运维难点痛点的需求愈发强烈。传统的运维有几大难题:1、复杂的部署,缺乏端到端的可见性;2、警报过载,传统的固定阈值的告警规则容易发生告警风暴,使得运维部分耗时耗力;3、由于告警分析建立在历史数据的基础上,使得告警缺乏预见性。
随着软件技术的不断突破以及深度学习算法的进步,智能运维AIOPS能够识别问题,并将事件和所需了解的信息分配给合适的人员。但是,现阶段的机器学习和深度学习较为成熟的模型都只适用于短时间的预测,不适用于智能运维中对海量的数据做分钟级别响应的任务。本文曾尝试过时间序列的经典算法,比如Prophet这个较为实用的工具包,适合预测趋势,但准确性不高;Arima这种老牌的算法,短序列预测还算精准,但是趋势预测不准,这二者都不适用于长序列数据。而经典的LSTM模型,虽然也适用于长序列预测,但是其串行结构会导致运行效率低下;同时其反向传播的机制,在海量的运维数据中会导致模型难于收敛,因此本文选择自行设计一套AIOPS异常检测方案,根据时序数据自身多种不同的特点,多阶段算法处理,提高告警的准确率和召回率。
五、发明创造的目的
目前在运维数据的处理领域,传统的运维方案只能设置一个固定的阈值,缺乏灵活性。智能运维中使用机器学习方案的,常见的有监督的分类学习算法,需要较多的学习成本且难以解决任务中样本本身正负样本极其不均衡的问题;同样的,无监督学习的聚类方法,也无法快速的分析运维多指标的复杂业务场景。近几年流行的深度学习算法,比如LSTM算法和Transformer算法等都不能很好的解决模型在海量的运维数据上难以收敛,计算成本高、部署复杂等问题。
针对上述情况,本文选择将传统的统计分析知识和深度学习相结合,将时序面板数据转换成多通道图像数据,设计了一套适用多指标联合分析长时序数列异常检测和告警降噪的智能运维方案。主要是为了解决智能运维中对数据进行异常检测时遇到的几大痛点和难点。
(1)海量的数据:对于运维人员来说,是否需要告警不只是单一的考虑某个指标是否异常,要多指标综合分析,同时,各指标每分钟都会产生相关底层数据。
(2)告警需及时:由于故障的发生会产生较大的影响,运维人员需要告警做到又快又准确,因此收敛时长较长的算法,即使准确率较高也不适用本项目;
(3)增加告警的预见性:对于运维人员人力分布来说,如果能够提前预见故障的发生,可以给运维人员更充足的时间去预防、排查或者解决问题。
(4)增加模型的适用性:传统运维设定的固定阈值的方案,实际效果取决于阈值设定的是否合适,针对于不同量级的数据、数据本身波动较大且不规律等多种情况都需要更改阈值,缺乏灵活性、过于依赖运维人员的专业性。
六、发明创造的技术方案以及具体实施例
一种适用多指标联合分析长时序数列异常检测和告警降噪的智能运维方案,旨在提出一种实现适用于运维场景自动化告警的方案,提高传统运维人员工作效率。本专利提出的解决方案流程图如附图1所示。流程图主要分为数据预处理、异常检测、告警降噪三个部分,以下将依次展开详述。
- 数据预处理
客户场景数据涉及多指标数据,每种指标都会产生分钟粒度的时序数据,组合在一起就是多指标面板数据。首先对数据进行填充空数据、清洗脏数据等常规操作后,单指标处理检验数据的平稳性和随机性。
- ADF平稳性检验:构造统计量,通过假设检验的方法判断该时序数据是否平稳,若平稳,则进行下一步;若非平稳,则将时序数据进行差分后再次检验平稳性,以此类推。
- ACF白噪声检验:对时序数据进行白噪声检验,主要是为了判断该时序数据是否具有纯随机性。若该时序数据是白噪声数据,说明其是纯随机性变动,对应于不包含任何趋势、季节性或者周期性成分的随机变量,这样的数据是无法通过拟合函数来对其进行预测的。这样的指标数据基本不存在,是一种统计学上的理想模型,若遇到,本文采取去除该指标数据,不对其进行分析。
- 异常检测
经过数据预处理后,得到多指标时序数据,是一个面板数据,本文选择深度学习的方法,将时间数据转换成类似深度学习擅长解决的图像数据。经过数据平稳性和随机性检测,本文最终选择了客户场景使用中涉及到的8个指标数据,经过实验扩展为32个特征,对其进行如附图2的操作。首先将分钟粒度的面板数据(维度:32*n),以天为单位将其变为三维数据(维度:32*1440*(1440/n)),可以将每天的面板数据看作是一个32*1440像素的单通道图片,然后依次和昨天、前天、上周的“图像”数据进行相似度Hash算法计算,以判断这几天数据是否相似;同时,一天按分钟粒度有1440个点,但当只检测某一分钟数据是否发生异常时,本文选择重点关注该时刻前几个小时数据,所以会取32*1440像素“图像”里面两个小时的数据变为32*120,然后依次和昨天、前天、上周同时段数据进行相似度计算以判断当前时刻数据是否发生异常。
在对“图像”数据进行相似度计算时,本文采用了均值哈希、差值哈希和感知哈希三种算法进行计算,最终经过加权投票判定当前时刻数据是否发生异常。
- 告警降噪
业务最终的目的是想要实时监测数据是否发生异常,异常检测得出的告警,可能并非所有的告警都是有用的或需要立即处理的,有些告警可能是重复的、无关的、误报的或者是次要的。所以本文在告警降噪的目标就是根据业务特点来过滤、合并或压缩告警,这样可以让操作人员更容易识别和处理重要的告警,提高操作效率和系统稳定性。
具体来说,由于模型算法的异常检测是检测数据是否异常,而对业务人员来说,他们更关心业务是否真的发生了异常。因此对于数据规律性的、重复性的大波动,即使异常检测判定为异常,也应该过滤掉。同时,业务场景是实时监测的,但是一旦发生异常,可能一段时间数据都会产生告警,造成告警冗余,因此本文根据业务需求,进行告警合并。
- 发明人认为要保护的发明内容的技术要点以及相应的有益效果
本文选择将传统的统计分析知识和深度学习相结合,将时序面板数据转换成多通道图像数据,设计了一套适用多指标联合分析长时序数列异常检测和告警降噪的智能运维方案。主要是为了解决智能运维中对数据进行异常检测时遇到的几大痛点和难点。
(1)海量的数据:对于运维人员来说,是否需要告警不只是单一的考虑某个指标是否异常,要多指标综合分析,同时,各指标每分钟都会产生相关底层数据。
(2)告警需及时:由于故障的发生会产生较大的影响,运维人员需要告警做到又快又准确,因此收敛时长较长的算法,即使准确率较高也不适用本项目;
(3)增加告警的预见性:对于运维人员人力分布来说,如果能够提前预见故障的发生,可以给运维人员更充足的时间去预防、排查或者解决问题。
- 增加模型的适用性:传统运维设定的固定阈值的方案,实际效果取决于阈值设定的是否合适,针对于不同量级的数据、数据本身波动较大且不规律等多种情况都需要更改阈值,缺乏灵活性、过于依赖运维人员的专业性。
七、附图
附图1
附图2