一种面向信创全栈信息系统健康评估的故障检测方法、装置、电子设备和存储介质与流程

摘要: 本发明涉及分布式系统,尤其涉及一种面向信创全栈信息系统健康评估的故障检测方法、装置和存储介质。背景技术:1、当前,电力行业信息系统正经历全栈式信创转型,底层硬件...
一种面向信创全栈信息系统健康评估的故障检测方法、装置、电子设备和存储介质与流程

本发明涉及分布式系统,尤其涉及一种面向信创全栈信息系统健康评估的故障检测方法、装置和存储介质。

背景技术:

1、当前,电力行业信息系统正经历全栈式信创转型,底层硬件涵盖x86、arm、mips等多种技术路线,软件栈包含麒麟os、达梦数据库、nginx/redis中间件及微服务应用等众多组件。现有技术中,健康评估方案一般通过采集全栈信息系统中的多个应用系统对应的多项指标(如cpu使用率、内存使用率、磁盘i/o等),依据预设权重对各指标评分进行加权汇总,最终得出0至100分的综合健康度评分,然后根据综合健康度评分判断应用系统是否存在故障,进而判断信息系统是否存在故障,从而对故障进行维护。相较于固定阈值告警,该方案在一定程度上实现了健康状态的量化表征。

2、在实际信创全栈系统中,应用系统的故障呈现显著的跨层传播特征:故障沿依赖链逐层向上传导,底层操作系统降级导致数据库节点性能折减,数据库节点降级导致数据库集群服务能力下降,数据库集群降级导致依赖它的应用服务响应变慢,最终体现为业务系统受损。但是,现有加权求和框架下,各层级独立计算各自的加权总分,各层得分互不影响,这种结构导致故障在跨层级传导过程中产生断层:比如,操作系统层由于cpu占用率上升之后分数下降,其处理能力下降对上层数据库、应用服务实际可用性造成的折减效应,但是由于各层根据各自的指标数据独立计算评分,所以下层的变化无法反映在上层的评分中,即故障有可能在每一层被平均化,导致综合健康度评分无法真实反映信创全栈信息系统的实际健康状态。

技术实现思路

1、本发明提出一种面向信创全栈信息系统健康评估的故障检测方法、装置、电子设备及存储介质,用于解决现有检测方法中,对各层的组件独立评估,导致信创全栈信息系统中操作系统降级对上层数据库及应用的跨层折减效应和故障传播路径均无法被量化感知,难以反映系统真实健康状态,影响后续的故障修复的技术问题。

2、本发明一实施例提供了一种面向信创全栈信息系统健康评估的故障检测方法,包括:

3、获取目标信创全栈信息系统中各基础组件的监控指标数据;

4、根据各基础组件的监控指标数据,确定所述基础组件的基础健康分;

5、若所述基础组件为操作系统节点,将基础组件的基础健康分作为对应的操作系统节点的节点健康分;若所述基础组件属于非操作系统节点,获取所述非操作系统节点的宿主操作系统对应的节点健康分,作为候选健康分;根据所述基础组件对应的基础健康分以及候选健康分确定所述非操作系统节点的节点健康分;

6、获取预设集群与节点的归属关系,根据所述归属关系将各节点划分至对应的集群,根据集群的架构类型,对属于同一集群的各节点的节点健康分执行差异化聚合,生成集群健康分;

7、根据各集群健康分、目标信创全栈信息系统的逻辑服务与集群之间的调用依赖关系,将各集群健康分聚合为各逻辑服务健康分;

8、根据各逻辑服务健康分、目标信创全栈信息系统的逻辑服务与应用系统之间的组成关系,将各逻辑服务健康分聚合为应用系统健康分;

9、在所述应用系统健康分小于预设阈值的情况下,判定应用系统存在故障。

10、进一步的,根据各基础组件的监控指标数据,确定所述基础组件的基础健康分,包括:

11、对于每个基础组件,判断所述基础组件是否触发分数归零条件:

12、若触发,则将所述基础组件的基础健康分设置为零;

13、若未触发,则遍历所述基础组件对应的所有监控指标数据,根据各监控指标数据当前值,以及各监控指标所对应的分段非线性扣分函数计算,每一监控指标所对应的扣分数值,根据各监控指标的扣分值确定所述基础组件的基础健康分。

14、进一步的,通过下述公式计算所述非操作系统节点的节点健康分:

15、;

16、其中,为第i个非操作系统节点的节点健康分;为第i个基础组件对应的基础健康分;为第i个非操作系统节点对应的候选健康分。

17、进一步的,所述集群的架构类型包括第一集群类型和第二集群类型,通过以下方式确定集群的架构类型:

18、判断集群中是否存在备用节点;

19、若存在备用节点,则将所述集群划分为第一集群类型;

20、若不存在备用节点,则将所述集群划分为第二集群类型。

21、进一步的,根据集群的架构类型,对属于同一集群的各节点的节点健康分执行差异化聚合,生成集群健康分,包括以下步骤:

22、对于第一集群类型,使用检测探针检测集群内主节点与检测探针之间的连通状态:

23、在所述主节点与检测探针连通正常的情况下,将集群内的主节点对应的节点健康分与备用节点对应的节点健康分进行加权计算,得到所述集群的集群健康分;

24、在所述主节点与检测探针连通失败的情况下,所述集群对应的集群健康分设置为零;

25、对于所述第二集群类型,将同一集群内各节点对应的节点健康分的算术平均值作为所述集群的集群健康分。

26、进一步的,所述逻辑服务对应至少一个自身集群;所述根据各集群健康分、目标信创全栈信息系统的逻辑服务与集群之间的调用依赖关系,将各集群健康分聚合为各逻辑服务健康分,包括:

27、获取目标信创全栈信息系统的逻辑服务对应的自身集群的集群健康分;

28、判断所述逻辑服务是否存在调用的集群:

29、若所述逻辑服务不存在调用的集群,则根据自身集群对应的集群健康分确定所述逻辑服务的逻辑服务健康分;

30、若所述逻辑服务存在调用的集群,则根据所述逻辑服务与调用的集群之间的调用关系以及链路追踪系统中的实际调用记录,确定所述逻辑服务和调用的集群之间的调用依赖关系类型;根据所述逻辑服务对应的自身集群的集群健康分、逻辑服务与调用的集群之间的调用依赖关系类型以及调用的集群的集群健康分,确定逻辑服务的逻辑服务健康分。

31、进一步的,根据各逻辑服务健康分以及逻辑服务与应用系统之间的组成关系,将各逻辑服务健康分聚合为应用系统健康分,包括:

32、根据预先定义的逻辑服务和标签之间的对应关系,将应用系统中的各逻辑服务划分为第一类逻辑服务和第二类逻辑服务;

33、取所有第一类逻辑服务对应的逻辑服务健康分中的最小值作为第一聚合值;取所有第二类逻辑服务对应的逻辑服务健康分中的平均值作为第二聚合值;

34、比较所述第一聚合值和第二聚合值,将数值较小者作为系统基础值;

35、将所述系统基础值,作为应用系统健康分。

36、本发明一实施例提供了一种面向信创全栈信息系统健康评估的故障检测装置,包括:

37、数据获取模块,用于获取目标信创全栈信息系统中各基础组件的监控指标数据;

38、组件健康分计算模块,用于根据各基础组件的监控指标数据,确定所述基础组件的基础健康分;

39、节点健康分计算模块,若所述基础组件为操作系统节点,用于将基础组件的基础健康分作为对应的操作系统节点的节点健康分;若所述基础组件属于非操作系统节点,用于获取所述非操作系统节点的宿主操作系统对应的节点健康分,作为候选健康分;根据所述基础组件对应的基础健康分以及候选健康分确定所述非操作系统节点的节点健康分;

40、集群健康分计算模块,用于获取预设集群与节点的归属关系,根据所述归属关系将各节点划分至对应的集群,根据集群的架构类型,对属于同一集群的各节点的节点健康分执行差异化聚合,生成集群健康分;

41、逻辑服务健康分计算模块,用于根据各集群健康分、目标信创全栈信息系统的逻辑服务与集群之间的调用依赖关系,将各集群健康分聚合为各逻辑服务健康分;

42、应用系统健康分计算模块,用于根据各逻辑服务健康分、目标信创全栈信息系统的逻辑服务与应用系统之间的组成关系,将各逻辑服务健康分聚合为应用系统健康分;

43、故障检测模块,用于在所述应用系统健康分小于预设阈值的情况下,判断应用系统存在故障。

44、本发明一实施例提供了一种电子设备,包括:处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序;其中,所述处理器在执行所述计算机程序时,实现如本发明中任一项所述的面向信创全栈信息系统健康评估的故障检测方法。

45、本发明一实施例提供了一种存储介质,所述存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述存储介质所在设备执行如本发明中任意一项所述的面向信创全栈信息系统健康评估的故障检测方法。

46、通过实施本发明的实施例具有如下有益效果:

47、本发明实施例提供了一种面向信创全栈信息系统健康评估的故障检测方法、装置、电子设备和存储介质,根据各基础组件的监控指标数据确定所述基础组件的基础健康分,操作系统节点直接以基础健康分作为节点健康分,非操作系统节点则将基础健康分与其所在宿主操作系统的节点健康分相关联,在操作系统节点发生变化时,能够自动且显式地传导至运行其上的非操作系统节点;根据集群的架构类型对各节点的节点健康分执行差异化聚合,使不同架构类型集群的故障传播特征在集群层被显式保留而非被平均化掩盖;通过逻辑服务与集群之间的对应关系,使下游集群的健康状态向上游逻辑服务进行传递,通过逻辑服务与应用系统之间的组成关系,将各逻辑服务健康分聚合为应用系统健康分,完成从底层基础设施到上层业务系统的逐层传递,下层评分作为上层输入,通过层间依赖关系逐层传导计算,使得计算出来的应用系统健康分可以反映系统真实稳定度,提高根据应用系统健康分判断应用系统是否存在故障的准确性。