一种基于数据立方体的分布式系统故障诊断方法与流程

文档序号:12182432阅读:315来源:国知局

本发明属于数据挖掘技术领域,具体涉及一种基于数据立方体的分布式系统故障诊断方法。



背景技术:

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

与本发明相关的技术包括智能故障诊断、分布式信息系统故障定位技术、数据分析技术。

故障诊断技术是一种利用设备当前状态信息和历史状况,通过一定分析方法对设备状态进行评价的状态识别技术。智能故障诊断是利用人工智能技术,将系统当前状态和历史状况描述为数学符号,通过数理逻辑、机器学习等方法确定故障所在大致部位的技术。智能故障诊断技术包括故障树分析、规则推理、案例推理、决策树、神经网络、诊断贝叶斯网络诊断技术等。故障树分析方法具有强大知识表达能力,但对于复杂系统诊断知识获取困难。规则推理和案例推理诊断技术以符号形式显示地表示、存储和处理知识,表示直观、易理解,但缺点是基于符号推理的诊断技术知识获取困难、推理速度慢,不太适于实时诊断要求较高的诊断领域。决策树和神经网络诊断技术以数值矩阵形式表示和存储知识,计算过程等价于推理过程,不需人为干预,推理速度快,但缺点是决策树和诊断贝叶斯网络方法无法诊断未知故障,而神经网络模型参数的实际意义难以解释。

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

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

数据立方体是一类多维数据,让用户从多个角度探索和分析数据集。分布式系统测试数据集不仅包括模拟用户从不同地域、运营商,访问不同类型服务的组合的测试,测试数据集还形成了覆盖了分布式系统内部不同部署地域、设备类型、软件类型、操作系统运行状态等属性,因此自然地构成了多维数据。目前尚未见到基于数据立方体的分布式故障诊断方法。



技术实现要素:

为了弥补上述不足,本发明提供一种基于数据立方体的分布式系统故障诊断方法,通过获取数据立方体描述测试数据集,并对构建的数据立方体进行维度分析;从而快速准确地诊断分布式系统故障,有效防止系统失效产生的困扰和经济损失。

为了实现上述发明目的,本发明采取如下技术方案:

一种基于数据立方体的分布式系统故障诊断方法,所述方法包括下述步骤:

(1)获取分布式系统测试数据,其包括外部测试数据和内部监测定位数据;

(2)测试数据预处理,建立测试数据集;

(3)构建数据立方体:

(4)通过分析数据立方体诊断分布式系统故障;

(5)再次执行故障诊断。

优选的,所述步骤(1)的外部测试数据通过分布式系统覆盖的不同运营商和测试点定期进行效果测试获取,包括每次测试对应的测试地点、测试运营商、服务类型和测试结果。

优选的,所述步骤(1)中,获取内部监测定位数据包括:确定分布式系统内部路径,记录流量经过的网络设备、服务器、软件类型,以及服务器CPU占用率和运行状态值。

优选的,所述步骤(2)中,测试数据预处理包括:将外部测试数据和内部监测定位数据汇总;若其属性值中包含连续值,则执行数据泛化处理,使其变为离散值;获取属性取值不同时,测试数据中的测试次数和失效次数;生成测试数据集。

优选的,所述步骤(3)构建数据立方体包括:定义数据立方体由n个维度构成(a1,a2,...,an),每个属性对应一个维度;定义每个维度的取值,分别记录在不同取值下,测试数据集的测试次数、失效次数和失效概率。

优选的,所述步骤(4)诊断分布式系统故障包括:将测试样本投影到数据立方体不同属性对应的维度上;当某一设备或软件发生故障或运行状态异常时,样本投影到的各个维度上的失效概率随之增高,其中,失效概率差异最大为故障源;通过计算测试次数、失效次数和失效概率,确定故障源;具体为:

定义内部监测项对应的各维度上的失效概率差异性度量指标为Si;选择Si中的最小值Sg;若Sg小于判定阈值,则记下其属性ag,并对ag进一步判定;否则认为系统不存在故障,诊断过程结束;

确定属性ag的不同取值xg,j中失效概率最大值,分析该值所对应的设备、软件或运行状态的故障原因。

进一步地,所述失效概率差异性度量指标Si的表达式为:

式中,P’ij为类似信息熵,通过归一化失效概率Pij获得;Ωi表示属性ai取值的集合;j为Ωi中第j个取值。

进一步地,所述xj的失效概率为P(C|ai=xi,j,xi,j∈Ωi),其中Ωi为属性ai取值集合,C表示测试发生失效;

将P(C|ai=xi,j,xi,j∈Ωi)记作Pij,失效概率Pij根据测试数据集中的测试计算获得,其表达式为:

式中,nm(A)和nm(C)分别表示序号为m的不同属性值组合的测试次数和失效次数。

进一步地,将Pij归一化,获取类似信息熵P’ij

表达式:

优选的,所述步骤(5)再次执行故障诊断包括:删除故障设备、软件或运行状态相关的测试样本后,对剩余测试样本再次进行步骤(4)的故障诊断,直到失效概率差异性度量指标均大于判定阈值时,诊断终止。

与现有技术相比,本发明达到的有益效果是:

1)本发明将测试样本投影到数据立方体不同属性对应的维度上;当某个设备、软件故障或运行状态异常时,相关样本投影到各个维度上的失效概率有所增高,尤其故障源对应维度上的失效概率差异最为显著。正是利用上述系统故障时测试数据的统计特征,可以快速准确地发现故障;从而显著提高准确定位故障的效率,大大降低了对故障定位人员的要求。

2)本方法通过统计各维度失效概率的差异性诊断故障,不仅适用于发现确定地引起系统失效的因素,还适用于发现以较大概率发生故障的因素。当系统的属性之间存在相关性时,优先发现差异最大的属性、更高概念分层的属性,发现的少数的更高概念分层的故障,更符合实际情况。

附图说明

图1为基于数据立方体的分布式系统故障诊断方法流程图;

具体实施方式

以下将结合附图,对本发明的具体实施方式作进一步的详细说明。

如图1所示,一种基于数据立方体的分布式系统故障诊断方法,所述方法包括下述步骤:

(1)获取分布式系统测试数据,其包括外部测试数据和内部监测定位数据;外部测试数据通过分布式系统覆盖的不同运营商和测试点定期进行效果测试获取,包括每次测试对应的测试地点、测试运营商、服务类型和测试结果。

获取内部监测定位数据包括:确定分布式系统内部路径,记录流量经过的网络设备、服务器、软件类型,以及服务器CPU占用率和运行状态值。

(2)测试数据预处理,建立测试数据集;测试数据预处理包括:将外部测试数据和内部监测定位数据汇总;若其属性值中包含连续值,则执行数据泛化处理,使其变为离散值;获取属性取值不同时,测试数据中的测试次数和失效次数;生成测试数据集;如表1所示。

表1测试数据集示例

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

(3)构建数据立方体:定义数据立方体由n个维度构成(a1,a2,...,an),每个属性对应一个维度;定义每个维度的取值,分别记录在不同取值下,测试数据集的测试次数、失效次数和失效概率。

(4)通过分析数据立方体诊断分布式系统故障;具体步骤包括:

将测试样本投影到数据立方体不同属性对应的维度上;当某一设备或软件发生故障或运行状态异常时,样本投影到的各个维度上的失效概率随之增高;其中,失效概率差异最大为故障源;通过计算测试次数、失效次数和失效概率,确定故障源;具体为:

定义内部监测项对应的各维度上的失效概率差异性度量指标为Si;选择Si中的最小值Sg;若Sg小于判定阈值,则记下其属性ag,并对ag进一步判定;否则认为系统不存在故障,诊断过程结束;例如,表1中服务类型、系统地域、网络设备、服务器的维度上计算属性差异值,分别为0.93、0.76、0.74、0.82、0.99,最小值0.74小于给定阈值0.9,因此判定系统存在故障。

确定属性ag的不同取值xg,j中失效概率最大值,分析该值所对应的设备、软件或运行状态的故障原因。例如,表1中网络设备N11、N12、N21、N22的失效率分别为0.38、0.08、0.05、0.08,可以判定是设备N11发生故障。

其中,失效概率差异性度量指标Si的表达式为:

式中,P’ij为类似信息熵,通过归一化失效概率Pij获得;Ωi表示属性ai取值的集合;j为Ωi中第j个取值。

所述xj的失效概率为P(C|ai=xi,j,xi,j∈Ωi),其中Ωi为属性ai取值集合,C表示测试发生失效;

将P(C|ai=xi,j,xi,j∈Ωi)记作Pij,失效概率Pij根据测试数据集中的测试计算获得,其表达式为:

式中,nm(A)和nm(C)分别表示序号为m的不同属性值组合的测试次数和失效次数。

Pij归一化,获取类似信息熵P’ij的表达式:

具体故障诊断的操作流程为:计算内部监测项对应的各维度(a1,a2,...,an)上的失效概率差异性度量指标Si;对于属性ai,该属性值为xj时,失效概率为P(C|ai=xi,j,xi,j∈Ωi),其中Ωi是属性ai取值的集合,C表示测试发生失效。为了方便,将P(C|ai=xi,j,xi,j∈Ωi)简写为Pij。失效概率Pij的值通过数据集中的测试记录计算,其中nm(A)和nm(C)分别表示序号为m的不同属性值组合的测试次数和失效次数。将Pij归一化,获取类似信息熵的计算公式,即

则属性ai的差异性的计算公式为:

公式中Si取值范围为[0,1]。Si取值越小标识差异越明显,值为0表示差异最明显,也就是ai只取某一个值时失效率不为0,取其他值时均为0。Si值为1标识差异最小,即P’ij=1/|Ωi|。获取Si值中最小值Sg,如果Sg小于判定阈值ST时判定为存在故障,如果Sg大于判定阈值ST,则认为系统不存在故障,诊断过程结束。

(5)再次执行故障诊断。具体为:删除故障设备、软件或运行状态相关的测试样本后,对剩余测试样本再次进行步骤(4)的故障诊断,直到失效概率差异性度量指标均大于判定阈值时,诊断终止。例如表1中的样本去掉网络设备为N11的记录,再次计算各维度上的差异值依次是0.99、0.99、0.99、0.97、0.99,均大于阈值ST=0.9,由此判定其余维度上没有故障。

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

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