一种基于人工免疫的云服务异常检测方法
技术领域
本发明涉及云服务技术领域,尤其涉及一种基于人工免疫的云服务异常检测方法。
背景技术
由于用户需求的多样性,导致云服务的多样性。云服务通过动态组合满足不同用户的需要,这就导致云服务调用频率、资源占用、耗时等出现不同的形态特征,难以用单一、静态的指标去检测异常。以调用频率为例,热门服务的调用频率可以达到成百上千次每秒,而冷门服务可能几个小时也没有1次调用,可以说每个服务存在不同的运行模式。云服务行为特征不是固定不变的,而是伴随用户行为演化。从服务的个体视角看,服务的运行频率、耗时等特征模式随着用户行为特征演化,从服务流程上看,服务的动态组合网络、服务执行路径及其相关特征也随着用户群体特征演化。
专利《一种云服务起源数据的捕获方法和装置》(公开号:104092755A)公开了云服务行为数据的捕获方法,但如何从捕获海量的云服务行为数据发现异常是一个挑战,由于服务行为的不确定性,不能通过一个简单的静态模型去描述,需要设计一个动态、自适应的方法去发现异常。另外,服务行为数据庞大,以1000个热门服务为例,如果平均每秒钟调用1次,则每天将产生近亿条行为记录数据。
本发明通过引入人工免疫识别异常的生物学方法,设计云服务危险信号的产生、危险区域划分以及危险的判定、计算和演化,实现云服务的行为的异常检测,为云服务的安全管理、入侵检测、资源优化提供依据。
发明内容
本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种基于人工免疫的云服务异常检测方法。
本发明解决其技术问题所采用的技术方案是:一种基于人工免疫的云服务异常检测方法,包括以下步骤:
1)对捕获的云服务行为数据进行危险信号表达,具体包括:
1.1)为系统中的每一个服务分配一个监控器(淋巴细胞)Si,读取该服务的服务起源日志;
1.2)根据服务起源日志9元组,即BasicProv(token,InvokingService,ServiceInvoked,location,elapsed time,timestamp,input,output,status),计算3个危险信号源随时间变化曲线,所述危险信号源包括调用次数,耗时和异常率,
其中调用次数-时间曲线通过(invokingService,time)计算,耗时时间曲线通过(invokingService,elapsed time,time)计算得到,异常率通过(invokingService,status,time)计算得到;
1.3)每个监控器实时监控服务的运行状态,进行危险信号表达;
1.4)根据危险信号的表达和触发条件,进行危险信号的触发;所述危险信号的触发条件具体为:
若为单个服务,触发有两个条件,一是如果调用次数、耗时和异常率任一数值大于阈值,则触发危险信号Di(type:count,elapsed time,exception),其中i为服务编号,type描述了危险型号的类型;所述危险型号的类型为:频率异常、耗时异常和状态异常;所述阈值根据系统正常时,调用次数、耗时和异常率的平均值动态设置;
二是计算调用次数、耗时和异常率3个指标的变化率,若超过设定变化阈值则触发危险信号;具体如下:记录每一个服务在某一时刻点T的耗时为t,频率f以及异常率w,再记录在下一时刻点T’时这三个变量的变化记为t’,f’,w’;通过变化率对危险信号进行计算;那么记△F(t)=F(t’)-F(t),△F(f)=F(f’)-F(f),△F(w)=F(w’)-F(w),以及时刻的变化△T=T’-T,进而求出在这短暂的时刻这三个变量的变化率分别为△F(t)/△T,△F(f)/△T,△F(w)/△T;对计算后的值与上一步骤中获取的阈值进行比较,如果大于此阈值则判断为危险信号,那么在第一步中为每个服务分配的监控器(淋巴细胞)Si将会报警并对这个异常进行处理。
危险信号的阈值分为两个部分,一个是为对应每个服务的调用次数、耗时和异常率的阈值,该阈值通过一个4元组进行存储,(serviceName,threshold_count,threshold_elapsed,threshold_exception)分别表示(服务名,调用次数阈值,耗时阈值,异常率阈值)该阈值不是全局统一值,而是针对每个服务进行设定,初始值来源于单位时间的平均值。危险信号另外一个阈值为变化率阈值,体现服务瞬时变化情况,变化率阈值的初始值可以根据实际需要由人工进行设定。
(1.5)危险信号的判定:针对发出危险信号的服务以及危险区域,计算危险程度,进行危险信号的判定,详细的步骤如下:
1.5.1借鉴细胞克隆增殖的过程,针对发出危险信号的服务及其区域,分配更多的计算资源,查询近期的所有服务起源日志,计算服务的特征变化;
1.5.2在具体计算服务的特征的时候,构建调用次数-时间Count-time,耗时-时间特征elapse-time曲线,通过夹角余弦的方式进行计算,小于设定的阈值时候,判断服务行为发生了较大的改变;
1.5.3当调用次数-时间Count-time,耗时-时间特征elapse-time曲线的行为特征都发生较大改变时候,判定产生了异常。
按上述方案,所述危险信号触发还包括危险区域的信号触发:
若当发现某个服务异常,可以通过查询服务依赖路径,获得危险区域;
如果该服务有多个依赖路径,可以根据耗时参数,采用贪心算法对执行路径的耗时进行排序,获得一个或多个危险区域。
按上述方案,所述查询服务依赖路径是以该服务为起点,通过遍历算法查询服务依赖路径。
按上述方案,为了有效的限制危险区域的范围,在查询过程中,可以定义依赖服务的路径的长度,可以设置路径的长度为数值3-5,或者根据实际情况进行调整。
本发明产生的有益效果是:本发明借鉴人工免疫识别异常的生物学过程,设计云服务危险信号的产生、危险区域划分以及危险的判定、计算和演化,实现云服务的行为的异常检测,为云服务的安全管理、入侵检测、资源优化提供依据。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实施例的方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,一种基于人工免疫的云服务异常检测方法,包括以下步骤:
1)对捕获的云服务行为数据进行危险信号表达,具体包括:
1.1)为系统中的每一个服务分配一个监控器(淋巴细胞)Si,读取该服务的服务起源日志;
1.2)根据服务起源日志9元组,即BasicProv(token,InvokingService,ServiceInvoked,location,elapsed time,timestamp,input,output,status),计算3个危险信号源随时间变化曲线,所述危险信号源包括调用次数,耗时和异常率,
其中调用次数-时间曲线通过(invokingService,time)计算,耗时时间曲线通过(invokingService,elapsed time,time)计算得到,异常率通过(invokingService,status,time)计算得到;
1.3)每个监控器实时监控服务的运行状态,进行危险信号表达;
2)根据危险信号的表达和触发条件,进行危险信号的触发;所述危险信号的触发条件具体为:
若为单个服务,触发有两个条件,一是如果调用次数、耗时和异常率任一数值大于阈值,则触发危险信号Di(type:count,elapsed time,exception),其中i为服务编号,type描述了危险型号的类型;所述危险型号的类型为:频率异常、耗时异常和状态异常;所述阈值根据系统正常时,调用次数、耗时和异常率的平均值动态设置;
二是计算调用次数、耗时和异常率3个指标的变化率,若超过设定变化阈值则触发危险信号;具体如下:记录每一个服务在某一时刻点T的耗时为t,频率f以及异常率w,再记录在下一时刻点T’时这三个变量的变化记为t’,f’,w’;通过变化率对危险信号进行计算;那么记△F(t)=F(t’)-F(t),△F(f)=F(f’)-F(f),△F(w)=F(w’)-F(w),以及时刻的变化△T=T’-T,进而求出在这短暂的时刻这三个变量的变化率分别为△F(t)/△T,△F(f)/△T,△F(w)/△T;对计算后的值与上一步骤中获取的阈值进行比较,如果大于此阈值则判断为危险信号,那么在第一步中为每个服务分配的监控器(淋巴细胞)Si将会报警并对这个异常进行处理;
本发明危险信号触发还包括危险区域的信号触发。危险区域指的是在某个服务执行路径区间,发生了异常,例如,某条执行路径耗时很长,可能出现了系统瓶颈,危险区域把关注点从某个服务扩展到某个区域,可以是一条或者多条执行路径。具体的方式为:
基于执行路径的危险区域划分方法:
当发现某个服务Si异常,可以通过查询服务依赖路径,形成危险区域。以该服务为起点,将服务起源存储在图数据库中,通过图的遍历算法查询服务依赖路径。
为了有效的限制危险区域的范围,在查询过程中,可以定义依赖服务的路径的长度,可以设置为数值3-5,或者根据实际情况进行调整。
如果Si有多个依赖路径,可以根据耗时参数,采用贪心算法查找耗时最长的执行路径;
(3)危险信号的判定:针对发出危险信号的服务或危险区域,计算危险程度,进行危险信号的判定,详细的步骤如下:
3.1借鉴细胞克隆增殖的过程,针对发出危险信号的服务及其区域,分配更多的计算资源,查询近期的所有服务起源日志,计算服务的特征变化;
3.2在具体计算服务的特征的时候,构建调用次数-时间Count-time,耗时-时间特征elapse-time曲线,通过夹角余弦的方式进行计算,小于设定的阈值时候,判断服务行为发生了较大的改变;
3.3当调用次数-时间Count-time,耗时-时间特征elapse-time曲线的行为特征都发生较大改变时候,判定产生了异常。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。