一种挖掘告警中频发故障的方法与流程

文档序号:27973941发布日期:2021-12-14 23:15阅读:59来源:国知局
一种挖掘告警中频发故障的方法与流程

1.本发明涉及it运维和管理(itom)技术领域,具体说是一种挖掘告警中频发故障的方法。所述告警指历史告警信息中的告警记录。


背景技术:

2.it运维和管理(itom,简称it运维管理),随着信息技术发展伊始就已诞生,是指采用专业的信息技术和方法,对软硬件环境、网络、应用系统及运维服务流程等进行综合管理,其目的是保障系统与网络的可用性、安全性和业务的持续性。
3.在it运维和管理工作中,告警分析对运维人员来说尤为重要,如果不能及时了解服务器的告警信息,并及时分析的话,有可能会给企业造成难以估计的损失。对告警信息进行分析,不仅可以了解到软硬件设备的运行状况,还可以在故障发生时快速找到根因,从而及时的进行补救,更好的提高企业软硬件设备的高可用性。
4.但是,随着今日服务器规模越来越大,告警信息的数据量也是与日俱增,靠人力对告警信息进行分析已经不能满足企业的要求。
5.为了适应告警信息的数据量的迅猛增长,现有技术针对告警分析,通常采用基于机器学习技术的告警分析算法,例如告警聚类分析算法、告警动态定级分析算法等,这些算法的提出和应用给运维工作提供了很大的便利,不足之处在于:现有的告警分析算法未见从历史告警信息中挖掘故障信息的解决方案,尤其是没有可用的基于历史告警信息分析并挖掘频繁出现的故障的表现形式的方案。
6.公开于该背景技术部分的信息仅仅旨在加深对本发明的总体背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。


技术实现要素:

7.针对现有技术中存在的缺陷,本发明的目的在于提供一种挖掘告警中频发故障的方法,通过自动的在海量历史告警信息中挖掘频发故障,进而获取频发故障的表现形式,辅助运维人员高效的进行故障诊断及问题定位,提高了故障发现并解决的及时性和准确性,有利于运维的规范化及效率的提升。
8.为达到以上目的,本发明采取的技术方案是:
9.一种挖掘告警中频发故障的方法,其特征在于,包括如下步骤:
10.预处理步骤,具体包括:
11.获取预设时间范围内的历史告警信息;
12.聚类及模板提取步骤,具体包括:
13.基于告警模板对文本格式的历史告警信息进行聚类及模板提取,通过聚类处理将内容相似的告警聚集在一个类簇中,通过提取处理,分配模板id来标识一个类簇的告警;
14.设定时间窗口并得到告警分段步骤,具体包括:
15.预先设定一时间长度,或用户指定一时间长度,以该时间长度为时间窗口的取值,
按时间窗口对聚类及模板提取处理后的告警进行切分,得到若干报警分段;
16.汇总并统计模板id步骤,具体包括:
17.在每一个报警分段中,按模板id汇总并统计各个模板id是否在该报警分段中出现过,得到汇总结果;
18.对经常一起出现的模板id进行挖掘处理步骤,具体包括:
19.采用fp

growth算法对汇总结果进行处理,挖掘经常一起出现的模板id的组合,得到至少一个频发告警模板id集合。
20.在上述技术方案的基础上,在预处理步骤中,将历史告警信息保存为文本格式,再进行聚类及模板提取;
21.所述历史告警信息中包括告警id、发生时间、内容。
22.在上述技术方案的基础上,在预处理步骤中,所述预设时间范围默认为一个月。
23.在上述技术方案的基础上,在设定时间窗口并得到告警分段步骤中,时间长度的单位默认为分钟;
24.预先设定的时间长度包括三档,第一档的时间长度为10分钟,第二档的时间长度为30分钟,第三档的时间长度为60分钟。
25.在上述技术方案的基础上,在对经常一起出现的模板id进行挖掘处理步骤中,设定达到n次为确认是否属于频发告警的阈值。
26.在上述技术方案的基础上,在对经常一起出现的模板id进行挖掘处理步骤中,当得到多个频发告警模板id集合时,进一步筛选出包含更多数量的频发告警模板id的集合。
27.在上述技术方案的基础上,筛选的原则为:如果集合b是集合a的超集,则保留超集,去掉子集。
28.在上述技术方案的基础上,进一步包括,遍历模板id,将其替换为模板内容,生成可读报告,供分析故障模式。
29.本发明所述的一种挖掘告警中频发故障的方法,具有以下有益效果:
30.本发明通过自动的在海量历史告警信息中挖掘频发故障,进而获取频发故障的表现形式,辅助运维人员高效的进行故障诊断及问题定位,提高了故障发现并解决的及时性和准确性,有利于运维的规范化及效率的提升。
31.所述故障的表现形式是多种告警的集合,所述集合中包括了经常一起出现的若干告警,例如:设备存在某运行故障时,告警a、告警b、告警c和告警d经常一起出现,则告警a、b、c、d的集合为该某运行故障的表现形式,反映了该某运行故障的发生。发现告警a、b、c、d一起出现则可判定存在该某运行故障,反之亦然,存在该某运行故障,则能在告警信息对应的时间段中找到告警a、b、c、d。即:辅助运维人员知道告警a、b、c、d是由同一个运行故障引发,提高排障效率,减轻了运维人员的工作量,不再需要人工逐条的对告警信息进行排查。
32.所述频发故障是一种故障发生规律(故障信息必须有某种规律才能够挖掘),是按经验值设定的故障类型,通常根据发生窗口数占总窗口数的百分比确定,默认大于等于1%。例如:在一个月(30天)的历史告警信息中,以窗口长度为10分钟计,可以确定总窗口数为60*24*30/10=4320个,如果告警a的出现次数超过43个(4320的1%),就认为告警a是频发故障。
33.本发明旨在挖掘历史告警信息中可能存在的故障的表现形式。
34.本发明所述的一种挖掘告警中频发故障的方法,实现了基于历史告警信息分析并挖掘频繁出现的故障的表现形式,有利于提高线上故障分析的准确度和效率。
附图说明
35.本发明有如下附图:
36.附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
37.图1本发明所述一种挖掘告警中频发故障的方法的实施例一的流程图。
具体实施方式
38.以下结合附图对本发明作进一步详细说明。所述详细说明,为结合本发明的示范性实施例做出的说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
39.如图1所示,本发明给出了一种挖掘告警中频发故障的方法,包括如下步骤:
40.预处理步骤,具体包括:
41.获取预设时间范围内的历史告警信息;
42.将历史告警信息保存为文本格式;
43.所述预设时间范围默认为一个月;
44.所述历史告警信息中包括告警id(无重复,唯一的标识一条告警)、发生时间、内容;
45.实际中每条告警有许多属性,本发明中至少需要用到的告警id、发生时间、内容;例如:历史告警信息中包括如表1所示告警id、发生时间、内容
46.表1
47.告警id发生时间内容12021

01

01 00:00主机db01无法ping通22021

01

01 00:01连接db01上的mysql数据库失败32021

01

01 00:03主机xxx的cpu使用率超过80%42021

01

01 00:05主机yyy的磁盘剩余10%
………
10012021

01

03 08:00主机db02无法ping通10022021

01

03 08:00连接db02上的mysql数据库失败10032021

01

03 08:01交易失败率高
………
20012021

01

04 18:00主机db01无法ping通20022021

01

04 18:01连接db01上的mysql数据库失败20032021

01

04 18:02主机xxx内存使用率高
………
30012021

01

06 12:00连接db01上的mysql数据库失败
………
48.需要说明的是,原始的历史告警信息中,内容一项中存储的是无结构的文本;
49.聚类及模板提取步骤,具体包括:
50.基于告警模板对文本格式的历史告警信息进行聚类及模板提取,通过聚类处理将内容相似的告警聚集在一个类簇中,通过提取处理,分配模板id来标识一个类簇的告警;
51.聚类及模板提取的目的是将告警内容结构化,方便特征提取,作为可选择的实施方案之一,所述聚类可采用202010216937.8公开的一种基于lcs的chameleon实时日志聚类方法;
52.例如:对表1所述示例进行聚类及模板提取的结果如表2所示
53.表2
54.[0055][0056]
设定时间窗口并得到告警分段步骤,具体包括:
[0057]
预先设定一时间长度,或用户指定一时间长度,以该时间长度为时间窗口的取值,按时间窗口对聚类及模板提取处理后的告警进行切分,得到若干报警分段;
[0058]
作为可选择的实施方案之一,时间长度的单位默认为分钟;
[0059]
作为可选择的实施方案之一,预先设定的时间长度包括三档,第一档的时间长度为10分钟,第二档的时间长度为30分钟,第三档的时间长度为60分钟;
[0060]
当选择第一档时,对聚类及模板提取处理后的告警按10分钟一个时间窗口进行切分,得到的每一个报警分段中的第一条告警的产生时间和最后一条告警的产生时间的差值在10分钟之内;
[0061]
当选择第二档时,对聚类及模板提取处理后的告警按30分钟一个时间窗口进行切分,得到的每一个报警分段中的第一条告警的产生时间和最后一条告警的产生时间的差值在30分钟之内;
[0062]
当选择第三档时,对聚类及模板提取处理后的告警按60分钟一个时间窗口进行切分,得到的每一个报警分段中的第一条告警的产生时间和最后一条告警的产生时间的差值在60分钟之内;
[0063]
汇总并统计模板id步骤,具体包括:
[0064]
在每一个报警分段中,按模板id汇总并统计各个模板id是否在该报警分段中出现过,得到汇总结果;
[0065]
例如:当选择第二档时,汇总并统计模板id得到如表3所示汇总结果
[0066]
表3
[0067]
报警分段包括哪些模板id1123421253126
……
n2
[0068]
表3中,报警分段1中出现过的模板id为1、2、3、4,报警分段2中出现过的模板id为1、2、5,报警分段3中出现过的模板id为1、2、6,报警分段n中出现过的模板id为2;
[0069]
对经常一起出现的模板id进行挖掘处理步骤,具体包括:
[0070]
采用fp

growth算法对汇总结果进行处理,挖掘经常一起出现的模板id的组合,得
到至少一个频发告警模板id集合;
[0071]
所述fp

growth算法(frequent pattern tree,频繁模式树)是挖掘频繁项集的方法,采用现有技术实施即可;例如:
[0072]
设定达到n次为确认是否属于频发告警的阈值,如n值取3,
[0073]
采用fp

growth算法对表3所示汇总结果进行频繁项集挖掘处理,得到频发告警模板id集合{1,2}。
[0074]
本发明将复杂的告警内容,通过聚类简化,在类别的层次上再按时间窗口划分,再进行频繁项集挖掘,将挖掘告警内容之间关系的问题转化为频繁项集挖掘问题,避免了告警内容复杂多变、难以分析处理的情况,综合多种算法解决了频发告警辨识的难题。
[0075]
在上述技术方案的基础上,当得到多个频发告警模板id集合时,进一步筛选出包含更多数量的频发告警模板id的集合。
[0076]
例如:得到频发告警模板id集合{1,2}、{1,2,3}、{2,4}、{3,6},由于集合{1,2,3}包含了集合{1,2}且包含更多数量的频发告警模板id,频发告警模板id集合{1,2,3}满足筛选条件予以保留,频发告警模板id集合{2,4}、{3,6}满足筛选条件,因此也予以保留。即:如果集合b是集合a的超集,则保留超集,去掉子集。
[0077]
在上述技术方案的基础上,进一步包括,遍历模板id,将其替换为模板内容,生成可读报告,供分析故障模式。
[0078]
例如:频发告警模板id集合{1,2}被保留,则代表经常能够在告警信息中看到模板id1和模板id2一起出现,它们之间关系较密切,很可能对应一种故障,但模板id对人来说可读性较差,因此将其替换为模板内容,使得集合的内容变为{“主机*无法ping通”,“连接*上的mysql数据库失败”},生成可读报告则利于分析故障模式,如数据库所在服务器宕机故障导致模板id1和模板id2一起出现等。{“主机*无法ping通”,“连接*上的mysql数据库失败”}即对应为故障的表现形式。
[0079]
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
[0080]
以上所述仅为本发明的较佳实施方式,本发明的保护范围并不以上述实施方式为限,但凡本领域技术人员根据本发明所揭示内容所作的等效修饰或变化,皆应纳入权利要求书中记载的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1