阮晓龙 刘海滨
(1.河南中医药大学信息技术学院 郑州 450046)(2.郑州祺石信息技术有限公司智慧运维事业部 郑州 450008)
近年来,在“互联网+”的推动下,互联网与传统行业深度融合,已经成为社会创新发展的重要支撑,设备业务运行情况和运行质量倍受运维人员关注,一旦发生异常或故障可能造成难以预料的损失,因此如何做到高效、准确地检测出设备业务的异常情况,是保障设备业务持续运行的重中之重。
目前关于设备业务故障检测的相关技术或实现方法越来越多,如状态估计法[1]、参数估计法[2]、等价空间法[3]、主成分分析法[4~5]、小波分析法[6~7]、时间序列分析法[8]、信息融合法[9]。文献[10]中提出利用监控设备业务状态参数变化进行设备业务故障检测;文献[11]中提出了一种松弛布尔约束诊断方法来解决通信网络中端到端测量定位故障链路难的问题;文献[12]中提出采用小波变化方法分析IP流和SNMP数据,揭示四种不同流量异常特征,并利用链路流量的时间相关性(temportal corre⁃lation)和多尺度(multiscale)分析方法,在单链路异常检测方面取得了较好的效果;文献[13~14]中利用利用多条链路的空间相关性(spatial correlation),提出基于主成分分析(PCA)的全网络(net⁃work-wide)异常检测方法,充分考虑流量矩阵的相关性,但未考虑矩阵数据的时间相关性;文献[15]中提出了一种基于MSPCA的全网络异常检测方法,解决文献[12]和文献[13~14]仅仅单独利用流量的时间相关性或空间相关性的不足。
以上研究技术与实现方法虽然获得了良好的网络异常检测效果,但在实际设备业务故障预警检测中存在一定的局限性。
1)普适性差:仅仅利用流量不能全面覆盖多种设备业务的异常检测,且部分业务运行在服务器内部,其状态无法用流量检测;
2)预警信息不详细:异常检测无法准确检测预警详细情况,预警判断无衡量指标;
3)缺乏针对性:无法有效区分故障、预警两种不同异常情况,无法实现不同异常情况的相应的处理机制。
本文基于设备业务运行状态与监控统计数据特点,将故障与预警检测进行单独分析,并且采用“故障优先”机制,先进行故障检测,后对非故障设备进行预警检测。根据不同的检测机制采取不同的检测方法,从而实现设备业务故障预警检测引擎系统,使设备业务故障预警检测更加准确。
设备业务故障预警检测引擎框架分故障检测和预警检测两个模块,如图1所示。
图1 设备业务故障预警检测框架
首先进行故障检测检测,在故障检测模块中采用报文检测、数据分析和实时探测的三级检测机制,获得设备业务状态(正常、故障、未知);然后进行预警检测,在预警检测模块中按照聚合规则对设定预警线进行检测,最终得到预警设备业务和正常设备业务。
设备业务故障预警检测框架中定义如下信息。
1)设备/业务
待检测状态的对象集合,包括服务器、交换机、路由器、防火墙、入侵检测、安全网关、网站、网站服务器、数据库、中间件、域名解析服务、协议等,表示为D。
2)待检测监控指标字段
判定待检测设备状态的参考监控指标字段,表示为F。
3)追溯周期
状态计算时所选用监控数据的周期,表示为P。可 选 取 值 范 围:1min、5min、10min、15min、30min、1h、1天、1月。
4)取值方式
待检测监控指标字段数据提取计算方式表示为K。取值范围:max(最大)、min(最小)、avg(平均)、mon(环比)、on(同比)。
5)阈值
检测设备业务预警状态待检测指标字段数据临界值Vp。
设备业务异常状态时,待检测指标字段i取值Vi与阈值的比对条件C。取值范围:>、<、≥、≤、=、≠、null、区间内、区间外,其中Vi获取过程如式(1)所示。
若采用基于监控数据状态进行故障检测,则会受数据更新周期的影响,往往在设备业务故障发生后的一个更新周期时才能发现,存在时效性差、误报率高的问题;若采用实时探测进行故障检测,虽具有较高的准确性,但会增加受检测设备业务负载,且实时探测需要等待目标对象响应结果,检测效率易受异常监控对象数量以及网络异常影响,存在增加被检测对象负载、检测效率低下、检测不稳定的问题。
为避免上述问题出现,本文区分网络异常与服务异常,采用报文检测、数据分析、实时探测三级检测机制,通过报文检测发现网络中断类故障,数据分析发现服务异常,实时探测进一步确认服务异常状态。
设备业务故障检测一级检测通过协议请求、业务连接的返回状态信息(I),根据设备业务类型(T)选择状态计算方法(M),直接快速判定被检测对象的状态(S)。各类型设备业务报文检测方法见表1。
表1 各类型设备报文检测方法
状态计算方法选取如式(2)所示。
被检测对象的状态计算如式(3)所示。
经过一级故障检测,根据检测状态对设备业务进行分流处理。故障状态设备业务进入故障处理流程;正常状态设备业务进入预警检测流程;未知状态设备业务未能直观判定状态,需做进行二级检测,根据监控数据作进一步分析。
《意见》坚持市场主导、政府引导、精准施策的基本原则,以供给侧结构性改革为主线,提出了推动绿色餐饮发展的主要任务:一是健全绿色餐饮标准体系,二是构建大众化绿色餐饮服务体系,三是促进绿色餐饮产业化发展,四是培育绿色餐饮主体,五是倡导绿色发展理念。
对于一级检测未能判定出故障/正常状态的设备业务,读取关键指标的历史监控数据进行Q值检验[16]。根据系统变化的一致性描述和解释计算设备业务状态。各类型设备业务关键指标见表2。
表2 各类型设备业务关键指标
Q检验步骤:
1)取关键指标最近10次监控数据,从小到大排列得到数组U;
2)求出最大值最小值的差值(极差)绝对值V1,如式(4)所示。
3)求出可疑数据(最后一次更新数据)Vlast与最邻数据Vpre差值的绝对值V2,如式(5)所示。
4)若V1≠0,求出V2除以V1的商Q1,如式(6)所示。若V1=0,执行步骤7):
5)根据测定次数(10)和要求置信度(90%)查找Q2=0.41;
6)若Q1≤Q2,V2保留;
7)若V2≠0,V2保留;若V2=0,V2舍弃。
8)若设备业务全部关键指标Q检验结果保留,检测状态为正常,进入预警检测;若设备业务全部关键指标Q检验结果舍弃,检测状态为故障;若部分保留部分舍弃,则进行第三级检测。
对二级检测未确定出故障/正常状态的设备业务,实时发送SNMP、PING、GET、POST请求以及连接登录等多种方式进行状态监测和数据采集,根据实时请求的返回值判定设备业务是否故障。
根据设备业务类型(T)选择状态计算方法(Method),如式(7)所示。
设备备业务配置信息O,设备业务实时探测数据Data,如式(8)所示。
经过三级故障检测,根据检测状态对设备业务进行分流处理:故障状态设备业务进入故障处理流程;正常状态设备业务进入预警检测流程。
对故障检测后的正常设备业务,需进行预警检测,查看业务是否运行达到预定的阈值,进而通知运维人员进行预防性干预。本文定义的预警模型采用聚合算法将预警条件合并产生预警规则,每个设备业务通过一次计算判定是否预警,根据设置的预警检测次数(T),最后认定设备业务是否进行预警告警通知。
定义预警规则(R)为逻辑表达式(E)聚合计算后的集合,一个设备业务(D)只有一套预警规则,预警规则生成过程如式(9)所示。
定义预警条件(Con)为预警规则的最基本组成单元,待检测监控指标字段(F)取追溯监控数据样本数(N),以取值方式(K)取得的计算值(Vc)与阈值(V)进行比较运算满足条件(C),Vc取值过程如式(10)所示。
预警条件(Con)计算过程如式(11)所示。
定义逻辑运算符(L)为表示组成逻辑表达式的预警条件(Con)之间的逻辑运算关系,取值为或—or、且—and。
定义逻辑表达式(E)为相互间具有逻辑运算关系且用or/and连接的预警条件(Con),如式(12)所示。
定义追溯监控数据样本数(N)为取得计算值(V1)需要追溯的监控数据个数,取值:1,2,3,4,5。
定义取值方式(K)为从N个监控数据取得计算值(V1)的计算方法,取值:当前、最大、最小、平均、环比、同比。
定义比较运算有大于(>)、小于(<)、等于(=)、不等于(!=)。
定义预警对象(P)为需检测预警状态的设备和业务。
每次变更预警条件时,需调用聚合算法将相同的预警表达式转化,消除相同预警字段以及取值方式重复添加产生的冗余预警条件,生成最终预警规则,算法处理过程。
1)以逻辑运算符or为基准,将预警对象(P)的逻辑表达式集合(E)拆分成最小预警判定单元集合U,如式(13)所示。
2)检测集合U中的各预警表达式,按预警字段&取值方式组合归类整理得到Us。
3)合并相同预警字段&取值方式组合Us中的预警表达式,合并原则:大大取大、小小取小、大小取中、冲突舍弃。
检测为正常的设备和业务作为预警对象,根据预警规则检测设备业务是否预警,并通过预警分析算法,最终获取设备业务的预警状态及描述信息,其分析算法处理过程如下:
1)从预警对象的预警规则获得“预警字段&取值方式”集合Uv;
2)取得读取并计算生成Uv对应的值V;
3)对预警规则中各预警表达式进行比较,得出当前预警对象是否预警以及预警信息。
本文研究了设备业务故障预警检测的相关技术,通过分析设备业务运行状态与监控统计数据特点,设计了一种设备业务故障分级检测与预警聚合分析模式。通过故障/预警分离检测、多层次判断算法、高效聚合处理等多种技术和方法,使该模型在工作中具有良好的普适性、准确性和高效性,能够快速、准确地发现故障或预警,并提供详细的预警信息,以便即时提醒相关运维人员,帮助相关人员处理异常,为信息化应用中各类设备业务持续稳定运行提供有力保障。