分布式系统的故障预测方法以及故障预测装置与流程

文档序号:28625530发布日期:2022-01-22 14:36阅读:162来源:国知局
分布式系统的故障预测方法以及故障预测装置与流程

1.本发明涉及故障诊断技术领域,具体地涉及一种分布式系统的故障预测方法以及一种分布式系统的故障预测装置。


背景技术:

2.随着科技的不断发展,以及业务的不断发展,技术人员提出分布式系统以满足实际的业务和功能需求,然而分布式系统在应用过程中可能出现错误或异常,将会为用户造成困扰。
3.为了解决上述技术问题,技术人员提出对分布式系统的故障预测方法,通过对分布式系统中的日志数据进行提取,具体为提取步长相同的多个时间区间对应的日志数据,进行预处理后输入预先训练好的故障预测模型,并生成下一个时间区间的故障预测结果。
4.然而在实际应用过程中,由于分布式系统虽然由多个子模块构成,但在各个子模块之间存在传播机制,因此现有技术在对分布式系统进行故障预测的过程中,存在故障预测信息不精确、预测考虑因素不全面等技术问题,导致在对分布式系统的故障进行预测时,预测结果不准确,预测效率低下,无法满足多样化的故障需求。


技术实现要素:

5.为了克服现有技术中存在的上述技术问题,本发明实施例提供一种分布式系统的故障预测方法以及预测装置,通过建立分布式系统在日志生成过程中的日志知识图谱,从而对分布式系统的日志生成行为特征进行深度分析,从而有效识别出分布式系统的故障情况,有效提高了对分布式系统的故障预测的精确性。
6.为了实现上述目的,本发明实施例提供一种分布式系统的故障预测方法,所述方法包括:获取在分布式系统的多种滑动时间窗口内的原始日志数据;基于所述原始日志数据建立日志知识图谱;基于所述日志知识图谱提取特征信息;基于所述特征信息生成故障预测模型;基于所述故障预测模型执行对应的故障预测操作。
7.优选地,所述方法还包括:在建立所述日志知识图谱之前,对所述原始日志数据进行预处理,获得预处理后日志数据;基于所述预处理后日志数据建立所述日志知识图谱。
8.优选地,所述基于所述预处理后日志数据建立所述日志知识图谱,包括:从每个所述预处理后日志数据中提取日志编号;对所述日志编号执行串联操作以确定每个所述日志编号之间的调用关系;基于所述预处理后日志数据、所述日志编号以及所述调用关系建立三元组数据;基于所述三元组数据生成所述日志知识图谱。
9.优选地,所述基于所述日志知识图谱提取特征信息,包括:基于预设向量转化规则对所述预处理后日志数据进行转化处理,获得第一日志特征;根据所述多种滑动时间窗口确定第二日志特征;对所述日志知识图谱进行图表示分析操作,获得第三日志特征;基于所述第一日志特征、所述第二日志特征以及所述第三日志特征生成所述特征信息。
10.优选地,所述对所述日志知识图谱进行图表示分析操作,获得第三日志特征,包
括:基于预设节点提取规则对所述日志知识图谱进行节点提取,获得对应的节点序列;基于所述节点序列对预设图嵌入学习算法进行训练,获得训练后算法;基于所述训练后算法确定所述第三日志特征,所述训练后算法表征为:其中u表示所述日志知识图谱中的节点,ns(u)表示通过采样方式ns得到的u节点的领域节点,f(u)为所述第三日志特征。
11.优选地,所述基于所述特征信息生成故障预测模型,包括:获取预设神经网络模型,所述预设神经网络模型基于半监督学习算法;基于第一计算规则确定第一异常评分,所述第一异常评分is(x)表征为:其中,h(x)表征随机森林划分样本x的平均深度,c(n)表征规范化参数;基于第二计算规则确定第二异常评分,所述第二异常评分ss(x)表征为:ss(x)=max e-(x-u)2
;其中,u表征根据预设聚类算法获得的异常中心;基于所述第一异常评分和所述第二异常评分获得异常总评分,所述异常总评分ts(x)表征为:ts(x)=θis(x)+(1-θ)ss(x);其中,θ表征权重系数;基于所述异常总评分ts(x)对所述特征信息进行处理,获得对应的预测样本;基于所述预测样本对所述预设神经网络模型进行训练,生成所述故障预测模型。
12.相应的,本发明实施例还提供一种分布式系统的故障预测装置,所述装置包括:数据获取单元,用于获取在分布式系统的多种滑动时间窗口内的原始日志数据;知识图谱建立单元,用于基于所述原始日志数据建立日志知识图谱;特征提取单元,用于基于所述日志知识图谱提取特征信息;模型生成单元,用于基于所述特征信息生成故障预测模型;故障预测单元,用于基于所述故障预测模型执行对应的故障预测操作。
13.优选地,所述装置还包括数据预处理单元,所述数据预处理单元用于:在建立所述日志知识图谱之前,对所述原始日志数据进行预处理,获得预处理后日志数据;基于所述预处理后日志数据建立所述日志知识图谱。
14.优选地,所述知识图谱建立单元包括:编号提取模块,用于从每个所述预处理后日志数据中提取日志编号;调用确定模块,用于对所述日志编号执行串联操作以确定每个所述日志编号之间的调用关系;三元数据生成模块,用于基于所述预处理后日志数据、所述日志编号以及所述调用关系建立三元组数据;知识图谱生成模块,用于基于所述三元组数据生成所述日志知识图谱。
15.优选地,所述特征提取单元包括:第一特征获取模块,用于基于预设向量转化规则对所述预处理后日志数据进行转化处理,获得第一日志特征;第二特征获取模块,用于根据所述多种滑动时间窗口确定第二日志特征;第三特征获取模块,用于对所述日志知识图谱进行图表示分析操作,获得第三日志特征;特征信息生成模块,用于基于所述第一日志特征、所述第二日志特征以及所述第三日志特征生成所述特征信息。
16.优选地,所述对所述日志知识图谱进行图表示分析操作,获得第三日志特征,包括:基于预设节点提取规则对所述日志知识图谱进行节点提取,获得对应的节点序列;基于所述节点序列对预设图嵌入学习算法进行训练,获得训练后算法;基于所述训练后算法确定所述第三日志特征,所述训练后算法表征为:其中,u
表示所述日志知识图谱中的节点,ns(u)表示通过采样方式ns得到的u节点的领域节点,f(u)为所述第三日志特征。
17.优选地,所述模型生成单元包括:预设模型获取模块,用于获取预设神经网络模型,所述预设神经网络模型基于半监督学习算法;第一评分确定模块,用于基于第一计算规则确定第一异常评分,所述第一异常评分is(x)表征为:其中,h(x)表征随机森林划分样本x的平均深度,c(n)表征规范化参数;第二评分确定模块,用于基于第二计算规则确定第二异常评分,所述第二异常评分ss(x)表征为:ss(x)=max e-(x-u)2
;其中,u表征根据预设聚类算法获得的异常中心;总评分确定模块,用于基于所述第一异常评分和所述第二异常评分获得异常总评分,所述异常总评分ts(x)表征为:ts(x)=θis(x)+(1-θ)ss(x);其中,θ表征权重系数;样本确定模块,用于基于所述异常总评分ts(x)对所述特征信息进行处理,获得对应的预测样本;模型生成模块,用于基于所述预测样本对所述预设神经网络模型进行训练,生成所述故障预测模型。
18.另一方面,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例提供的分布式系统的故障预测方法。
19.通过本发明提供的技术方案,本发明至少具有如下技术效果:
20.通过基于多种滑动时间窗口提取分布式系统在运行过程中的原始日志数据,能够有效提取出在各种运行状态下的日志数据,能够全面地表征分布式系统的各种运行状况,在此基础上,通过建立日志知识图谱,并对日志数据的特征进行提取,并通过半监督学习式的神经网络模型进行故障预测,从而大大提高了对分布式系统的故障预测准确性,满足了企业的实际需求。
21.本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
22.附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
23.图1是本发明实施例提供的分布式系统的故障预测方法的具体实现流程图;
24.图2是本发明实施例提供的分布式系统的故障预测方法中建立日志知识图谱的具体实现流程图;
25.图3是本发明实施例提供的分布式系统的故障预测方法中提取特征信息的具体实现流程图;
26.图4是本发明实施例提供的分布式系统的故障预测装置的结构示意图。
具体实施方式
27.以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
28.本发明实施例中的术语“系统”和“网络”可被互换使用。“多个”是指两个或两个以上,鉴于此,本发明实施例中也可以将“多个”理解为“至少两个”。“和/或”,描述关联对象的
关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。另外,需要理解的是,在本发明实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
29.请参见图1,本发明实施例提供一种分布式系统的故障预测方法,所述方法包括:
30.s10)获取在分布式系统的多种滑动时间窗口内的原始日志数据;
31.s20)基于所述原始日志数据建立日志知识图谱;
32.s30)基于所述日志知识图谱提取特征信息;
33.s40)基于所述特征信息生成故障预测模型;
34.s50)基于所述故障预测模型执行对应的故障预测操作。
35.为了解决背景技术中存在的上述技术问题,在一种可能的实施方式中,在分布式系统的运行过程中,首先获取在多种滑动时间窗口内的原始日志数据,例如根据随机生成的方式首先确定多种滑动时间窗格,并将上述多种滑动时间窗格作为观察期,此时进一步获取分布式系统在上述观察期内的原始日志数据,然后根据原始日志数据建立分布式系统的日志知识图谱。
36.然而在实际应用过程中,由于分布式系统的原始日志数据为计算机通信或数据运行的格式,而在对上述原始日志数据进行分析时,计算机可能无法识别出准确的日志数据,因此降低了后续故障预测的准确率。
37.为了解决上述技术问题,在本发明实施例中,所述方法还包括:在建立所述日志知识图谱之前,对所述原始日志数据进行预处理,获得预处理后日志数据;基于所述预处理后日志数据建立所述日志知识图谱。
38.在一种可能的实施方式中,在获取到上述原始日志数据后,进一步对原始日志数据进行预处理,例如首先原始日志数据进行解析后得到日志模板和日志内容,具体的,通过删除原始日志数据中的无效字符、将原始日志数据中的多种术语转换为标准术语、对原始日志数据中的变量进行统一替换,例如可以统一替换为相同token,并生成日志模板列。在解析生成日志内容的过程中,由于日志变量的特征具有以下的规律:字符串带有数字,字符串为无意义的序列,以及字符串位于特定标点符号附近等,例如位于各类括号、引号内、冒号后、运算符前后等,因此在解析的过程中,可以基于正则表达式、分词等文本分析技术对原始日志数据中的文本进行识别,在上述生成的日志模板的基础上,将模板字符所在的日志语句剔除,保留其余整句部分作为日志内容列,即获得了日志内容,从而将原始日志数据转换为可以进行机器识别和处理的标准化内容,此时再根据上述预处理后得到的预处理后日志数据建立日志知识图谱。
39.在本发明实施例中,通过对原始日志数据进行格式、内容上的转换和处理,从而将文本化、指令化的原始日志数据转换为机器可以识别和处理的标准化日志数据,从而便于机器在此基础上建立分布式系统的精确的日志知识图谱,提高了后续故障预测的准确性。
40.请参见图2,在本发明实施例中,所述基于所述预处理后日志数据建立所述日志知识图谱,包括:
41.s221)从每个所述预处理后日志数据中提取日志编号;
42.s222)对所述日志编号执行串联操作以确定每个所述日志编号之间的调用关系;
43.s223)基于所述预处理后日志数据、所述日志编号以及所述调用关系建立三元组数据;
44.s224)基于所述三元组数据生成所述日志知识图谱。
45.在一种可能的实施方式中,为了能够准确获取分布式系统中不同日志序列之间的调用关系,通过埋点的方式进行调用关系的获取。具体的,在每个请求入口生成对应的请求id,并打印至对应的原始日志数据中,在建立日志知识图谱的过程中,首先从每个预处理后日志数据中提取日志编号,例如该日志编号即为上述请求id,然后将上述日志编号执行串联操作以提取出在上述多种滑动时间窗格内日志序列的调用关系,上述调用关系包括但不限于http请求服务/客户端、rpc请求服务/客户端、数据库访问、中间件调用、本地方法调用等调用关系,然后根据上述存在调用关系的调用方、被调用方所在的日志序列作为实体,以日志序列id作为实体id,以及结合上述调用关系,生成“实体-关系-实体id”的三元组数据,并将所有的三元组数据导入图数据库中以生成日志知识图谱。
46.在本发明实施例中,通过对原始日志数据之间的调用关系进行采集和处理,并基于上述调用关系创建日志数据的日志知识图谱,从而在后续的故障预测的过程中,能够有效结合每个日志数据之间的调用关系对分布式系统的故障进行精确预测,而不是简单的对原始日志数据进行故障分析,从而大大提高了对分布式系统的故障预测的预测精确性。
47.请参见图3,在本发明实施例中,所述基于所述日志知识图谱提取特征信息,包括:
48.s31)基于预设向量转化规则对所述预处理后日志数据进行转化处理,获得第一日志特征;
49.s32)根据所述多种滑动时间窗口确定第二日志特征;
50.s33)对所述日志知识图谱进行图表示分析操作,获得第三日志特征;
51.s34)基于所述第一日志特征、所述第二日志特征以及所述第三日志特征生成所述特征信息。
52.在创建日志知识图谱后,为了对分布式系统的故障进行准确预测,因此需要对分布式系统的日志数据中的各项特征进行提取并进行分析。在一种可能的实施方式中,首先通过预设向量转化规则对预处理后日志数据进行转化处理,例如可以通过word2vec技术,将日志模板列转化为向量得到日志文本特征,即获得第一日志特征。然后根据上述多种滑动时间窗口,计算在每种滑动时间窗口所对应的时间内的时序特征,并将该时序特征作为日志统计特征,即获得第二日志特征。然后进一步根据日志知识图谱获取第三日志特征,例如利用图嵌入学习技术,对日志图谱中的节点提取图表示特征。
53.例如在本发明实施例中,所述对所述日志知识图谱进行图表示分析操作,获得第三日志特征,包括:基于预设节点提取规则对所述日志知识图谱进行节点提取,获得对应的节点序列;基于所述节点序列对预设图嵌入学习算法进行训练,获得训练后算法;基于所述训练后算法确定所述第三日志特征,所述训练后算法表征为:其中u表示所述日志知识图谱中的节点,ns(u)表示通过采样方式ns得到的u节点的领域节点,f(u)为所述第三日志特征。
54.在一种可能的实施方式中,首先基于预设节点提取规则对日志知识图谱进行节点提取,例如可以采用改进型随机游走的策略生成日志知识图谱的节点序列,然后通过上述
节点序列对预设图嵌入学习算法进行训练,例如以skip-gram的方式,根据上述节点序列生成样本对,并将样本对输入node2vec算法,并从node2vec算法的隐含层获取节点向量表示,具体的,该算法可以表征为:其中节点u的特征向量表征为f(u),即获取到第三日志特征。此时根据上述第一日志特征、第二日志特征和第三日志特征生成对应的特征信息。
55.在本发明实施例中,通过对日志数据在各个维度的特征进行分析和确定,并根据上述多个维度的特征生成对应的特征信息,上述特征信息能够有效表征分布式系统在运行过程中的日志行为中的各个特征,基于上述各个特征能够有效分析出分布式系统可能出现的故障,从而提高故障预测精确性。
56.进一步地,在本发明实施例中,所述基于所述特征信息生成故障预测模型,包括:获取预设神经网络模型,所述预设神经网络模型基于半监督学习算法;基于第一计算规则确定第一异常评分,所述第一异常评分is(x)表征为:其中,h(x)表征随机森林划分样本x的平均深度,c(n)表征规范化参数;基于第二计算规则确定第二异常评分,所述第二异常评分ss(x)表征为:ss(x)=max e-(x-u)2
;其中,u表征根据预设聚类算法获得的异常中心;基于所述第一异常评分和所述第二异常评分获得异常总评分,所述异常总评分ts(x)表征为:ts(x)=θis(x)+(1-θ)ss(x);其中,θ表征权重系数;基于所述异常总评分ts(x)对所述特征信息进行处理,获得对应的预测样本;基于所述预测样本对所述预设神经网络模型进行训练,生成所述故障预测模型。
57.在一种可能的实施方式中,为了进一步提高对分布式系统的故障的预测效率,以及预测精确性,通过创建基于半监督学习算法的神经网络模型进行自动分析。在本发明实施例中,首先获取预设神经网络模型,例如该预设神经网络模型是基于改进的adoa(anomaly detection with partially observed anomalies)生成,通过输入上述特征信息对该预设神经网络模型进行训练,从而生成故障预测模型。
58.具体的,首先根据第一计算规则确定第一异常评分,例如该第一异常评分is(x)表征为:其中,h(x)表征随机森林划分样本x的平均深度,c(n)表征规范化参数;然后进一步根据第二计算规则确定第二异常评分,该第二异常评分ss(x)表征为:ss(x)=max e-(x-u)2
;其中,u表征根据预设聚类算法获得的异常中心;然后将上述第一异常评分is(x)与第二异常评分ss(x)相加得到异常总评分,异常总评分ts(x)表征为:
59.ts(x)=θis(x)+(1-θ)ss(x);其中,θ表征权重系数,例如为第一异常评分的权重系数,θ的取值为[0,1],用于对第一异常评分和第二异常评分的重要程度进行平衡。
[0060]
此时进一步通过对特征信息进行阈值划分得到可信的正负样本,例如将异常总评分高于阈值的特征信息标记为故障样本。此时利用已有的正样本和可信的负样本组成对应的样本集合,即获得预测样本,然后将该预测样本输入上述预设神经网络模型中进行训练,从而得到最终的故障预测模型。此时,通过上述故障预测模型能够对分布式系统的故障进行精确、可靠的预测。
[0061]
在本发明实施例中,通过采用基于日志知识图谱的分布式系统的故障预测方法,
根据分布式系统在运行过程中所生成日志的特征进行故障分析,能够精确、有效地对分布式系统中的故障进行预测,大大提高了在分布式系统的故障预测中的预测精确性,满足了企业的实际需求。
[0062]
下面结合附图对本发明实施例所提供的分布式系统的故障预测装置进行说明。
[0063]
请参见图4,基于同一发明构思,本发明实施例提供一种分布式系统的故障预测装置,所述装置包括:数据获取单元,用于获取在分布式系统的多种滑动时间窗口内的原始日志数据;知识图谱建立单元,用于基于所述原始日志数据建立日志知识图谱;特征提取单元,用于基于所述日志知识图谱提取特征信息;模型生成单元,用于基于所述特征信息生成故障预测模型;故障预测单元,用于基于所述故障预测模型执行对应的故障预测操作。
[0064]
在本发明实施例中,所述装置还包括数据预处理单元,所述数据预处理单元用于:在建立所述日志知识图谱之前,对所述原始日志数据进行预处理,获得预处理后日志数据;基于所述预处理后日志数据建立所述日志知识图谱。
[0065]
在本发明实施例中,所述知识图谱建立单元包括:编号提取模块,用于从每个所述预处理后日志数据中提取日志编号;调用确定模块,用于对所述日志编号执行串联操作以确定每个所述日志编号之间的调用关系;三元数据生成模块,用于基于所述预处理后日志数据、所述日志编号以及所述调用关系建立三元组数据;知识图谱生成模块,用于基于所述三元组数据生成所述日志知识图谱。
[0066]
在本发明实施例中,所述特征提取单元包括:第一特征获取模块,用于基于预设向量转化规则对所述预处理后日志数据进行转化处理,获得第一日志特征;第二特征获取模块,用于根据所述多种滑动时间窗口确定第二日志特征;第三特征获取模块,用于对所述日志知识图谱进行图表示分析操作,获得第三日志特征;特征信息生成模块,用于基于所述第一日志特征、所述第二日志特征以及所述第三日志特征生成所述特征信息。
[0067]
在本发明实施例中,所述对所述日志知识图谱进行图表示分析操作,获得第三日志特征,包括:基于预设节点提取规则对所述日志知识图谱进行节点提取,获得对应的节点序列;基于所述节点序列对所述预设图嵌入学习算法进行训练,获得训练后算法;基于所述训练后算法确定所述第三日志特征,所述训练后算法表征为:其中u表示所述日志知识图谱中的节点,ns(u)表示通过采样方式ns得到的u节点的领域节点,f(u)为所述第三日志特征。
[0068]
在本发明实施例中,所述模型生成单元包括:预设模型获取模块,用于获取预设神经网络模型,所述预设神经网络模型基于半监督学习算法;第一评分确定模块,用于基于第一计算规则确定第一异常评分,所述第一异常评分is(x)表征为:其中,h(x)表征随机森林划分样本x的平均深度,c(n)表征规范化参数;第二评分确定模块,用于基于第二计算规则确定第二异常评分,所述第二异常评分ss(x)表征为:ss(x)=max e-(x-u)2
;其中,u表征根据预设聚类算法获得的异常中心;总评分确定模块,用于基于所述第一异常评分和所述第二异常评分获得异常总评分,所述异常总评分ts(x)表征为:ts(x)=θis(x)+(1-θ)ss(x);其中,θ表征权重系数;样本确定模块,用于基于所述异常总评分ts(x)对所述特征信息进行处理,获得对应的预测样本;模型生成模块,用于基于所述预测样本对
所述预设神经网络模型进行训练,生成所述故障预测模型。
[0069]
进一步地,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例所述的分布式系统的故障预测方法。
[0070]
以上结合附图详细描述了本发明实施例的可选实施方式,但是,本发明实施例并不限于上述实施方式中的具体细节,在本发明实施例的技术构思范围内,可以对本发明实施例的技术方案进行多种简单变型,这些简单变型均属于本发明实施例的保护范围。
[0071]
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施例对各种可能的组合方式不再另行说明。
[0072]
本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0073]
此外,本发明实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1