logo好方法网

一种故障定位方法、装置、电子设备及存储介质


技术摘要:
本发明涉及计算机技术领域,公开了一种故障定位方法、装置、电子设备及存储介质,其中方法包括以下步骤:对任一相邻节点所在边进行异常检测;根据异常检测结果构建节点之间的故障传播图;在所述故障传播图上随机游走定位故障根因,其中,所述定位故障根因通过构建所述  全部
背景技术:
因为在交付、扩容和自动化等方面的优势,基于服务的系统架构在大型服务的设 计中被越来越多地采用。一个基于服务的系统通常可以具有几十个到几百个的服务,它们 部署于成百上千的服务器上。虽然有很多技术应用于这类系统用来保证起质量,但是其中 的错误依然是不可避免的。系统的故障会带来极其巨大的经济损失。 通常,在每个服务上会部署众多的指标收集器(例如CPU使用率,服务响应率,成功 率等)和异常检测器,它们被用来检测服务的异常。但是,人工分析系统的故障依然是非常 有挑战的。因为在基于服务的系统上,为了完成一个用户的请求,需要许多服务通过相互调 用的形式配合实现。因此当一个服务发生故障的时候,会有众多的服务因为依赖关系而也 产生异常,发出告警。此时运维人员必须手动逐个查看这些异常的服务,排除掉其中仅仅只 是受影响而没有故障的服务,最终定位到根因服务。对于大型系统而言,不同的服务可能由 不同的运维人员甚至不同的部门管理,所以一次故障会涉及到众多的运维人员和部门参 与,定位成本极高。 为了快速定位故障根因,自动化的定位算法是非常必要的。本发明的发明人发现 实现自动化定位有以下几个难点:首先,服务之间有复杂的依赖关系。其次,基于服务的系 统迭代频率高,经常会进行变更。最后,这类系统上有着海量的指标,和故障有关的指标就 会被淹没在海量的指标中。 现有方法,需要通过许多过去积累的故障数据和对应的根因,即需要人工标注的 标注数据,从中学习才能得到模型,进而定位。
技术实现要素:
本发明的目的是解决上述提出的问题,提出了一种快速、稳健的故障定位方法,本 方案包括: 对任一相邻节点所在边进行异常检测; 根据异常检测结果构建节点之间的故障传播图; 在所述故障传播图上随机游走定位故障根因,其中,所述定位故障根因通过构建所述 故障传播图的转移概率矩阵计算每个节点的根因疑似度,通过所述根因疑似度确认故障根 因。 优选的,所述异常检测包括如下步骤: 对任一相邻节点所在边的所有指标进行异常度计算; 选择异常度最大值作为该边的异常度; 通过异常度的阈值判断每一边是否异常。 3 CN 111597070 A 说 明 书 2/8 页 优选的,所述异常度计算基于3-sigma算法; 优选的,所述异常度计算通过指标的观测值、均值和标准差得到。 优选的,所述构建节点之间的故障传播图的规则为: 若节点关系仅为调用关系,根据当前的异常指标自动确定故障传播方向,所述故障传 播方向与所述故障传播图的游走方向相反; 若节点关系存在资源共享关系,故障从一个节点转移到非调用关系的另一个节点; 优选的,所述随机游走的步骤包括: 为所述故障传播图的每个节点添加自环,所述自环的转移概率由该节点与异常度最大 的后节点和异常度最大的前节点的异常度差值决定; 优选的,所述随机游走包括反向游走。 优选的,任一所述节点为故障根因的疑似度由转移概率矩阵和该节点的异常度向 量决定。 优选的,所述故障定位方法包括:在异常检测之前通过数据预处理,去除离群点。 离群点指的是指标中的点,一个指标是很多个点组成的,我们使用指标历史数据 (即故障发生前的数据点)检测异常,为避免影响异常检测,去除历史数据里的异常数据点 (离群点)。 本发明的另一方面,提供一种故障定位装置,包括: 异常检测模块,用于对任一相邻节点所在边进行异常检测; 构建故障传播图模块,用于根据异常检测结果构建节点之间的故障传播图;以及 根因定位模块,在所述故障传播图上随机游走定位故障根因,其中,所述随机游走通过 构建所述故障传播图的邻接矩阵计算每个节点的根因疑似度,通过所述根因疑似度确认故 障根因。 优选的,所述异常检测模块包括: 异常计算子模块,用于对任一相邻节点所在边的所有指标进行异常计算; 选择子模块,用于选择异常度最大值作为该边的异常度; 异常确定子模块,通过异常度的阈值确定每一边是否异常。 优选的,所述异常计算基于3-sigma算法; 优选的,所述异常度计算基于指标的观测值、均值和标准差计算得到。 优选的,所述构建故障传播图模块的规则为: 若节点关系仅为调用关系,根据当前的异常指标自动确定故障传播方向,所述故障传 播方向与所述故障传播图的游走方向相反; 若节点关系存在资源共享关系,故障从一个节点转移到非调用关系的另一个节点。 优选的,所述根因定位模块包括: 添加自环子模块,用于为所述故障传播图的每个节点添加自环,所述自环的转移概率 由该节点的后节点和前节点的异常度差值决定。 优选的,所述随机游走包括反向游走。 优选的,任一所述节点为故障根因的疑似度由转移概率矩阵和该节点的异常度向 量决定。 本发明的另一方面在于,提供一种电子设备,包括: 4 CN 111597070 A 说 明 书 3/8 页 至少一个处理器;以及 与所述至少一个处理器耦合连接的存储器;其中, 所述存储器存储有计算机程序,所述计算机程序能够被所述至少一个处理器执行,以 实现本发明所述的方法。 本发明的另一方面在于,提供一种计算机可读存储介质,所述计算机可读存储介 质用于存储计算机程序,当所述计算机程序被执行时,能够实现本发明所述的方法。 有益效果: 本发明使用基于随机游走的算法,成功建模了故障通过负载的依赖关系传导的过程, 解决了现有技术中针对服务间依赖关系复杂的问题。 本发明是一个无参数化的定位算法,当故障发生、本算法被触发之后,只需要利用 触发后获取的信息即可进行定位,不需要预训练的模型。针对任何故障,本发明的算法都是 基于系统最新的状态直接定位的,而不基于(可能已过时的)预训练的模型。因此本发明可 以应对快速迭代的系统。 本发明使用一种快速、稳健的业务指标分析方法,可以快速处理大量指标和正确 处理多种类型的指标,作为根因定位的基础,归纳了不同情况下故障传播方向的定性规则; 以无监督的方式,综合多个指标,针对一条边有很多指标的情况,我们综合多指标给出一条 边的异常程度和故障传播的判断,通过服务之间指标异常对服务整体异常的影响力,定量 分析故障在服务之间的传播关系,基于此通过随机游走算法判断根因,为一套有效的自动 化定位故障根因服务的方案。 传统的基于阈值的检测方法不能自动适应监控指标在时间和空间上的剧烈变化, 本方案通过采用较常用的高斯分布假设,通过3-sigma规则计算异常度,实现了一种稳健快 速的异常检测方法。 针对传统方法不能对多指标进行综合定位的问题,本方案使用无监督的异常检测 算法,未使用到任何预先人工方法标注出来的标注数据,综合多指标的异常检测和根因定 位方法。在基于服务的系统中,故障在不同的微服务上可能表现在不同的指标上,因此基于 多指标的定位是必要的。本方案通过多指标的综合定位解决了异常在不同指标间传递的问 题。 附图说明 图1是本发明实施例1中故障定位方法的流程图; 图2是本发明实施例1中故障定位方法的步骤S1的步骤流程图; 图3是本发明实施例1中构建节点之间的故障传播图的规则图; 图4是本发明实施例1中故障定位装置的结构图; 图5是本发明实施例1中异常检测模块10的结构图; 图6是本发明实施例2中故障定位方法的3-sigma算法示意图; 图7是本发明实施例2中故障定位方法随机游走陷阱图。
下载此资料需消耗2积分,
分享到:
收藏