一种系统故障检测方法、装置、设备及介质与流程

文档序号:29631726发布日期:2022-04-13 16:06阅读:62来源:国知局
一种系统故障检测方法、装置、设备及介质与流程

1.本发明涉及计算机系统领域,特别涉及一种系统故障检测方法、装置、设备及介质。


背景技术:

2.云原生环境主要有微服务、自动化发布、持续交付和容器化四个特点。微服务架构在独立部署、快速交付和扩展能力上表现出极大的优势,但同时,微服务系统中由于服务众多,服务之间的调用关系也会变得异常复杂,当系统出现问题时,运维管理员难以快速、精准、全面的寻找故障和排查问题。因此在服务系统环境中,故障检测和根因定位需要更加智能的算法模型。
3.目前,在私有云监控、大型微服务故障排查、云原生平台智能运维等服务及运维数据较多的服务系统场景中,当服务系统中出现问题时,由于服务系统中服务节点众多,服务节点之间的调用关系也会变得异常复杂,现有技术手段大多通过阈值检测和规则告警等方法进行故障的寻找和排查,运维人员往往难以快速、精准、全面的寻找故障和排查问题。
4.综上,如何自动、快速、精准、全面的对服务系统中的故障进行检测和定位是目前有待解决的问题。


技术实现要素:

5.有鉴于此,本发明的目的在于提供一种系统故障检测方法、装置、设备及介质,能够自动、快速、精准、全面的对服务系统中的故障进行检测和定位。其具体方案如下:
6.第一方面,本技术公开了一种系统故障检测方法,包括:
7.获取待检测服务系统中每个服务节点的当前运行数据;所述当前运行数据包括多种运行状态数据;
8.利用预设数据标准化方法对所述当前运行数据进行标准化处理,以得到各种所述运行状态数据分别对应的标准分数;
9.利用携带有故障类型标签的历史运行数据对基于逻辑回归算法构建的待训练模型进行训练,以得到训练后的监督学习模型;
10.提取所述训练后的监督学习模型中每种线性参数对应的权重系数;其中,不同的所述线性参数分别对应不同的所述运行状态数据;
11.利用所述线性参数的权重系数分别对相应的所述运行状态数据的标准分数进行加权计算,并基于加权得分对所述待检测服务系统进行故障定位。
12.可选的,所述获取待检测服务系统中每个服务节点的当前运行数据,包括:
13.获取待检测服务系统中每个服务节点的系统性能指标数据、微服务调用链数据和系统日志数据,以得到每个所述服务节点的当前运行数据。
14.可选的,所述获取待检测服务系统中每个服务节点的系统性能指标数据、微服务调用链数据和系统日志数据,以得到每个所述服务节点的当前运行数据,包括:
15.确定时间序列的滑动窗口的时间长度;
16.在每个所述滑动窗口的时间长度内基于第一预设时间间隔对所述待检测服务系统中每个服务节点的系统性能指标数据进行采样,以得到按照时序排列的与多个所述滑动窗口对应的多组系统性能指标数据;
17.在每个所述滑动窗口的时间长度内基于第二预设时间间隔对所述待检测服务系统中每个服务节点的微服务调用链数据进行采样,以得到按照时序排列的与多个所述滑动窗口对应的多组微服务调用链数据;
18.在每个所述滑动窗口的时间长度内基于第三预设时间间隔对所述待检测服务系统中每个服务节点的系统日志数据进行采样,以得到按照时序排列的与多个所述滑动窗口对应的多组系统日志数据。
19.可选的,所述利用预设数据标准化方法对所述当前运行数据进行标准化处理,以得到各种所述运行状态数据分别对应的标准分数,包括:
20.计算每组所述系统性能指标数据对应的z分数以及每组所述系统性能指标数据中不同系统性能指标数据之间的一阶差分数据对应的z分数;
21.获取每组所述微服务调用链数据中的微服务调用时间,并计算每组所述微服务调用链数据中的微服务调用时间对应的z分数以及每组所述微服务调用链数据中不同微服务调用时间之间的一阶差分数据对应的z分数;
22.利用预设日志模板对每组所述系统日志数据进行匹配以得到每组所述系统日志数据中不同系统日志数据对应的匹配分值,并计算每组所述系统日志数据中不同系统日志数据对应的匹配分值的z分数以及每组所述系统日志数据对应的不同匹配分值之间的一阶差分数据的z分数。
23.可选的,对所述当前运行数据中的任一组运行状态数据进行标准化处理的过程,包括:
24.利用优化后均值计算公式以及优化后方差计算公式,分别计算该组运行状态数据对应的均值和方差,并基于该组运行状态数据对应的均值和方差计算该组运行状态数据对应的z分数;其中,
25.所述优化后均值计算公式为:
26.所述优化后方差计算公式为:
27.其中,n表示该组运行状态数据对应的数据样本量,xi表示该组运行状态数据中的第i个数据样本,mean表示均值,s2表示方差。
28.可选的,所述利用携带有故障类型标签的历史运行数据对基于逻辑回归算法构建的待训练模型进行训练之前,还包括:
29.获取历史正常运行数据和历史故障运行数据;
30.向所述历史正常运行数据添加包含相应的运行时间区间标签以及无故障类型标签的标签信息,以得到作为负样本的第一历史运行数据;
31.向所述历史故障运行数据添加包含相应的运行时间区间标签以及故障类型标签
的标签信息,并对已添加标签信息的所述历史故障运行数据进行重采样得到作为正样本的第二历史运行数据,以使所述第二历史运行数据对应的样本数与所述第一历史运行数据对应的样本数之间的比例达到预设正负样本比例。
32.可选的,所述利用所述线性参数的权重系数分别对相应的所述运行状态数据的标准分数进行加权计算,包括:
33.通过预设专家知识获取接口获取用于对所述线性参数的权重系数进行优化的专家知识;
34.利用所述专家知识对所述线性参数的权重系数进行相应的调整,以得到所述线性参数的调整后权重系数;
35.利用所述线性参数的调整后权重系数分别对相应的所述运行状态数据的标准分数进行加权计算。
36.可选的,所述利用所述线性参数的权重系数分别对相应的所述运行状态数据的标准分数进行加权计算,并基于加权得分对所述待检测服务系统进行故障定位,包括:
37.利用所述线性参数的权重系数分别对每个所述服务节点中相应的所述运行状态数据的标准分数进行加权计算,以得到每个所述服务节点的加权得分;
38.按照加权得分从大到小的顺序从所有所述服务节点中筛选出预设数量个加权得分大于预设阈值的所述服务节点,以基于筛选后得到的所述服务节点确定出发生故障的目标服务节点;
39.从所述目标服务节点对应的所有所述线性参数的所述权重系数中筛选出最大权重系数,并将所述最大权重系数对应的所述线性参数的参数类型确定为相应的故障根因。
40.第二方面,本技术公开了一种系统故障检测装置,包括:
41.数据获取模块,用于获取待检测服务系统中每个服务节点的当前运行数据;所述当前运行数据包括多种运行状态数据;
42.标准化处理模块,用于利用预设数据标准化方法对所述当前运行数据进行标准化处理,以得到各种所述运行状态数据分别对应的标准分数;
43.模型训练模块,用于利用携带有故障类型标签的历史运行数据对基于逻辑回归算法构建的待训练模型进行训练,以得到训练后的监督学习模型;
44.权重系数提取模块,用于提取所述训练后的监督学习模型中每种线性参数对应的权重系数;其中,不同的所述线性参数分别对应不同的所述运行状态数据;
45.故障定位模块,用于利用所述线性参数的权重系数分别对相应的所述运行状态数据的标准分数进行加权计算,并基于加权得分对所述待检测服务系统进行故障定位。
46.第三方面,本技术公开了一种电子设备,包括:
47.存储器,用于保存计算机程序;
48.处理器,用于执行所述计算机程序,以实现前述公开的系统故障检测方法的步骤。
49.第四方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的系统故障检测方法的步骤。
50.可见,本技术首先获取待检测服务系统中每个服务节点的当前运行数据;所述当前运行数据包括多种运行状态数据;再利用预设数据标准化方法对所述当前运行数据进行标准化处理,以得到各种所述运行状态数据分别对应的标准分数;然后利用携带有故障类
型标签的历史运行数据对基于逻辑回归算法构建的待训练模型进行训练,以得到训练后的监督学习模型;并提取所述训练后的监督学习模型中每种线性参数对应的权重系数;其中,不同的所述线性参数分别对应不同的所述运行状态数据;最后利用所述线性参数的权重系数分别对相应的所述运行状态数据的标准分数进行加权计算,并基于加权得分对所述待检测服务系统进行故障定位。由此可见,本技术中基于从训练后的监督学习模型中获取每种线性参数对应的权重系数对每个服务节点的运行状态数据对应的标准分数进行加权计算以得到加权计算得分,通过将加权计算得到的每组对应的加权得分进行排序筛选出满足预设条件的加权得分,并相应确定出该加权得分对应的服务节点,从而实现了系统故障中故障的定位,进一步根据确定出的服务节点中的组件信息的权重系数确定出系统故障的根因,提高故障定位的效率。
附图说明
51.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
52.图1为本技术公开的一种系统故障检测方法流程图;
53.图2为本技术公开的一种具体的系统故障检测方法流程图;
54.图3为本技术公开的一种具体的系统故障检测方法流程图;
55.图4为本技术公开的一种具体的故障检测和根因确定流程图;
56.图5为本技术公开的一种具体的系统故障检测方法流程图;
57.图6为本技术公开的一种系统故障检测装置结构示意图;
58.图7为本技术公开的一种电子设备结构图。
具体实施方式
59.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
60.在私有云监控、大型微服务故障排查、云原生平台智能运维等服务及运维数据较多的服务系统场景中,当服务系统中出现问题时,由于服务系统中服务节点众多,服务节点之间的调用关系也会变得异常复杂,现有技术手段大多通过阈值检测和规则告警等方法进行故障的寻找和排查,运维人员往往难以快速、精准、全面的寻找故障和排查问题。为此,本技术实施例公开了一种系统故障检测方法、装置、设备及介质,能够自动、快速、精准、全面的对服务系统中的故障进行检测和定位。
61.参见图1所示,本技术实施例公开了一种系统故障检测方法,该方法包括:
62.步骤s11:获取待检测服务系统中每个服务节点的当前运行数据;所述当前运行数据包括多种运行状态数据。
63.本实施例中,需要获取待检测服务系统中每个服务节点的当前运行数据,其中,上
述待检测服务系统可以包括但不限于私有云监控系统、大型微服务系统或云原生平台智能运维系统中的任意一种系统。并且,每个服务节点的当前运行数据中包括多种运行状态数据,也即多种可以表征待检测服务系统运行状态的数据。
64.步骤s12:利用预设数据标准化方法对所述当前运行数据进行标准化处理,以得到各种所述运行状态数据分别对应的标准分数。
65.本实施例中,在获取到上述当前运行数据之后,鉴于当前运行数据中不同的运行状态数据具有不同的量纲、数据单位或者数量级。为了方便不同运行状态数据相互之间能够进行比较和加权,需要利用预设数据标准化方法对当前运行数据进行标准化处理,以将其转化为无量纲的纯数值,也即本实施例中通过对当前数据进行标准化处理后得到的各种运行状态数据分别对应的标准分数。
66.步骤s13:利用携带有故障类型标签的历史运行数据对基于逻辑回归算法构建的待训练模型进行训练,以得到训练后的监督学习模型。
67.本实施例中,需要利用预先准备好的携带有故障类型标签的历史运行数据对待训练模型进行训练以得到训练后的监督学习模型,其中,本实施例中上述待训练模型是基于逻辑回归算法构建的,也即本实施是使用logistic classifier(逻辑回归分类器)进行监督学习训练。需要注意的是,使用逻辑回归分类建立监督学习模型的目的并非是使用监督学习对待检测系统进行故障检测和根因定位,而是利用逻辑回归的计算过程,使用有限的携带有故障类型标签的历史运行数据调整模型中相应线性参数的权重。
68.步骤s14:提取所述训练后的监督学习模型中每种线性参数对应的权重系数;其中,不同的所述线性参数分别对应不同的所述运行状态数据。
69.本实施例中,参照步骤s13所述,使用逻辑回归分类算法建立监督学习模型的目的是为了调整模型中相应线性参数的权重,因此在模型训练完成之后,则从上述监督学习模型中提取出每种线性参数对应的权重系数,需要指出的是,不同的线性参数与不同的运行状态数据相对应。
70.步骤s15:利用所述线性参数的权重系数分别对相应的所述运行状态数据的标准分数进行加权计算,并基于加权得分对所述待检测服务系统进行故障定位。
71.本实施例中,上述利用所述线性参数的权重系数分别对相应的所述运行状态数据的标准分数进行加权计算,还可以包括:通过预设专家知识获取接口获取用于对所述线性参数的权重系数进行优化的专家知识;利用所述专家知识对所述线性参数的权重系数进行相应的调整,以得到所述线性参数的调整后权重系数;利用所述线性参数的调整后权重系数分别对相应的所述运行状态数据的标准分数进行加权计算。可以理解的是,在从监督学习模型中提取出权重系数后,还可以通过预设专家知识获取接口获取相应的专家知识,并利用专家知识对不同线性参数的权重系数进行调整。其中,专家知识既可以是从基于历史专家知识库建立的优化权重系数模型中提取的优化数据,并由所述预设专家知识获取接口获取到,这样一来,可以减少权重系数优化过程的时间,以及能够减少人力资源的浪费;也可以是通过所述预设专家知识获取接口获取到的人工优化权重系数的指令。通过所述专家知识进行优化所述权重系数能够提高后续进行所述待检测服务系统故障定位的精准性以及全面性。通过专家知识对权重系数进行调整的目的是为了提高模型对没有遇到的系统故障的敏感度,例如,对于一个关于网络的性能指标“system.tcp.syn_recv”,若该指标常常
与网络故障有关,但历史运行数据中并没有表示此类系统故障的故障类型标签,则对于这种情况,则需要适当上调与此类故障相应线性参数的权重系数。
72.可见,本技术实施例首先获取待检测服务系统中每个服务节点的当前运行数据;所述当前运行数据包括多种运行状态数据;再利用预设数据标准化方法对所述当前运行数据进行标准化处理,以得到各种所述运行状态数据分别对应的标准分数;然后利用携带有故障类型标签的历史运行数据对基于逻辑回归算法构建的待训练模型进行训练,以得到训练后的监督学习模型;并提取所述训练后的监督学习模型中每种线性参数对应的权重系数;其中,不同的所述线性参数分别对应不同的所述运行状态数据;最后利用所述线性参数的权重系数分别对相应的所述运行状态数据的标准分数进行加权计算,并基于加权得分对所述待检测服务系统进行故障定位。由此可见,本技术中基于从训练后的监督学习模型中获取每种线性参数对应的权重系数对每个服务节点的运行状态数据对应的标准分数进行加权计算以得到加权计算得分,通过将加权计算得到的每组对应的加权得分进行排序筛选出满足预设条件的加权得分,并相应确定出该加权得分对应的服务节点,从而实现了系统故障中故障的定位,进一步根据确定出的服务节点中的组件信息的权重系数确定出系统故障的根因,提高故障定位的效率。
73.参见图2所示,本技术实施例公开了一种具体的系统故障检测方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体包括:
74.步骤s21:获取待检测服务系统中每个服务节点的系统性能指标数据、微服务调用链数据和系统日志数据,以得到每个所述服务节点的当前运行数据。
75.本实施例中,需要获取待检测服务系统中每个服务节点的当前运行数据,上述当前运行数据主要包括以下三种运行状态数据:系统性能指标数据、微服务调用链数据和系统日志数据。其中,系统性能指标数据中指标的类型可以包括但不限于cpu(central processing unit,即中央处理器)、内存、磁盘、数据库、jvm(java virtual machine,即java虚拟机)、网络,i/o(input/output,即输入输出)、ha(highly available,即双机集群)中的任意一种或几种类型;微服务调用链数据中,每组调用链数据包含链路编号(traceid),每次调用的单元编号(spanid),调用的服务名(servicename),所在物理单元(cmdbid),调用时长(duration);系统日志数据中也包含与上述系统性能指标中相应类别的多组日志数据。
76.步骤s22:利用预设数据标准化方法对所述当前运行数据进行标准化处理,以得到各种所述运行状态数据分别对应的标准分数。
77.步骤s23:获取历史正常运行数据和历史故障运行数据。
78.本实施例中,需要对系统中已有的历史正常运行数据和历史故障运行数据进行获取,需要指出的是,系统中绝大部分(如99%以上)的运行数据都是正常的,只有极少数的(不到1%)运行数据存在发送故障的问题。
79.步骤s24:向所述历史正常运行数据添加包含相应的运行时间区间标签以及无故障类型标签的标签信息,以得到作为负样本的第一历史运行数据。
80.本实施例中,将上述获取到的历史正常运行数据作为负样本以得到第一历史运行数据,并且还需要向历史正常运行数据中添加包含相应运行时间区间标签和无故障类型标签的标签信息,上述无故障类型标签即为表征该运行数据不会导致系统故障的标签信息。
81.步骤s25:向所述历史故障运行数据添加包含相应的运行时间区间标签以及故障类型标签的标签信息,并对已添加标签信息的所述历史故障运行数据进行重采样得到作为正样本的第二历史运行数据,以使所述第二历史运行数据对应的样本数与所述第一历史运行数据对应的样本数之间的比例达到预设正负样本比例。
82.本实施例中,与步骤s24相似,需要将步骤s23获取到的历史故障运行数据作为正样本以得到第二历史运行数据,并且还需要向历史故障运行数据中添加包含相应的运行时间区间标签以及故障类型标签的标签信息,上述故障类型标签即为表征该运行数据会导致系统故障的标签信息。需要指出的是,由于系统中绝大部分的运行数据都是正常的,只有极少数的运行数据存在发送故障的问题,因此通过历史正常运行数据和历史故障运行数据分别得到的正负样本之间的比例非常不平衡,为了解决这种正负样本不平衡的问题,需要对添加标签信息的所述历史故障运行数据进行重采样,以提高正样本数在总样本数中的比例,从而使得第二历史运行数据对应的正样本数与所述第一历史运行数据对应的负样本数之间的比例达到预设正负样本比例。在本实施例中,上述预设正负样本比例为1:10。
83.步骤s26:利用所述第一历史运行数据和所述第二历史对基于逻辑回归算法构建的待训练模型进行训练,以得到训练后的监督学习模型。
84.本实施例中,是利用符合预设正负样本比例的第一历史运行数据和第二历史运行数据对基于逻辑回归算法构建的待训练模型进行训练,以得到训练后的监督学习模型。
85.步骤s27:提取所述训练后的监督学习模型中每种线性参数对应的权重系数;其中,不同的所述线性参数分别对应不同的所述运行状态数据。
86.步骤s28:利用所述线性参数的权重系数分别对相应的所述运行状态数据的标准分数进行加权计算,并基于加权得分对所述待检测服务系统进行故障定位。
87.其中,关于上述步骤s22、s27和s28更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
88.可见,本技术实施例中,对待检测服务系统中每个服务节点的系统性能指标数据、微服务调用链数据和系统日志数据进行获取,并利用预设数据标准化方法进行相应的标准分数计算;再通过对获取到的历史正常运行数据和历史故障运行数据进行相应的标签信息标记并作为正负样本数据的来源,鉴于正负样本数不平衡的情况下,对已添加标签信息的历史故障运行数据进行重采样,以提高正样本数在总样本数中的比例,从而使得第二历史运行数据对应的正样本数与所述第一历史运行数据对应的负样本数之间的比例达到预设正负样本比例。最后通过利用第一历史运行数据和第二历史运行数据对基于逻辑回归的待训练模型进行训练得到监督学习模型,并从中提取相应的权重系数对运行状态数据的标准分数进行加权计算,以对待检测服务系统进行故障定位。如此一来,通过少量历史故障运行数据和历史正常运行数据建立监督学习模型,后续即可通过流式计算的方式利用该模型对当前运行数据中的多种运行状态数据进行检测。
89.参见图3和图4所示,本技术实施例公开了一种具体的系统故障检测方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体包括:
90.步骤s31:确定时间序列的滑动窗口的时间长度,并在每个所述滑动窗口的时间长度内分别基于第一预设时间间隔、第二预设时间间隔和第三预设时间间隔对待检测服务系统中每个服务节点的系统性能指标数据、微服务调用链数据和系统日志数据进行采样,以
得到按照时序排列的与多个所述滑动窗口对应的多组系统性能指标数据、多组微服务调用链数据和多组系统日志数据。
91.本实施例中,首先需要确定时间序列的滑动窗口长度,本实施例中将滑动窗口长度确定为30分钟,则需要在30分钟内基于不同的预设时间间隔对当前运行数据进行采样。本实施例对待检测服务系统中每个服务节点的当前运行数据中的三种不同运行状态数据,也即系统性能指标数据、微服务调用链数据和系统日志数据分别基于第一预设时间间隔、第二预设时间间隔和第三预设时间间隔进行采样,并得到采样后的按照时序排列的与多个所述滑动窗口对应的多组系统性能指标数据、多组微服务调用链数据和多组系统日志数据。需要指出的是,上述第一预设时间间隔、第二预设时间间隔和第三预设时间间隔彼此之间可以相等或者不相等。例如,对于系统性能指标数据,可以将第一预设时间间隔设为1分钟,则在一个滑动窗口长度为30分钟的滑动窗口内进行采样后则可以得到30个采样点,并将这30个采样点对应的数据值按照时序排列得到一组系统性能指标数据。对于微服务调用链数据和系统日志数据也是如此,并且采样点的个数由预设时间间隔确定,当预设时间间隔不同时,采样后得到的采样点个数也不同;而当预设时间间隔相同时,采样点的个数也相同。
92.步骤s32:计算每组所述系统性能指标数据对应的z分数以及每组所述系统性能指标数据中不同系统性能指标数据之间的一阶差分数据对应的z分数。
93.本实施例中,在获取到上述多组系统性能指标数据后,需要对每组系统性能指标数据按照其数据指标类型进行分类并进行标准化处理,例如当数据指标类型为cpu时,则只需计算获取到的与cpu相关的指标数据。本实施例主要采取z分数标准化方法对数据进行标准化,也即计算每组系统性能指标数据对应的z分数,此外还需要计算每组所述系统性能指标数据中不同系统性能指标数据之间的一阶差分数据对应的z分数。需要注意的是,本实施例在对系统性能指标数据进行标准化处理之前,还需要对获取到的系统性能指标数据进行数据清洗,数据清洗的目的是为了将重复、多余的数据清除或者、将缺失的数据补充完整或者将错误的数据纠正或删除,从而提高数据的质量,以降低数据使用过程中的出错率。
94.其中,z分数的计算公式如下所示:
[0095][0096]
其中,metrici为一组运行状态数据相应数据指标类型的z分数;valuei为一组运行状态数据中每一个采样点的数据值;mean为一个滑动窗口内一组运行状态数据的均值,std为一个滑动窗口内一组运行状态数据的标准差。
[0097]
在传统计算均值和方差的公式中:
[0098][0099][0100]
而在流式计算中,由于数据量非常庞大,利用传统方法计算均值和方差的算法性
能较低,为此,本发明提出了一种时间复杂度为o(1)的均值和方差计算方法,能够有效改善模型性能。该方法主要是对上述公式进行了优化,具体优化方法如下:
[0101]
将传统计算方差的公式展开后可以得到:
[0102][0103]
再令则可以得到:
[0104]
优化后均值计算公式:
[0105]
优化后方差计算公式:
[0106]
也即,本技术实施例在对所述当前运行数据中的任一组运行状态数据进行标准化处理时,可以采用以下处理方式:利用上述优化后均值计算公式以及上述优化后方差计算公式,分别计算该组运行状态数据对应的均值和方差,并基于该组运行状态数据对应的均值和方差计算该组运行状态数据对应的z分数。式中,n表示该组运行状态数据对应的数据样本量,xi表示该组运行状态数据中的第i个数据样本,mean表示均值,s2表示方差。可以理解的是,在计算该组运行状态数据自身对应的z分数以及该组运行状态数据的一阶差分数据对应的z分数时,均可以采用上述优化后均值计算公式和优化后方差计算公式来计算各自对应的均值和方差,进而求解出各自对应的z分数。
[0107]
如此一来,只需要设计一个队列维护区间中的xi用于快速更新s0和s1的值,可在o(1)时间复杂度内计算出当前各个所述运行状态数据对应的标准分数,即无论所计算的数据规模有多大,都可以在一次计算后得出一个滑动窗口内一组运行状态数据的均值和一个滑动窗口内一组运行状态数据的方差,本技术方法可大大提高计算一个滑动窗口内一组运行状态数据的均值和一个滑动窗口内一组运行状态数据的方差的速度,进而提升了计算标准分数的速度以及系统故障检测的效率。
[0108]
步骤s33:获取每组所述微服务调用链数据中的微服务调用时间,并计算每组所述微服务调用链数据中的微服务调用时间对应的z分数以及每组所述微服务调用链数据中不同微服务调用时间之间的一阶差分数据对应的z分数。
[0109]
本实施例中,在获取到上述多组微服务调用链数据后,需要对每组微服务调用链数据进行图分解并计算服务调用的响应时间,此外由于每组调用链都会存在父节点和子节点,因此对于一组调用链数据,需要同时为父节点和子节点同时添加调用时长和表征调用关系的调用方向。基于上述微服务的调用时间和调用时长得到每组微服务调用链数据中总的微服务调用时间,再计算计算每组微服务调用链数据中总的微服务调用时间对应的z分数以及每组微服务调用链数据中不同微服务调用时间之间的一阶差分数据对应的z分数。其中,z分数的具体计算方法参照步骤s32中所示。
[0110]
步骤s34:利用预设日志模板对每组所述系统日志数据进行匹配以得到每组所述系统日志数据中不同系统日志数据对应的匹配分值,并计算每组所述系统日志数据中不同系统日志数据对应的匹配分值的z分数以及每组所述系统日志数据对应的不同匹配分值之
间的一阶差分数据的z分数。
[0111]
本实施例中,在获取到上述多组系统日志数据后,需要对每组系统日志数据利用相应的日志模板进行匹配和检测,目的是为了判断系统日志数据的类型(即属于cpu、内存或者磁盘等),并得到每组系统日志数据中不同系统日志数据类型对应的匹配分值,再计算每组系统日志数据中不同系统日志数据对应的匹配分值的z分数以及每组系统日志数据对应的不同匹配分值之间的一阶差分数据的z分数。其中,z分数的具体计算方法参照步骤s32中所示。
[0112]
步骤s35:利用携带有故障类型标签的历史运行数据对基于逻辑回归算法构建的待训练模型进行训练,以得到训练后的监督学习模型。
[0113]
步骤s36:提取所述训练后的监督学习模型中每种线性参数对应的权重系数;其中,不同的所述线性参数分别对应不同的所述运行状态数据。
[0114]
步骤s37:利用所述线性参数的权重系数分别对相应的所述运行状态数据的标准分数进行加权计算,并基于加权得分对所述待检测服务系统进行故障定位。
[0115]
其中,关于上述步骤s35、s36和s37更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
[0116]
可见,本技术实施例中,通过先确定时间序列的滑动窗口长度,并在滑动窗口的时间长度内基于预设时间间隔对待检测服务系统中每个服务节点的系统性能指标数据、微服务调用链数据和系统日志数据进行采样以得到多组系统性能指标数据、多组微服务调用链数据和多组系统日志数据;再通过计算每组系统性能指标数据、每组微服务调用链数据中的微服务调用时间、每组系统日志数据中不同系统日志数据对应的匹配分值及其相应的一阶差分数据的z分数,以便后续利用监督学习模型中提取到的不同线性参数对应的权重系数对上述得到的z分数进行加权计算,并基于加权得分对所述待检测服务系统进行故障定位。
[0117]
参见图5所示,本技术实施例公开了一种具体的系统故障检测方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体包括:
[0118]
步骤s41:获取待检测服务系统中每个服务节点的当前运行数据;所述当前运行数据包括多种运行状态数据。
[0119]
步骤s42:利用预设数据标准化方法对所述当前运行数据进行标准化处理,以得到各种所述运行状态数据分别对应的标准分数。
[0120]
步骤s43:利用携带有故障类型标签的历史运行数据对基于逻辑回归算法构建的待训练模型进行训练,以得到训练后的监督学习模型。
[0121]
步骤s44:提取所述训练后的监督学习模型中每种线性参数对应的权重系数;其中,不同的所述线性参数分别对应不同的所述运行状态数据。
[0122]
步骤s45:利用所述线性参数的权重系数分别对每个所述服务节点中相应的所述运行状态数据的标准分数进行加权计算,以得到每个所述服务节点的加权得分。
[0123]
本实施例中,在得到每种线性参数对应的权重系数后,利用该权重系数对待检测系统中每个服务节点中相应的运行状态数据的标准分数进行加权计算,例如,对于一个服务节点中的三种不同的运行状态数据,其中假设系统指标类型数据中包括cpu、内存、磁盘和数据库四种指标类型,则cpu、内存、磁盘和数据库都具有各自的标准分数,而微服务调用
链数据的调用时间和系统日志数据的匹配分值都有各自的标准分数,那么则利用从模型中提取出的各种线性参数的权重系数对上述相应的标准分值进行加权计算,以得到每个服务节点的加权得分。
[0124]
步骤s46:按照加权得分从大到小的顺序从所有所述服务节点中筛选出预设数量个加权得分大于预设阈值的所述服务节点,以基于筛选后得到的所述服务节点确定出发生故障的目标服务节点。
[0125]
本实施例中,通过步骤s45能得到每个服务节点的加权得分,再按照加权得分从大到小的顺序从所有服务节点中筛选出预设数量个加权得分大于预设阈值的服务节点,本实施例中,将上述预设数量设为3,并将上述预设阈值设为0.9,也即将所有加权得分按照从大到小的顺序排序后,将分值大于0.9的前3个服务节点筛选出来,并基于这3个服务节点确定出发生故障的目标服务节点。
[0126]
在确定目标服务节点的过程中,可以通过两种方式进行确定,在一种具体实施方式中,可以将上述3个服务节点都作为发生故障的目标服务节点,也即上述3个服务节点都存在故障;在另一种具体实施方式中,可以通过人工参与的方式从3个服务节点中根据一定规则再一次筛选出一个或两个服务节点作为发生故障的目标服务节点。
[0127]
步骤s47:从所述目标服务节点对应的所有所述线性参数的所述权重系数中筛选出最大权重系数,并将所述最大权重系数对应的所述线性参数的参数类型确定为相应的故障根因。
[0128]
本实施例中,在确定出发生故障的目标服务节点之后,再从上述目标服务节点对应的所有线性参数的权重系数中筛选出最大权重系数,例如,假设一个目标服务节点中cpu的权重系数为0.4,内存的权重系数为0.8,磁盘的权重系数为0.8、数据库的权重系数为0.2、网络的权重系数为0.5,则该目标服务节点中,权重系数最大的是0.8,接着则将最大权重系数0.8对应的线性参数的参数类型,也即将内存和磁盘确定为故障根因。
[0129]
其中,关于上述步骤s41、s42、s43和s44更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
[0130]
可见,本技术实施例中,通过利用线性参数的权重系数分别对每个服务节点中的运行状态数据的标准分数进行加权计算,以得到每个服务节点的加权得分,并按照加权得分从大到小的顺序从所有服务节点中筛选出预设数量个加权得分大于预设阈值的服务节点,以确定出发生故障的目标服务节点,最后将目标服务节点中最大权重系数对应的线性参数的参数类型确定为相应的故障根因。由此可见,本技术实施例通过计算每个服务节点加权得分,并对加权得分进行排序以确定出发生故障的目标服务节点的方式,可以实现对待检测系统中每个服务节点进行故障检测,并确定出目标服务节点中导致发送故障的根因。
[0131]
参见图6所示,本技术实施例还公开了一种系统故障检测装置,该装置包括:
[0132]
数据获取模块11,用于获取待检测服务系统中每个服务节点的当前运行数据;所述当前运行数据包括多种运行状态数据;
[0133]
标准化处理模块12,用于利用预设数据标准化方法对所述当前运行数据进行标准化处理,以得到各种所述运行状态数据分别对应的标准分数;
[0134]
模型训练模块13,用于利用携带有故障类型标签的历史运行数据对基于逻辑回归
算法构建的待训练模型进行训练,以得到训练后的监督学习模型;
[0135]
权重系数提取模块14,用于提取所述训练后的监督学习模型中每种线性参数对应的权重系数;其中,不同的所述线性参数分别对应不同的所述运行状态数据;
[0136]
故障定位模块15,用于利用所述线性参数的权重系数分别对相应的所述运行状态数据的标准分数进行加权计算,并基于加权得分对所述待检测服务系统进行故障定位。
[0137]
可见,本技术首先获取待检测服务系统中每个服务节点的当前运行数据;所述当前运行数据包括多种运行状态数据;再利用预设数据标准化方法对所述当前运行数据进行标准化处理,以得到各种所述运行状态数据分别对应的标准分数;然后利用携带有故障类型标签的历史运行数据对基于逻辑回归算法构建的待训练模型进行训练,以得到训练后的监督学习模型;并提取所述训练后的监督学习模型中每种线性参数对应的权重系数;其中,不同的所述线性参数分别对应不同的所述运行状态数据;最后利用所述线性参数的权重系数分别对相应的所述运行状态数据的标准分数进行加权计算,并基于加权得分对所述待检测服务系统进行故障定位。由此可见,本技术中基于从训练后的监督学习模型中获取每种线性参数对应的权重系数对每个服务节点的运行状态数据对应的标准分数进行加权计算以得到加权计算得分,通过将加权计算得到的每组对应的加权得分进行排序筛选出满足预设条件的加权得分,并相应确定出该加权得分对应的服务节点,从而实现了系统故障中故障的定位,进一步根据确定出的服务节点中的组件信息的权重系数确定出系统故障的根因,提高故障定位的效率。
[0138]
图7为本技术实施例提供的一种计算机设备的结构示意图。具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的由计算机设备执行的系统故障检测方法中的相关步骤。
[0139]
本实施例中,电源23用于为计算机设备20上的各硬件设备提供工作电压;通信接口24能够为计算机设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
[0140]
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
[0141]
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及数据223等,存储方式可以
是短暂存储或者永久存储。
[0142]
其中,操作系统221用于管理与控制计算机设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是windows、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由计算机设备20执行的系统故障检测方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223除了可以包括计算机设备接收到的由外部设备传输进来的数据,也可以包括由自身输入输出接口25采集到的数据等。
[0143]
进一步的,本技术实施例还公开了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的由系统故障检测过程中执行的方法步骤。
[0144]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0145]
以上对本发明所提供的系统故障检测方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1