智能运维场景解析:如何通过异常检测发现业务系统状态异常
通常情况下,业务系统出现异常,最直接、最直观反映就是关键业务指标出现异常波动。以保险行业为例,当业务系统出现异常时,系统处理保单的能力会显著下降,对应到业务指标描述,即:业务系统出现问题时,“保单量”会出现下降。
如何正确判断“保单量”出现下降呢?传统的方式就是设置一个固定的阈值,例如:定义在正常情况下,系统每分钟可以处理的保单量应该在200~600之间。当实时监控到的保单量超出上述阈值时,即认为保单量出现异常。传统监控系统的固定阈值告警,就是通过设置固定的告警阈值与真实数据进行对比产生告警信息。
这个逻辑表面看上去没有问题,但是仔细想一下,每天凌晨的时候,会有多少新的保单提交到系统中呢(假设保险公司只受理国内的业务)?显然,每天上午10点到12点之间新提交到系统中的保单量要远远多于每天凌晨提交到系统中的保单量。
以此类推,业务系统在节假日和工作日处理的保单量也存在显著的差别。如果据此逻辑进行深入分析,会发现,企业很难用预先设定的规则(阈值)来判断业务系统保单量指标的是否出现异常。
为了解决上述问题,云智慧DOCP平台的DOEM数字化运维事件管理产品采用多算法集成学习模式,并引入3种针对时序型监控指标进行异常检测的方法:动态基线、同比/环比和指标异常检测。
动态基线基于历史数据,利用智能算法进行深度学习后,对未来一段时间内的每个时间点的数值进行精准预测,以预测值作为基线,并通过比较实际值与基线的偏离度(百分比差异)来监控和告警。
动态基线适用于已知某数据指标呈周期性变化且没办法给出每个周期的准确值或者周期内的数据变化过多的场景。以保险行业业务场景为例,我们根据历史保单量的学习,识别出历史数据的趋势性和周期性的变化,预测未来一段时间保单量的变化。同时根据历史数据的分布情况,给出未来一段时间的上下限的变化情况。当待检测指标高于基线高于上限/低于下限时,即判断为出现异常。监测发现预测实际值数据频繁小于预测数据,我们有效的检测到这种异常,并追踪到事件的根源。
同/环比异常检测用于发现某个待监测指标的变化趋势是持续变好还是持续变坏。将目标监控值与历史同期数据的分布和同环比的变化情况进行对比,根据数值或百分比差异情况判断新进数据是否异常,并作出判断是否进行告警。
为了应对不对业务模式的差异化数据特点,DOEM采用无监督集成学习算法进行单/多指标异常检测,无需人工设置固定阈值和定义基线偏离度,系统根据不同的数据特点,选择不同算法去做针对性的检测,并对异常进行整体的评估,自动识别出不符合期望的数据后产生告警消息。
云智慧DOEM(Digital Operation Event Management的缩写)数字化运维事件管理产品面向技术和管理,以事件为核心,实现问题事件全生命周期的全局管控。DOEM基于大数据技术和机器学习算法,对来自于各种监控系统的告警消息与数据指标进行统一的接入与处理,支持告警事件的过滤、通知、响应、处置、定级、跟踪以及多维分析。DOEM产品基于动态基线等多种算法,能够实现事件的告警收敛、异常检测、根因分析、智能预测,帮助企业打通数据孤岛,统一运维的标准与管理规范,减少对运维的事务性干扰,提升运维的整体管理水平。