一种分布式系统根源故障定位的方法及装置与流程

文档序号:17287672发布日期:2019-04-03 03:41阅读:439来源:国知局
一种分布式系统根源故障定位的方法及装置与流程

本发明涉及数据挖掘技术领域,具体涉及一种分布式系统根源故障定位的方法及装置。



背景技术:

分布式系统由部署在不同地域的软硬件设施共同构成,向不同区域的互联网用户提供服务。对于分布式系统的监测通常包括模拟用户的外部测试和对系统内部设备和软件等的监测。由于分布式系统自身结构复杂,一个系统故障可能引起多项监测指标异常和大量测试失效,系统管理员难以快速准确地诊断故障原因。同时,系统内部对设备和软件的监测往往存在盲点,使得内部监测指标均正常,但仍然发生系统失效。因此,将外部测试数据和内部监测数据进行归纳与分析,发明有效的基于数据分析的分布式系统故障诊断的辅助工具非常有必要。现有技术中包括智能故障诊断、分布式信息系统故障定位技术、数据分析技术。

随着分布式信息系统的迅速发展,数据交互行为越来越复杂,系统故障不断攀升,分布式信息系统的智能维护也越来越受到关注。通常对系统运行状态的监测包括监测系统硬件性能指标、监测操作系统的属性、监测应用程序的吞吐量等,并进一步地利用数据挖掘、机器学习和统计方法进行自动化的故障排除和减少人工干预。基于事件处理的分布式信息系统故障定位技术通过构建一种基于集合的事件流模型,对事件进行形式化定义并定义操作,使得用户通过掌握几个简单的集合操作来定义复杂的故障规则。ibm研究人员通过主动探测结合贝叶斯网络进行故障诊断,提出序贯多故障方法求得问题的近似解。故障诊断技术是一种利用设备当前状态信息和历史状况,通过一定分析方法对设备状态进行评价的状态识别技术。智能故障诊断是利用人工智能技术,将系统当前状态和历史状况描述为数学符号,通过数理逻辑、机器学习等方法确定故障所在大致部位的技术。

智能故障诊断技术包括故障树分析、规则推理、案例推理、决策树、神经网络、诊断贝叶斯网络诊断技术等。故障树分析方法具有强大知识表达能力,但对于复杂系统诊断知识获取困难。规则推理和案例推理诊断技术以符号形式显示地表示、存储和处理知识,表示直观、易理解,但缺点是基于符号推理的诊断技术知识获取困难、推理速度慢,不太适于实时诊断要求较高的诊断领域。决策树和神经网络诊断技术以数值矩阵形式表示和存储知识,计算过程等价于推理过程,不需人为干预,推理速度快,但缺点是决策树和诊断贝叶斯网络方法无法诊断未知故障,而神经网络模型参数的实际意义难以解释。



技术实现要素:

本发明提供一种分布式系统根源故障定位的方法及装置,其目的是采用数据网格描述测试数据,对构建的数据网格进行多层次的描述和分析,从而快速准确地诊断分布式系统故障,有效防止系统失效产生的困扰和经济损失。

本发明的目的是采用下述技术方案实现的:

一种分布式系统根源故障定位的方法,其改进之处在于,所述方法包括:

获取分布式系统测试数据;

利用所述测试数据的各属性对应的属性值构建多层次的数据网格;

利用所述多层次的数据网格进行故障定位。

优选的,所述分布式系统测试数据,包括:测试属性及其对应的测试结果;

所述测试属性包括:外部属性及其对应的内部属性;所述外部属性包括:测试地址、运营商和被测服务,所述外部属性对应的内部属性包括:网络设备状态、操作系统状态和应用程序状态,其中,所述外部属性对应的内部属性根据所述外部属性,利用数据流跟踪法获取;

所述测试结果的属性值包括:被测服务可用和被测服务不可用。

优选的,所述利用所述测试数据的各属性对应的属性值构建多层次的数据网格之前,包括:

确定所述测试数据中各属性对应的属性值的枚举值;

其中,若所述测试数据中属性对应的属性值为连续值,则对该属性值进行离散化处理,并利用泛化方法对所述离散处理后的属性值进行分类,获取该属性值的枚举值;

若所述测试数据中属性对应的属性值为离散值,则利用泛化方法对所述属性值进行分类,获取该属性值的枚举值。

优选的,所述利用所述测试数据的各属性对应的属性值构建多层次的数据网格,包括:

通过测试属性的属性值构建第一层数据网格的各单元网格;

判断第s层中测试属性是否存在子属性,若是,则利用所述子属性的属性值与不存在子属性的测试属性的属性值构建第s+1层数据网格的各单元网格,否则,结束操作,其中,s为大于等于1的正整数。

进一步的,所述通过测试属性的属性值构建第一层数据网格的各单元网格,包括:

对不同测试属性的属性值进行排列组合,每一个排列组合结果作为第一层数据网格的一个单元网格;

所述利用所述子属性的属性值与不存在子属性的测试属性的属性值构建第s+1层数据网格的各单元网格,包括:

对不同子属性的属性值和不同不存在子属性的测试属性的属性值进行排列组合,每一个排列组合结果作为第s+1层数据网格的一个单元网格。

进一步的,所述利用所述多层次的数据网格进行故障定位,包括:

确定第一层数据网格各属性的失效概率区分度度量和各属性对应的属性值服务不可用占比的最大值;

若第一层数据网格各属性的失效概率区分度度量小于或等于区分度阈值且第一层数据网格各属性对应的属性值服务不可用占比的最大值大于等于故障阈值,则第一层数据网格各属性对应的属性值服务不可用占比的最大值对应的属性值所对应的单元网格为故障单元网格;

判断第s层数据网格中故障单元网格对应的测试属性是否存在子属性,若是,则确定第s+1层数据网格中所述子属性的失效概率区分度度量和所述子属性对应的属性值服务不可用占比的最大值,若所述子属性的失效概率区分度度量小于或等于区分度阈值且所述子属性对应的属性值服务不可用占比的最大值大于等于故障阈值,则将所述子属性对应的属性值服务不可用占比的最大值对应的属性值所对应的单元网格作为第s+1层数据网格的故障单元网格,若否,则将第s层数据网格中故障单元网格对应的测试属性的属性值作为故障原因。

其中,按下式确定第i个属性或第i个子属性的失效概率区分度度量si:

上式中,p'ij为类似信息熵,ωi为第i个属性或第i个子属性的属性值集合,|ωi|为第i个属性或第i个子属性的属性值总数;

其中,按下式确定所述类似信息熵p'ij:

上式中,pij为第i个属性的或第i个子属性第j个属性值的服务不可用占比。

本发明还提供一种分布式系统根源故障定位的装置,其改进之处在于,所述装置包括:

获取单元,获取分布式系统测试数据;

构建单元,利用所述测试数据的各属性对应的属性值构建多层次的数据网格;

判断单元,利用所述多层次的数据网格进行故障定位。

本发明的有益效果:

1)本发明提供的技术方案,采用多层次的数据网格对测试数据进行描述与分析,可以快速准确地发现分布式系统的根源故障,减少检测的故障原因数量,大大提高故障诊断的准确率和效率;

2)本发明提供的技术方案,基于网格聚类进行故障定位,不仅可以发现较为明确的故障原因,如某些属性值异常状态引起的失效故障原因;也可以发现不太明显的故障原因,即各属性值均正常时,最有可疑的属性和属性值;当根源故障原因不能准确判断时,可根据该线索,进行人工分析与判断。

附图说明

图1是本发明一种分布式根源故障定位的方法的流程图;

图2是本发明实施例中分布式系统根源故障定位方法应用场景示意图;

图3是本发明一种分布式根源故障定位的装置的结构示意图。

具体实施方式

下面结合附图对本发明的具体实施方式作详细说明。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。在实用中,数据分析可帮助人们做出判断,以便采取适当行动。在统计学领域,有些人将数据分析划分为描述性统计分析、探索性数据分析以及验证性数据分析;其中,探索性数据分析侧重于在数据之中发现新的特征,而验证性数据分析则侧重于已有假设的证实或证伪。分析方法主要有列表法、作图法,以及简单数学运算、统计、快速傅里叶变换、平滑、基线分析等。近年来,随着大数据时代的到来,数据的获取和存储能力得到了前所未有的发展,数据的价值日益凸显,数据分析在医疗、通信、能源等行业得到了深入而广泛的应用。

基于网格的方法把对象空间量化为有限数目的单元,形成了一个网格结构。所有的聚类操作都在这个网格结构(即量化的空间)上进行。基于网格的聚类算法主要有sting等。sting(statisticalinformationgrid-basedmethod)是一种基于网格的多分辨率聚类技术,它将空间区域划分为矩形单元。针对不同级别的分辨率,通常存在多个级别的矩形单元,这些单元形成了一个层次结构:高层的每个单元被划分为多个低一层的单元。关于每个网格单元属性的统计信息(例如平均值、最大值和最小值)被预先计算和存储。这些统计变量可以方便下面描述的查询处理使用。高层单元的统计变量可以很容易地从低层单元的变量计算得到。然而,以上数据分析方法往往用于未知信息的挖掘,但尚未用于解决分布式信息系统的故障诊断问题,本发明提供的一种分布式系统根源故障定位的方法,利用基于网格的聚类算法构建分布式系统测试数据的多层次数据网格,并对构建的数据网格进行多层次的描述和分析,如图1所示,包括:

101.获取分布式系统测试数据;

102.利用所述测试数据的各属性对应的属性值构建多层次的数据网格;

103.利用所述多层次的数据网格进行故障定位。

其中,所述分布式系统测试数据包括:测试属性及其对应的测试结果;

所述测试属性包括:外部属性及其对应的内部属性;所述外部属性包括:测试地址、运营商和被测服务,所述外部属性对应的内部属性包括:网络设备状态、操作系统状态和应用程序状态,其中,所述外部属性对应的内部属性根据所述外部属性,利用数据流跟踪法获取;

所述测试结果的属性值包括:被测服务可用和被测服务不可用。

进一步的,所述步骤102之前,包括:

确定所述测试数据中各属性对应的属性值的枚举值;

其中,若所述测试数据中属性对应的属性值为连续值,则对该属性值进行离散化处理,并利用泛化方法对所述离散处理后的属性值进行分类,获取该属性值的枚举值;

若所述测试数据中属性对应的属性值为离散值,则利用泛化方法对所述属性值进行分类,获取该属性值的枚举值。

例如,所述测试数据如表1所示:

表1测试数据

注:表中n(a)表示测试次数,n(e)表示失效次数。

进一步的,获取分布式系统测试数据后,所述步骤102,包括:

通过测试属性的属性值构建第一层数据网格的各单元网格;

判断第s层中测试属性是否存在子属性,若是,则利用所述子属性的属性值与不存在子属性的测试属性的属性值构建第s+1层数据网格的各单元网格,否则,结束操作,其中,s为大于等于1的正整数。

具体的,所述通过测试属性的属性值构建第一层数据网格的各单元网格,包括:

对不同测试属性的属性值进行排列组合,每一个排列组合结果作为第一层数据网格的一个单元网格;

所述利用所述子属性的属性值与不存在子属性的测试属性的属性值构建第s+1层数据网格的各单元网格,包括:

对不同子属性的属性值和不同不存在子属性的测试属性的属性值进行排列组合,每一个排列组合结果作为第s+1层数据网格的一个单元网格。

采用多层次的数据网格对测试数据进行描述与分析,可以快速准确地发现分布式系统的根源故障,减少检测的故障原因数量,大大提高故障诊断的准确率和效率,因此,所述步骤103,包括:

确定第一层数据网格各属性的失效概率区分度度量和各属性对应的属性值服务不可用占比的最大值;

若第一层数据网格各属性的失效概率区分度度量小于或等于区分度阈值且第一层数据网格各属性对应的属性值服务不可用占比的最大值大于等于故障阈值,则第一层数据网格各属性对应的属性值服务不可用占比的最大值对应的属性值所对应的单元网格为故障单元网格;

判断第s层数据网格中故障单元网格对应的测试属性是否存在子属性,若是,则确定第s+1层数据网格中所述子属性的失效概率区分度度量和所述子属性对应的属性值服务不可用占比的最大值,若所述子属性的失效概率区分度度量小于或等于区分度阈值且所述子属性对应的属性值服务不可用占比的最大值大于等于故障阈值,则将所述子属性对应的属性值服务不可用占比的最大值对应的属性值所对应的单元网格作为第s+1层数据网格的故障单元网格,若否,则将第s层数据网格中故障单元网格对应的测试属性的属性值作为故障原因。

其中,按下式确定第i个属性或第i个子属性的失效概率区分度度量si:

上式中,p'ij为类似信息熵,ωi为第i个属性或第i个子属性的属性值集合,|ωi|为第i个属性或第i个子属性的属性值总数;

按下式确定所述类似信息熵p'ij:

上式中,pij为第i个属性或第i个子属性的第j个属性值的服务不可用占比。

例如,分别计算表1中测试地、运营商、服务类型、系统地域和cpu的失效概率区分度度量,计算结果分别为0.74,0.99,0.63,0.61,0.99。当阈值设置为0.7时,服务类型和系统地域是与故障相关的属性,则选取服务类型和系统地域作为第一层数据网格的属性,并分别选取服务类型和系统地域对应的属性值的服务不可用占比最大的属性值t1和北京。

利用所述子属性的属性值与不存在子属性的测试属性的属性值构建第二层数据网格的各单元网格,服务类型的子属性为服务,系统地域的子属性为机房,则利用测试地、运营商、服务、机房和cpu对应的属性值构建第二层网格数据,并分别计算得到服务、机房的失效概率区分度度量为0.95,0.34,对比阈值0.7,得到机房是与故障相关的属性,选取机房对应的服务不可用占比最大的属性值为n2。

选取第二层数据网格的属性值对应的子属性值构建第三层数据网格,所述第三层数据网格的属性为服务和服务器,并计算得到服务器的失效概率区分度si为0.89,大于阈值0.7,因此服务器不是与故障相关的属性。则表1所对应的分布式系统并没有出现故障。

再例如,如图2所示,利用测试数据中属性为测试地和服务类型对应的属性值构建多层次网格数据,测试地的属性值包括:北京、上海、杭州和广州,服务类型的属性值包括服务类型1、服务类型2和服务类型3,对所述测试地的属性值和服务类型的属性值进行排列组合,利用所述排列组合结果构建第一层数据网格的各单元网格;

其中,北京的子属性为机房,其对应的属性值包括:机房1、机房2、机房3和机房4,服务类型1对应的子属性为服务,其对应的属性值包括:服务1、服务2、服务3和服务4;同上,利用机房1、机房2、机房3和机房4与服务1、服务2、服务3和服务4进行排列组合,利用所述排列组合结果构建第二层数据网格的单元网格;

依次类推,直至第s层数据网格对应的各属性都不存在子属性。

本发明还提供一种分布式系统根源故障定位的装置,如图3所示,所述装置包括:

获取单元,用于获取分布式系统测试数据;

构建单元,用于利用所述测试数据的各属性对应的属性值构建多层次的数据网格;

判断单元,用于利用所述多层次的数据网格进行故障定位。

所述分布式系统测试数据,包括:测试属性及其对应的测试结果;

所述测试属性包括:外部属性及其对应的内部属性;所述外部属性包括:测试地址、运营商和被测服务,所述外部属性对应的内部属性包括:网络设备状态、操作系统状态和应用程序状态,其中,所述外部属性对应的内部属性根据所述外部属性,利用数据流跟踪法获取;

所述测试结果的属性值包括:被测服务可用和被测服务不可用。

进一步的,所述利用所述测试数据的各属性对应的属性值构建多层次的数据网格之前,包括:

确定所述测试数据中各属性对应的属性值的枚举值;

其中,若所述测试数据中属性对应的属性值为连续值,则对该属性值进行离散化处理,并利用泛化方法对所述离散处理后的属性值进行分类,获取该属性值的枚举值;

若所述测试数据中属性对应的属性值为离散值,则利用泛化方法对所述属性值进行分类,获取该属性值的枚举值。

所述构建单元,用于:

构建模块,用于通过测试属性的属性值构建第一层数据网格的各单元网格;

第一判断模块,用于判断第s层中测试属性是否存在子属性,若是,则利用所述子属性的属性值与不存在子属性的测试属性的属性值构建第s+1层数据网格的各单元网格,否则,结束操作,其中,s为大于等于1的正整数。

所述构建模块,用于:

第一确定模块,用于对不同测试属性的属性值进行排列组合,每一个排列组合结果作为第一层数据网格的一个单元网格;

所述第一判断模块,用于:

第二确定模块,用于对不同子属性的属性值和不同不存在子属性的测试属性的属性值进行排列组合,每一个排列组合结果作为第s+1层数据网格的一个单元网格。

所述判断单元,用于:

第三确定模块,用于确定第一层数据网格各属性的失效概率区分度度量和各属性对应的属性值服务不可用占比的最大值;

第二判断模块,用于若第一层数据网格各属性的失效概率区分度度量小于或等于区分度阈值且第一层数据网格各属性对应的属性值服务不可用占比的最大值大于等于故障阈值,则第一层数据网格各属性对应的属性值服务不可用占比的最大值对应的属性值所对应的单元网格为故障单元网格;

第三判断模块,用于判断第s层数据网格中故障单元网格对应的测试属性是否存在子属性,若是,则确定第s+1层数据网格中所述子属性的失效概率区分度度量和所述子属性对应的属性值服务不可用占比的最大值,若所述子属性的失效概率区分度度量小于或等于区分度阈值且所述子属性对应的属性值服务不可用占比的最大值大于等于故障阈值,则将所述子属性对应的属性值服务不可用占比的最大值对应的属性值所对应的单元网格作为第s+1层数据网格的故障单元网格,若否,则将第s层数据网格中故障单元网格对应的测试属性的属性值作为故障原因。

第四确定模块,用于按下式确定第i个属性或第i个子属性的失效概率区分度度量si:

上式中,p'ij为类似信息熵,ωi为第i个属性或第i个子属性的属性值集合,|ωi|为第i个属性或第i个子属性的属性值总数;

第五确定模块,用于按下式确定所述类似信息熵p'ij:

上式中,pij为第i个属性或第i个子属性的第j个属性值的服务不可用占比。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1