一种数据中心运维告警信息合并方法及系统
文献发布时间:2023-06-19 13:26:15
技术领域
本发明属于计算机智能运维领域,具体涉及一种基于前缀树与FP-growth 关联分析算法的数据中心运维告警信息合并方法与系统。
背景技术
在传统运维场景中,告警扮演了很重要的角色。运维人员往往会通过设置阈值、历史数据分析、传感器状态获取等手段,得到一系列的系统告警信息。在实际运维场景中,由于出现故障的原因不同,获取告警的手段不同,告警信息的严重程度不同,直接导致了运维告警信息的杂乱、无序、结构混乱等问题,给运维人员的日常维护工作带来了极大地不便。
数据中心在日常运行中会产生、收集并存储海量运维信息,但目前没有有效的运维信息聚合和分析方法,运维工作人员需要花费大量时间跟进和处理海量的重复、重叠或累加的运维信息,这不仅影响了数据中心的运转稳定性,也会为故障雪崩埋下隐患。
发明内容
有鉴于此,本发明提出了一种基于前缀树与FP-growth关联分析算法的数据中心运维告警信息合并方法与系统,用于解决海量运维信息无法有效聚合分析的问题。
本发明第一方面,公开一种数据中心运维告警信息合并方法,所述方法包括:
收集各类运维信息统一汇入数据中心作为原始告警信息;
使用前缀树提取原始告警信息中的主干告警信息和其对应的告警明细数据;
使用FP-growth算法提取原始告警信息中告警项之间的关联规则,生成告警合并规则;
基于告警合并规则对告警明细数据进行压缩,得到合并后的告警信息;
按照预设的时间间隔和去重策略将合并后的告警信息推送到告警重发数据库中。
优选的,所述使用前缀树提取原始告警信息中的主干告警信息和其对应的告警明细数据具体包括:
基于所有监控项的所有运维告警信息以前缀树的形式构建监控树;所述前缀树基于原始告警信息的层级划分建立,每一层级代表一个维度;
基于所有监控项的异常信息以前缀树的形式构建告警树;
将前缀树的监控树与告警树对比,根据规约结果提取主干告警信息;
基于前缀树进行告警智能合并。
优选的,所述基于前缀树的监控树与告警树对比,提取主干告警信息具体包括:
将监控树与告警树进行比对,从最底层递归往上递推,找到各自告警产生的源节点,将告警树根节点到源节点路径信息保存为规约结果;
对监控树进行自底向上逐层计算当前节点所辖下层节点中正常监控项和异常监控项的比例,将异常比例超出预设阈值的节点视为历史异常告警信息;
再次自底向上进行规约直至得到仅包含根节点至历史异常告警信息的最远祖先节点路径;
将仅包含根节点至历史异常告警信息的最远祖先节点路径作为主干告警信息。
优选的,所述基于前缀树的告警智能合并具体包括:
在时间维度对告警树进行剪枝,完成初始降重;
基于可扩展的规则库,将每一层级的告警信息进行数量统计与同源合并,生成一个新的告警树;
根据新的告警树得到主干告警信息及对应的告警明细数据。
优选的,所述使用FP-growth算法提取原始告警信息中告警项之间的关联规则,生成告警合并规则具体包括:
使用滑动时间窗口将出现于同一时间窗口内的告警数据视为共现关系;
对具有共现关系的对象数据使用FP-growth算法计算出频繁项集,挖掘出频繁项之间的关联规则;
以告警项为节点,以关联规则为有向有权边构建有向图,将有向图中的联通子图作为一条告警合并规则。
优选的,所述基于告警合并规则对明细数据进行压缩具体包括:
如果某一原始告警信息在某一个告警合并规则的节点中出现过,即认为原始告警信息触发了对应的告警合并规则;
将对应的告警合并规则下出度权重之和最大的节点作为所述原始告警信息的代表性告警项,根据代表性告警项进行告警明细数据压缩,得到合并后的告警数据,同时累计告警计数;
将所有压缩过的告警明细数据通过字段关联的方式连接规约告警记录并回写告警明细表;
对于未触发告警合并规则的告警项则直接回写告警明细表同时以单独字段进行标记。
优选的,所述按照预设的时间间隔和去重策略将合并后的告警信息推送到告警重发数据库中具体包括:
基于合并后的告警数据和已推送但未被数据中心读取的历史告警数据以及一定时间内的已推送的历史告警数据构建前缀树;
将含有相同前缀的告警数据进行剪枝和去重,将前缀树中的主干告警信息和压缩后的明细告警信息进行关联,并分成主次表回写进告警重发数据库。
本发明第二方面,公开一种数据中心运维告警信息合并系统,所述系统包括:
原始数据汇入模块:收集各类运维信息统一汇入数据中心作为原始告警信息;
中间数据分析模块:使用前缀树提取原始告警信息中的主干告警信息和其对应的告警明细数据;使用FP-growth算法提取原始告警信息中告警项之间的关联规则,生成告警合并规则;
告警智能合并模块:基于告警合并规则对告警明细数据进行压缩,得到将合并后的告警信息;按照预设的时间间隔和去重策略将合并后的告警信息推送到告警重发数据库中。
本发明第三方面,公开一种电子设备,包括:至少一个处理器、至少一个存储器、通信接口和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令,以实现如本发明第一方面所述的方法。
本发明第四方面,公开一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令使计算机实现如本发明第一方面所述的方法。
本发明相对于现有技术具有以下有益效果:
1)本发明基于海量运维信息进行告警信息分析和处理,挖掘告警信息中隐含的聚集和关联信息,提取告警主干信息和告警明细数据,从宏观上通过前缀树汇聚告警数据的主干信息,微观上对告警明细数据依照FP-growth算法挖掘出的关联关系进行压缩,既聚合了高层次的运维数据表征,又减少了低层次的无效的运维告警信息,可以提升运维工作人员的工作效率,减少不必要的故障定位、故障跟踪、跨部门人员沟通等工作,构建数据中心运维数字化管理新范式,从而提升数据中心及周边IT基础设施的稳定性。
2)本发明在已有的告警信息基础上,基于数据立方体模型的OLAP上卷操作思想,通过构建前缀树挖掘告警信息中隐含的聚集和关联信息,再以此作为层次化特征的合并依据,对于多维度告警数据,将信息量存在重复的告警信息进行合并,实现告警信息的逐层上卷,最终达到消减无用信息、最小化关键告警信息同时不丢失有效告警信息的效果。
3)为了挖掘运维告警信息的潜在价值,提升运维人员的工作效率,本发明从告警合并、告警去重和告警重发三个角度实现了工程化的告警信息数据分析方法,用于减少告警信息的无效信息量、提高信息可读性和易用性,实现全场景告警信息数据分析的闭环。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的一种数据中心运维告警信息合并方法示意图;
图2为本发明的告警树与监控树对比示意图;
图3为本发明一个告警树示意图;
图4为本发明的告警合并规则提取示意图;
图5为本发明的告警合并示意图;
图6为本发明的告警重发示意图。
具体实施方式
下面将结合本发明实施方式,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
如图1所示,本发明提出一种数据中心运维告警信息合并方法,所述方法包括:
S1、收集各类运维信息统一汇入数据中心作为原始告警信息;
具体的,将来源于不同地区、不同设备、不同软硬件等的运维信息统一汇入数据中心,本发明以此为数据源对汇入的信息进行分析和处理;
S2、使用前缀树提取原始告警信息中的主干告警信息和其对应的告警明细数据;
步骤S2具体包括如下分步骤:
S21、采用基于前缀树的监控树与告警树对比算法提取主干告警信息;
具体的,请参阅图2的告警树与监控树对比示意图,步骤S21包括如下分步骤:
S211、基于某一时间窗口中所有监控项的所有运维告警信息以前缀树的形式构建监控树,基于所有监控项的异常信息以前缀树的形式构建告警树;所述前缀树基于原始告警信息的层级划分建立,每一层级代表一个维度;所有监控项的所有运维告警信息包含正常和异常告警信息。
在数据中心中,运维告警信息往往基于领域层、省份层、系统层、系统模块层、节点层、指标层这六个层次来区分告警信息,在最基础的指标层中,告警信息呈现出不同的特征,例如代表终端是否在线的异常告警,中间件离线告警,以及一些可以用于告警提示的指标,如CPU利用率,磁盘利用率等。本发明基于上卷思想,先将所有告警信息基于上述六个层级进行告警树建立,告警树易于管理并可以溯源告警的来源与相应发起指标,以方便后续处理。具体是采用前缀树的形式分别构建监控树和告警树,每一层级即为一个数据维度,比如省市、区县、软硬件类型、IP地址等。如图3所示即为一个告警树示意图,其中白色代表正常告警,灰色代表异常告警。
S212、将前缀树的监控树与告警树对比,从最底层递归往上递推,找到各自告警产生的源节点,将告警树根节点到源节点路径信息保存为规约结果;
S213、对监控树进行自底向上逐层计算当前节点所辖下层节点中正常监控项和异常监控项的比例,将异常比例超出预设阈值的节点视为历史异常告警信息;再次自底向上进行规约直至得到仅包含根节点至历史异常告警信息的最远祖先节点路径;
S214、将仅包含根节点至历史异常告警信息的最远祖先节点路径作为主干告警信息。
S22、采用基于前缀树的告警智能合并算法获取主干告警信息及对应的告警明细数据;
具体的,步骤S22包括如下分步骤:
S221、在时间维度对告警树进行剪枝,完成初始降重;具体是将一段时间内的重复告警信息进行“剪枝”,以简化告警数量,提升告警信息的价值。
S222、基于可扩展的规则库,将每一层级的告警信息进行数量统计与同源合并,生成一个新的告警树;所述可扩展的规则库可以是不同的阈值规约,与步骤S213基于预设阈值的规约类似。
S223、根据新的告警树得到主干告警信息及对应的告警明细数据。
该新的告警树包含了每个层级已合并后的所有告警,以及告警压缩后的基础信息。通过该告警智能合并算法,一方面可以大大减少告警发送的次数,减少告警数量,较少运维成本,另一方面可以聚焦关键结点信息,例如自定义配置合并层级为IP,合并出的告警信息可以很快定位到故障IP及其故障条目,方便运维人员进行后续故障分析与处理。
本发明在已有的告警信息基础上,基于数据立方体模型的OLAP上卷 (Roll-up)操作思想,以已有的告警信息为基础,挖掘告警信息中隐含的聚集和关联信息,再以此作为层次化特征的合并依据,对于多维度告警数据,比如时间、 IP、模块、区域等维度,将信息量存在重复的告警信息进行合并,实现告警信息的逐层上卷,最终达到消减无用信息,最小化关键告警信息同时不丢失有效告警信息的效果。
S3、采用基于FP-growth的告警合并规则提取算法提取告警合并规则。
本步骤采用FP-growth算法提取原始告警信息中告警项之间的关联规则,生成告警合并规则。对于时序告警数据,可以通过动态滑动时间窗口捕捉告警项之间的共现关系,即当某一个监控项产生告警时,如果在一定时间窗口内同时存在其他监控项产生报警,那么这些监控项之间可能会存在潜在的关联关系。通过关联分析算法对时序告警数据进行分析,就可以从海量原始告警数据中提取出告警项之间的关联规则,为后续的分析提供支持。
具体的,步骤S3包括如下分步骤:
S31、使用滑动时间窗口将出现于同一时间窗口内的告警数据视为共现关系;
具体的,为了对时序告警数据进行关联分析,先要将原始数据转换为共现数据,即在某一个统计维度下,不同告警项共同出现于同一个统计口径下。为了更好地分析数据间的关联关系,本发明使用滑动时间窗口将出现于同一时间窗口内的数据视为共现。
S32、对具有共现关系的对象数据使用FP-growth算法计算出频繁项集,挖掘出频繁项之间的关联规则;
S33、以告警项为节点,以关联规则为有向有权边构建有向图,将有向图中的联通子图作为一条告警合并规则。
具体的,请参阅如图4所示的告警合并规则提取示意图,计算出告警项之间的关联规则后,以告警项为节点,以关联规则为有向有权边构建有向图,关联程度代表权重,有向图中的联通子图即为一条告警合并规则,图4中为两个连通子图示例,代表两个告警合并规则,多个不同的告警合并规则组成告警合并规则组。对于联通子图来说,联通子图内部所有节点之间均存在着基于关联规则的指向关系,计算出出度权重之和最大的节点即为该告警合并规则下最具代表性的告警项,也即最根本性的故障原因,比如图4中的告警合并规则其一中,告警项A为出度权重之和最大的节点,则告警项A即为警合并规则其一下的代表性的告警项,即合并项。
S4、采用基于告警合并规则的告警压缩算法对告警明细数据进行压缩,得到合并后的告警信息;
具体的,对于上述关联分析算法计算出的告警合并规则,对于规约完成后的告警数据,由于规约后的数据表征的是整体数据的指标,每一条规约后的告警信息都包含了大量的明细数据,需要在保证信息量尽可能高的同时对明细进行压缩。因此本步骤基于告警合并规则对告警明细数据进行压缩,以得到合并后的告警信息。
请参阅图5的告警合并示意图,步骤S4具体包括如下分步骤:
S41、如果某一原始告警信息在某一个告警合并规则的节点中出现过,即认为原始告警信息触发了对应的告警合并规则;将对应的告警合并规则下出度权重之和最大的节点作为所述原始告警信息的代表性告警项,根据代表性告警项进行告警明细数据压缩,得到合并后的告警数据,同时累计告警计数;
S42、将所有压缩过的告警明细数据通过字段关联的方式连接规约告警记录并回写告警明细表;
S43、对于未触发告警合并规则的告警项则直接回写告警明细表同时以单独字段进行标记。
S5、采用基于前缀树的告警重发算法进行告警重发。
对于合并后的单条告警信息,如果已推送但在一定时间未被数据中心读取处理,则需要重新推送告警信息,因此本步骤按照预设的时间间隔和去重策略将合并后的告警信息推送到告警重发数据库中。请参阅图6的告警重发示意图,步骤S5具体包括如下分步骤:
S51、基于合并后的告警数据和已推送但未被数据中心读取的历史告警数据以及一定时间内的已推送的历史告警数据构建前缀树;
S52、将含有相同前缀的告警数据进行剪枝和去重,将前缀树中的主干告警信息和压缩后的明细告警信息进行关联,并分成主次表回写进告警重发数据库。
为了挖掘运维告警信息的潜在价值,提升运维人员的工作效率,本项目从告警合并、告警重发和告警去重三个角度实现了工程化的告警信息数据分析方法,用于减少告警信息的无效信息量、提高信息可读性和易用性,实现全场景告警信息数据分析的闭环。
本发明提供了一种基于前缀树与FP-growth关联分析算法的数据中心运维告警信息合并方法与系统,该方法与系统从宏观上汇聚告警数据的主干信息,微观上对明细数据依照关联关系进行压缩,既聚合了高层次的运维数据表征,又减少了低层次的无效的运维告警信息,赋能数据中心管理人员和一线运维工作人员,构建数据中心运维数字化管理新范式。
与上述方法实施例相对应,本发明还公开一种数据中心运维告警信息合并系统,所述系统包括:
原始数据汇入模块:收集各类运维信息统一汇入数据中心作为原始告警信息;
中间数据分析模块:使用前缀树提取原始告警信息中的主干告警信息和其对应的告警明细数据;使用FP-growth算法提取原始告警信息中告警项之间的关联规则,生成告警合并规则;
告警智能合并模块:基于告警合并规则对告警明细数据进行压缩,得到将合并后的告警信息;按照预设的时间间隔和去重策略将合并后的告警信息推送到告警重发数据库中。
以上方法实施例和系统实施例是一一对应的,系统实时例简述之处请参阅方法实施例即可,不再赘述。
本发明还公开一种电子设备,包括:至少一个处理器、至少一个存储器、通信接口和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令,以实现本发明前述的方法。
本发明还公开一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机实现本发明实施例所述方法的全部或部分步骤。所述存储介质包括:U盘、移动硬盘、只议存储器ROM、随机存取存储器RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以分布到多个网络单元上。本领域普通技术人员在不付出创造性的劳动的情况下,可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
以上所述仅为本发明的较佳实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
- 一种数据中心运维告警信息合并方法及系统
- 一种数据中心告警智能运维管理方法及系统