一种运维告警系统动态阈值的生成方法及装置与流程

文档序号:19894682发布日期:2020-02-11 13:07阅读:499来源:国知局
一种运维告警系统动态阈值的生成方法及装置与流程

本发明涉及机器学习领域,特别涉及一种运维告警系统动态阈值的生成方法及装置。



背景技术:

sarima模型:全称叫做周期性自回归差分移动平均模型,全称是seasonalautoregressiveintegratedmovingaverage。也记作sarima(p,d,q)(p,d,q)m,是统计模型(statisticmodel)中最常见的一种用来进行时间序列建模的模型。

系统运维类似于系统维护,前者更加侧重于保障系统正常运行,运维有运行和维护两层含义。对于一个系统,有时出错我们无法预知,系统越复杂,其维护难度越大,为了减少损失,我们尽可能地去预防各种错误,对于突发情况,尽可能地去修复。

为了在系统出现问题是及时处理,人们设计处理运维系统,现有的运维系统方案依靠人力和经验值,一方面配置易出错;另一方面不够灵活,不能根据系统实际负载情况进行动态阈值调整,易出现误报和漏报。



技术实现要素:

本发明的目的在于:提供了一种运维告警系统动态阈值的生成方法及装置,解决了现有的运维系统方案依靠人力和经验值,一方面配置易出错;另一方面不够灵活,不能根据系统实际负载情况进行动态阈值调整,易出现误报和漏报的问题。

本发明采用的技术方案如下:

一种运维告警系统动态阈值的生成方法,包括被监控系统的指标数据,还包括以下步骤:

s1、利用指标数据历史时间序列建立sarima模型;

s2、在时刻t,对指标数据使用sarima模型进行预测,根据用户输入的置信度区间确定时刻t的阈值区间;

s3、判断采集到的时刻t的指标数据是否位于步骤s2确定的阈值区间内,若指标数据位于阈值区间内,则直接转入步骤s4;若指标数据没有位于阈值区间内,则转入步骤s4的同时进行告警;

s4、将时刻t的数据加入指标数据历史时间序列后更新sarima模型。

本方案基于sarima模型,通过对某一运维监控指标在不同时间点上的值进行建模,形成预测模型,通过置信度预设的置信区间生成阈值空间,从而形成动态阈值。此建模过程随着指标值数据的增加而不断调整优化,动态阈值亦随实际应用环境的变化而变化。

进一步的,所述步骤s1中利用指标数据历史时间序列建立阈值sarima模型的具体方法包括以下步骤:

s101、初始化sarima模型的参数、超参数;

s102、获取指标数据历史时间序列,将指标数据历史时间序列分为训练集和测试集;

s103、通过网格搜索遍历sarima模型的超参数组合;

s104、对步骤s103中遍历的每一组超参数组合,使用训练集的数据拟合sarima模型,根据拟合后的sarima模型使用测试集进行测试,计算sarima模型的准确性,选取准确性最高的sarima模型进行使用。

在上述方案中,系统会持续对运维监控目标对象进行各项监控指标数据采集,每个指标都会有系列时间序列数据;然后选择sarima模型的超参数,用部分指标数据拟合sarima模型数学公式,然后用部分数据对sarima模型进行评估,选取最优的模型进行持久化,供后续预测之用。

进一步的,所述步骤s101中初始化的参数、超参数包括自回归阶数p、差分次数d、移动平均阶数q、周期回归阶数p、周期差分次数d、周期移动平均阶数q和周期观察数量m。

进一步的,所述步骤s102获取指标数据历史时间序列后,对指标数据历史时间序列的数据进行dickyfuller测试,若通过测试,则直接将指标数据历史时间序列分为训练集和测试集,若没有通过测试,则对指标数据历史时间序列的数据进行周期性差分处理,直到通过dickyfuller测试。

sarima模型一般要求时序数据是稳定的,或者通过一阶差分或二阶差分加周期性差分之后是稳定的。通过dickyfuller测试可以判断指标数据历史时间序列的数据的稳定性。

进一步的,所述步骤s104中选取准确性最高的sarima模型的方法包括以下步骤:

s10401、选取一组超参数组合,计算使用该组合的sarima模型的准确性;

s10402、判断缓存数据是否为空,若缓存数据为空,则进入步骤s10403,若缓存数据不为空,则判断步骤s10401中得到的sarima模型的准确性是否大于缓存数据中sarima模型的准确性,若步骤s10401中得到的sarima模型的准确性大于缓存数据中sarima模型的准确性则进入步骤s10403,否则进入步骤s10404;

s10403、将步骤s10401中得到的sarima模型存储到缓存数据中,并覆盖缓存数据中的其它sarima模型;

s10404、判断是否完成超参数组合遍历,若完成超参数组合遍历,则读取缓存数据中的sarima模型进行使用,若未完成超参数组合遍历,则从超参数组合中选取一组新的超参数组合送入步骤s10401。

理论上,有1296种组合可用于遍历,实际中只有少部分可用,大部分会导致模型错误或溢出,在在遍历过程中对错误或溢出的模型直接忽略。

进一步的,所述用户输入的置信度区间的置信度为85%-99%。

进一步的,所述指标数据包括cpu使用率、cpu空闲率、内存使用率、内存空闲率、磁盘使用率、磁盘iops、网卡上行速率、网卡下行速率、cpuload、jvmminorgc耗时毫秒数、jvmfullgc耗时毫秒数、数据库tps、数据库qps、数据库iops、cachehits、cachemisses、tlbhits、tlbmisses中的至少一个。

一种运维告警系统动态阈值的生成装置,包括:

存储器,用于存储可执行指令;

处理器,用于执行所述存储器中存储的可执行指令,实现上述的一种运维告警系统动态阈值的生成方法。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

1.本发明一种运维告警系统动态阈值的生成方法及装置,解决了现有的运维系统方案依靠人力和经验值,一方面配置易出错;另一方面不够灵活,不能根据系统实际负载情况进行动态阈值调整,易出现误报和漏报的问题;

2.本发明一种运维告警系统动态阈值的生成方法及装置,消除人力干预、自动生成相关阈值、其灵活性和系统负载适配性相对更优。

附图说明

本发明将通过例子并参照附图的方式说明,其中:

图1是本发明的sarima模型生成流程图;

图2是本发明的运维系统架构图;

图3是现有方案的运维系统架构图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合图1至图3对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。

对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。

实施例1

一种运维告警系统动态阈值的生成方法,包括被监控系统的指标数据,还包括以下步骤:

s1、利用指标数据历史时间序列建立sarima模型;

s2、在时刻t,对指标数据使用sarima模型进行预测,根据用户输入的置信度区间确定时刻t的阈值区间;

s3、判断采集到的时刻t的指标数据是否位于步骤s2确定的阈值区间内,若指标数据位于阈值区间内,则直接转入步骤s4;若指标数据没有位于阈值区间内,则转入步骤s4的同时进行告警;

s4、将时刻t的数据加入指标数据历史时间序列后更新sarima模型。

本方案基于sarima模型,通过对某一运维监控指标在不同时间点上的值进行建模,形成预测模型,通过置信度预设的置信区间生成阈值空间,从而形成动态阈值。此建模过程随着指标值数据的增加而不断调整优化,动态阈值亦随实际应用环境的变化而变化。

实施例2

本实施例在实施例1的基础上进一步的,所述步骤s1中利用指标数据历史时间序列建立阈值sarima模型的具体方法包括以下步骤:

s101、初始化sarima模型的参数、超参数;

s102、获取指标数据历史时间序列,将指标数据历史时间序列分为训练集和测试集;

s103、通过网格搜索遍历sarima模型的超参数组合;

s104、对步骤s103中遍历的每一组超参数组合,使用训练集的数据拟合sarima模型,根据拟合后的sarima模型使用测试集进行测试,计算sarima模型的准确性,选取准确性最高的sarima模型进行使用。

在上述方案中,系统会持续对运维监控目标对象进行各项监控指标数据采集,每个指标都会有系列时间序列数据;然后选择sarima模型的超参数,用部分指标数据拟合sarima模型数学公式,然后用部分数据对sarima模型进行评估,选取最优的模型进行持久化,供后续预测之用。

实施例3

本实施例在实施例2的基础上进一步的,所述步骤s101中初始化的参数、超参数包括自回归阶数p、差分次数d、移动平均阶数q、周期回归阶数p、周期差分次数d、周期移动平均阶数q和周期观察数量m。

进一步的,所述步骤s102获取指标数据历史时间序列后,对指标数据历史时间序列的数据进行dickyfuller测试,若通过测试,则直接将指标数据历史时间序列分为训练集和测试集,若没有通过测试,则对指标数据历史时间序列的数据进行周期性差分处理,直到通过dickyfuller测试。

sarima模型一般要求时序数据是稳定的,或者通过一阶差分或二阶差分加周期性差分之后是稳定的。通过dickyfuller测试可以判断指标数据历史时间序列的数据的稳定性。

实施例4

本实施例在实施例2的基础上进一步的,所述步骤s104中选取准确性最高的sarima模型的方法包括以下步骤:

s10401、选取一组超参数组合,计算使用该组合的sarima模型的准确性;

s10402、判断缓存数据是否为空,若缓存数据为空,则进入步骤s10403,若缓存数据不为空,则判断步骤s10401中得到的sarima模型的准确性是否大于缓存数据中sarima模型的准确性,若步骤s10401中得到的sarima模型的准确性大于缓存数据中sarima模型的准确性则进入步骤s10403,否则进入步骤s10404;

s10403、将步骤s10401中得到的sarima模型存储到缓存数据中,并覆盖缓存数据中的其它sarima模型;

s10404、判断是否完成超参数组合遍历,若完成超参数组合遍历,则读取缓存数据中的sarima模型进行使用,若未完成超参数组合遍历,则从超参数组合中选取一组新的超参数组合送入步骤s10401。

理论上,有1296种组合可用于遍历,实际中只有少部分可用,大部分会导致模型错误或溢出,在在遍历过程中对错误或溢出的模型直接忽略。

实施例5

本实施例在实施例2的基础上进一步的,所述用户输入的置信度区间的置信度为85%。所述指标数据包括cpu使用率、cpu空闲率、内存使用率、内存空闲率、磁盘使用率、磁盘iops、网卡上行速率、网卡下行速率、cpuload、jvmminorgc耗时毫秒数、jvmfullgc耗时毫秒数、数据库tps、数据库qps、数据库iops、cachehits、cachemisses、tlbhits、tlbmisses中的至少一个。

实施例6

本实施例与实施例5的区别在于,所述用户输入的置信度区间的置信度为99%。

实施例7

本实施例与实施例5的区别在于,所述用户输入的置信度区间的置信度为95%。

实施例8

一种运维告警系统动态阈值的生成装置,包括:

存储器,用于存储可执行指令;

处理器,用于执行所述存储器中存储的可执行指令,实现如实施例1所述的一种运维告警系统动态阈值的生成方法。

实施例9

如图3所示,本实施例为现有的运维系统架构,包括采集模块、告警模块、规则阈值模块、管理系统、存储模块和通知模块。采集模块从被监控系统采集指标数据,将指标数据送入告警模块,告警模块接收到指标数据后,读取规则阈值模块记录的规则与阈值配置对指标数据进行判断,若指标数据在阈值范围内,则不做处理,若指标数据在阈值范围外,则将告警数据发送到存储模块进程存储,同时存储模块发送信息到通知模块,通知模块发送告警通知到管理系统,运维人员通过管理系统配置规则阈值模块和技术告警通知。

实施例10

如图2所示,本实施例为采用本方案的运维系统架构,在实施例9的基础上,本方案增设了阈值建模模块,运维人员只需要配置系统时将指标配置输入阈值建模模块中,阈值建模模块即可采用本方法根据采集模块采集指标数据实时调整规则阈值模块中的动态阈值,同时运维人员还可手动配置规则阈值模块中的静态阈值,实现双保险。

实施例11

在实施例10的基础上,本实施例为阈值建模模块的具体工作流程,

sa、准备参数(p,d,q,p,d,q,m)搜索列表以进行网格搜索gridsearch;理论上,有1296种组合可用于遍历,实际中只有少部分可用,大部分会导致模型错误或溢出,在在遍历过程中忽略;

sb、获取某监控指标时间序列数据,处理缺失值;

sc、数据平稳性处理:对数据进行dickyfuller测试,如果通过测试,转入步骤sd;否则,对数据进行一阶差分或二阶差分处理,并进行周期性差分处理,直至数据平稳;

sd、经过步骤sc处理,得到平稳数据序列;

se、通过网格搜索遍历超参数组合,用部分时间序列数据拟合sarima数学表达式expr,根据表达式对另一部分数据数据进行预测,判断准确性。其判断流程如下:

输入:datalist=[y1,y2,y3,….yn];

正确预测计数:correctpredictions=0;

forindexfrom0todatalist.length;

do;

ifindex==0orindex==datalist.length–1then;

skip;

elseifdatalist[index]在expr(datalist[index-1])的上下界之内then;

correctpredictions+=1;

endif;

endfor;

选取准确性(correctpredictions)sarima为最优模型;

sf、模型持久化,用于后续告警判定之用。

实施例11

本实施例在实施例10的基础上结合实施例4进行选取准确性最高的sarima模型的方法的说明:

s10401、从超参数列表parameters中选取一组(p,d,q,p,d,q,m)组合,通过datalist部分数据拟合sarima模型的数学表达式expr,通过datalist剩下的数据计算使用该组合的sarima模型的准确性precision;

s10402、判断缓存数据optimization是否为空,若缓存数据optimization为空,则进入步骤s10403,若缓存数据optimization不为空,则判断步骤s10401中得到的sarima模型的准确性precision是否大于缓存数据optimization中sarima模型的准确性precision,若步骤s10401中得到的sarima模型的准确性precision大于缓存数据optimization中sarima模型的准确性precision则进入步骤s10403,否则进入步骤s10404;

s10403、将步骤s10401中得到的sarima模型存储到缓存数据optimization中,并覆盖缓存数据optimization中的其它sarima模型;

s10404、判断是否完成超参数列表parameters中的超参数组合遍历,若完成超参数组合遍历,则读取缓存数据optimization中的sarima模型进行使用,若未完成超参数组合遍历,则从超参数组合中选取一组新的超参数组合送入步骤s10401。

在上述方案中,系统会持续对运维监控目标对象进行各项监控指标数据采集,采集时间间隔为10秒,故系统启动几分钟之后,每个指标都会有系列时间序列数据;然后对此序列进行差分,得到平稳序列;然后通过网格搜索选择超参数,用部分指标数据拟合sarima数学公式,然后用部分数据对公式进行评估,选取最优的模型进行持久化,供后续预测之用。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1