掌桥专利:专业的专利平台
掌桥专利
首页

一种基于容器化云环境异常场景的故障确定方法及装置

文献发布时间:2024-04-18 20:02:40


一种基于容器化云环境异常场景的故障确定方法及装置

技术领域

本申请属于人工智能技术领域,可用于人工智能应用于金融行业的技术领域,具体涉及一种基于容器化云环境异常场景的故障确定方法及装置。

背景技术

目前,随着云计算与分布式技术的飞速发展,云上部署节点增多,且越来越多的用户将业务以容器的方式部署于云环境上,但由此所带来的监控信息量大以及调用链日渐复杂等因素,线上故障诊断变得愈发困难。

在现有的技术中,主要使用智能运维(Artificial Intelligence for ITOperations,AIOps)或基于专家规则自动定位的两种方式提高故障根因定位效率。这两种方式各自存在其问题和局限性,其中AIOps多用于单指标异常检测,在故障场景适用范围有限,定位准确率不高;基于有监督决策树算法的专家规则自动定位,其分类决策树模型的数据集需要大量的标签数据集以及专家经验累积,存在模型建立成本高,适用场景有限等问题。

综上所述,对于常见容器化云环境异常场景缺少一种通用的故障诊断方法,难以实现线上故障的快速定位,导致测试、运维成本较高。

发明内容

本发明可用于人工智能技术在金融方面应用的技术领域,也可用于除金融领域之外的任意领域。

本发明的一个目的在于提供一种基于容器化云环境异常场景的故障确定方法,该方法一方面针对于当前云运维有限数量的标注数据和大量的无标注数据场景,使用半监督自学习模型,对机器学习性能起到改进的作用,降低有标签数据的获取成本,提高云运维通用诊断装置的稳定性和泛化能力。

第二方面,本发明通过页面联机、定时任务或报警联动的方式触发诊断树执行的方法,在单一原子诊断和简单组合诊断的基础上,支持按逻辑编排,模拟人工排障过程,有效节省了人工成本,提高了故障诊断装置的灵活性和可靠性,可以较好地适用于银行、金融机构、互联网金融公司等存在复杂业务链路的云上故障诊断场景。

本发明的另一个目的在于提供一种基于容器化云环境异常场景的故障确定装置。本发明的还一个目的在于提供一种电子设备,该电子设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述基于容器化云环境异常场景的故障确定方法的步骤。本发明的还一个目的在于提供一种可读介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述基于容器化云环境异常场景的故障确定方法的步骤。

为解决本申请背景技术中的技术问题,本发明提供以下技术方案:

第一方面,本发明提供一种基于容器化云环境异常场景的故障确定方法包括:

获取所述云环境所部署的节点的监控指标;

根据所述监控指标以及预先生成的故障诊断模型确定所述云环境所发生的故障;其中,所述故障诊断模型是基于决策树算法以及预先生成的训练数据所生成的;所述训练数据是基于半监督学习算法,并根据具有标签的原始监控指标以及无标签的原始监控指标所生成的,且所述具有标签的原始监控指标的数量小于所述无标签的原始监控指标的数量。

在本发明的一些实施例中,生成所述训练数据的步骤包括:

进行以下迭代操作,直至达到迭代停止条件;

根据所述具有标签的原始监控指标、所述无标签的原始监控指标以及半监督学习模型生成初始分类器;

根据所述具有标签的原始监控指标、所述无标签的原始监控指标以及所述初始分类器生成具有伪标签的原始监控指标;

根据当前迭代轮次的所述具有伪标签的原始监控指标、所述当前迭代轮次的所述具有标签的原始监控指标以及所述当前迭代轮次的无标签的原始监控指标以及半监督学习模型进行下一轮迭代操作。

在本发明的一些实施例中,根据所述具有标签的原始监控指标、所述无标签的原始监控指标以及所述初始分类器生成具有伪标签的原始监控指标,包括:

根据所述当前迭代轮次的半监督学习模型的激活函数最小化所述无标签的原始监控指标的概率条件熵;

根据最小化后的无标签的原始监控指标的概率条件熵以及所述无标签的原始监控指标生成所述具有伪标签的原始监控指标。

在本发明的一些实施例中,根据所述监控指标以及预先生成的故障诊断模型确定所述云环境所发生的故障,包括:

将所述监控指标输入至所述故障诊断模型中,以生成所述故障对应的决策树;

根据所述决策树确定所述故障对应的布林逻辑组合低阶事件;

根据所述布林逻辑组合低阶事件确定所述云环境所发生的故障。

在本发明的一些实施例中,所述决策树包括多个故障诊断节点以及两个故障诊断节点之间的连接边;其中:

所述故障诊断节点用于根据监控指标进行单一的故障诊断;

所述连接边用于对其所连接的两个故障诊断节点进行逻辑流转;所述连接边的类型包括:包含、不包含以及不判断。

在本发明的一些实施例中,所述根据当前迭代轮次的所述具有伪标签的原始监控指标、所述当前迭代轮次的所述具有标签的原始监控指标以及所述当前迭代轮次的无标签的原始监控指标以及半监督学习模型进行下一轮迭代操作,包括:

根据当前迭代轮次的所述具有伪标签的原始监控指标、所述当前迭代轮次的所述具有标签的原始监控指标生成所述下一轮迭代操作的具有标签的原始监控指标;

将所述下一轮迭代操作的具有标签的原始监控指标以及所述当前迭代轮次的无标签的原始监控指标输入至所述当前迭代轮次的半监督学习模型,以对所述当前迭代轮次的半监督学习模型进行下一轮迭代操作。

在本发明的一些实施例中,所述监控指标包括业务监控指标以及云资源监控指标;

所述迭代停止条件包括迭代过程收敛及/或迭代次数达到预设值。

第二方面,本发明提供一种基于容器化云环境异常场景的故障确定装置,该装置包括:

监控指标获取模块,用于获取所述云环境所部署的节点的监控指标;

故障确定模块,用于根据所述监控指标以及预先生成的故障诊断模型确定所述云环境所发生的故障;其中,所述故障诊断模型是基于决策树算法以及预先生成的训练数据所生成的;所述训练数据是基于半监督学习算法,并根据具有标签的原始监控指标以及无标签的原始监控指标所生成的,且所述具有标签的原始监控指标的数量小于所述无标签的原始监控指标的数量。

在本发明的一些实施例中,一种基于容器化云环境异常场景的故障确定装置还包括:

训练数据生成模块,用于生成所述训练数据,所述训练局生成模块包括:

迭代操作单元,用于进行以下迭代操作,直至达到迭代停止条件;

初始分类器生成单元,用于根据所述具有标签的原始监控指标、所述无标签的原始监控指标以及半监督学习模型生成初始分类器;

伪标签指标生成单元,用于根据所述具有标签的原始监控指标、所述无标签的原始监控指标以及所述初始分类器生成具有伪标签的原始监控指标;

下一轮迭代操作单元,用于根据当前迭代轮次的所述具有伪标签的原始监控指标、所述当前迭代轮次的所述具有标签的原始监控指标以及所述当前迭代轮次的无标签的原始监控指标以及半监督学习模型进行下一轮迭代操作。

在本发明的一些实施例中,所述伪标签指标生成单元包括:

概率条件熵最小化单元,用于根据所述当前迭代轮次的半监督学习模型的激活函数最小化所述无标签的原始监控指标的概率条件熵;

伪标签指标生成子单元,用于根据最小化后的无标签的原始监控指标的概率条件熵以及所述无标签的原始监控指标生成所述具有伪标签的原始监控指标。

在本发明的一些实施例中,所述故障确定模块包括:

决策树生成单元,用于将所述监控指标输入至所述故障诊断模型中,以生成所述故障对应的决策树;

事件确定单元,用于根据所述决策树确定所述故障对应的布林逻辑组合低阶事件;

故障确定单元,用于根据所述布林逻辑组合低阶事件确定所述云环境所发生的故障。

在本发明的一些实施例中,所述决策树包括多个故障诊断节点以及两个故障诊断节点之间的连接边;其中:

所述故障诊断节点用于根据监控指标进行单一的故障诊断;

所述连接边用于对其所连接的两个故障诊断节点进行逻辑流转;所述连接边的类型包括:包含、不包含以及不判断。

在本发明的一些实施例中,所述下一轮迭代操作单元包括:

下一轮标签指标生成单元,用于根据当前迭代轮次的所述具有伪标签的原始监控指标、所述当前迭代轮次的所述具有标签的原始监控指标生成所述下一轮迭代操作的具有标签的原始监控指标;

下一轮迭代操作子单元,用于将所述下一轮迭代操作的具有标签的原始监控指标以及所述当前迭代轮次的无标签的原始监控指标输入至所述当前迭代轮次的半监督学习模型,以对所述当前迭代轮次的半监督学习模型进行下一轮迭代操作。

在本发明的一些实施例中,所述监控指标包括业务监控指标以及云资源监控指标;

所述迭代停止条件包括迭代过程收敛及/或迭代次数达到预设值。

第三方面,本发明提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现一种基于容器化云环境异常场景的故障确定方法的步骤。

第四方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现基于容器化云环境异常场景的故障确定方法的步骤。

第五方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现基于容器化云环境异常场景的故障确定方法的步骤。

从上述描述可知,本发明实施例提供一种基于容器化云环境异常场景的故障确定方法及装置,基于容器化云环境异常场景的故障确定方法包括:首先获取云环境所部署的节点的监控指标;接着,根据监控指标以及预先生成的故障诊断模型确定云环境所发生的故障;其中,故障诊断模型是基于决策树算法以及预先生成的训练数据所生成的;训练数据是基于半监督学习算法,并根据具有标签的原始监控指标以及无标签的原始监控指标所生成的,且具有标签的原始监控指标的数量小于无标签的原始监控指标的数量。

本发明针对于当前云运维有限数量的标注数据和大量的无标注数据场景,使用半监督自学习模型,对机器学习性能起到改进的作用,降低有标签数据的获取成本,提高云运维通用诊断装置的稳定性和泛化能力。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的实施例中基于容器化云环境异常场景的故障确定方法的流程示意图一;

图2为本发明的实施例中基于容器化云环境异常场景的故障确定方法的流程示意图二;

图3为本发明的实施例中基于容器化云环境异常场景的故障确定方法的步骤300的流程示意图;

图4为本发明的实施例中基于容器化云环境异常场景的故障确定方法的步骤303的流程示意图;

图5为本发明的实施例中基于容器化云环境异常场景的故障确定方法的步骤200的流程示意图;

图6为本发明的实施例中基于容器化云环境异常场景的故障确定方法的步骤201的流程示意图;

图7为本发明的实施例中基于容器化云环境异常场景的故障确定方法的步骤304的流程示意图;

图8为本发明的具体实施方式中基于容器化云环境异常场景的故障确定系统各组成部分的交互图;

图9为本发明的具体实施方式中基于容器化云环境异常场景的故障确定方法的流程示意图;

图10为本发明的具体实施方式中自学习模型训练流程图;

图11为本发明的具体实施方式中半监督自学习模型预测概率的原理示意图;

图12为本发明的具体实施方式中业务异常并行诊断树的运行流程示意图

图13为本发明的具体实施方式中业务异常串行诊断树的运行流程示意图

图14为本发明的具体实施方式中基于容器化云环境异常场景的故障确定系统的方块图一;

图15为本发明的具体实施方式中基于容器化云环境异常场景的故障确定系统的方块图二;

图16为本发明的实施例中训练局生成模块30的方块图;

图17为本发明的实施例中伪标签指标生成单元30c的方块图;

图18为本发明的实施例中故障确定模块20的方块图;

图19为本发明的实施例中下一轮迭代操作单元30d的方块图;

图20为本发明的实施例中的电子设备的结构示意图。

具体实施方式

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

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

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

本申请技术方案中对数据的获取、存储、使用、处理等均符合法律法规的相关规定。

现有的云运维故障诊断技术,问题分析与应急执行完全依赖个人经验,又由于云上环境的复杂性,需要通过多方渠道才能获取故障相关数据,导致运维成本高、效率低,流程繁琐、缺少灵活性,不利于对云上故障排查全过程的管理。此外现有提升故障根因定位效率的基于故障树分析法专家规则自动定位,需要大量的专家经验累积,而有标签数据集的获取成本高,专家经验积累耗时长,适用场景有限。

基于上述技术痛点,本发明的实施例提供一种基于容器化云环境异常场景的故障确定方法的具体实施方式,参见图1,该方法具体包括如下内容:

步骤100:获取所述云环境所部署的节点的监控指标;

步骤200:根据所述监控指标以及预先生成的故障诊断模型确定所述云环境所发生的故障;其中,所述故障诊断模型是基于决策树算法以及预先生成的训练数据所生成的;所述训练数据是基于半监督学习算法,并根据具有标签的原始监控指标以及无标签的原始监控指标所生成的,且所述具有标签的原始监控指标的数量小于所述无标签的原始监控指标的数量。

从上述描述可知,本发明实施例提供一种基于容器化云环境异常场景的故障确定方法,包括:首先获取云环境所部署的节点的监控指标;接着,根据监控指标以及预先生成的故障诊断模型确定云环境所发生的故障;其中,故障诊断模型是基于决策树算法以及预先生成的训练数据所生成的;训练数据是基于半监督学习算法,并根据具有标签的原始监控指标以及无标签的原始监控指标所生成的,且具有标签的原始监控指标的数量小于无标签的原始监控指标的数量。

本发明以业务监控、云资源监控指标数据作为标签数据集,通过引入半监督学习模型训练标签数据集得到初始分类器,用以训练无标签原始数据集,筛选置信度高的样本作为伪标签加入标签数据集,再重新训练分类器。重复此过程直到收敛或达到一定迭代次数后得到可靠有标签数据。最终实现利用无标签数据的潜在信息提高模型的泛化能力和准确性的目的。

针对步骤100,监控指标可以包括:资源利用率、可用性和可靠性指标、安全指标以及成本指标,具体地:

资源利用率:监控云环境的资源利用率,包括CPU使用率、内存使用率、存储使用率等。这些指标用于评估资源的健康状况和利用效率。

可用性和可靠性:监控云环境的可用性和可靠性指标,例如服务的可用时间、故障发生次数、恢复时间等。这些指标用于评估云环境的稳定性和可靠性。

性能指标:监控云环境的性能指标,例如请求响应时间、吞吐量、网络延迟等。这些指标用于评估云环境的性能表现和用户体验。

安全指标:监控云环境的安全指标,包括入侵检测、网络流量监控、访问控制等。这些指标用于评估云环境的安全性和对潜在威胁的应对能力。

成本指标:监控云环境的成本指标,例如资源消耗、费用结构等。这些指标用于评估云环境的成本效益和优化资源使用。

针对步骤200,故障诊断模型中的每个内部节点表示一个特征或属性,每个分支代表该特征的一个取值,而每个叶节点代表一个类别或一个回归值。决策树算法通过对训练数据集进行递归地二分或多分,在每个节点上选择最佳的特征和划分点,以最大程度地提高分类或回归的准确性。

针对训练数据,假设数据样本具有多个特征视角,将特征分成两个或多个互斥的子集。然后,使用有标记数据对每个视角的模型进行训练,并使用未标记数据交叉验证模型。最后,互相交换预测结果并将高置信度的样本标记为新的有标记数据,继续训练模型。相比于仅使用有标记数据的监督学习和仅使用无标记数据的无监督学习,半监督学习算法可以在有限的标记数据下获得更好的性能。

在本发明的一些实施例中,参见图2,一种基于容器化云环境异常场景的故障确定方法,还包括:

步骤300:生成所述训练数据,接着,参见图3,步骤300包括:

步骤301:进行以下迭代操作,直至达到迭代停止条件;

步骤302:根据所述具有标签的原始监控指标、所述无标签的原始监控指标以及半监督学习模型生成初始分类器;

步骤303:根据所述具有标签的原始监控指标、所述无标签的原始监控指标以及所述初始分类器生成具有伪标签的原始监控指标;

需要指出的是,在步骤304实施之前,还需要对步骤303中的伪标签的原始监控指标进行筛选,优选地,筛选置信度高的样本作为伪标签的原始监控指标加入标签数据集,再重新训练分类器。

步骤304:根据当前迭代轮次的所述具有伪标签的原始监控指标、所述当前迭代轮次的所述具有标签的原始监控指标以及所述当前迭代轮次的无标签的原始监控指标以及半监督学习模型进行下一轮迭代操作。

在步骤301至步骤304中,通过引入半监督学习模型训练标签数据集得到初始分类器,用以训练无标签原始数据集,筛选置信度高的样本作为伪标签加入标签数据集,再重新训练分类器。重复此过程直到收敛或达到一定迭代次数后得到可靠有标签数据。实现利用无标签数据的潜在信息提高模型的泛化能力和准确性。

在本发明的一些实施例中,参见图4,步骤303包括:

步骤3031:根据所述当前迭代轮次的半监督学习模型的激活函数最小化所述无标签的原始监控指标的概率条件熵;

为了最小化概率条件熵,可以使用梯度下降等优化方法来调整模型参数,使得模型对无标签数据的预测更加准确和一致。可以理解的是,概率条件熵用来衡量在已知一个变量的情况下,另一个随机变量的不确定性。最小化无标签数据的概率条件熵意味着想要让半监督学习模型对于无标签数据给出尽可能确定的预测。

步骤3032:根据最小化后的无标签的原始监控指标的概率条件熵以及所述无标签的原始监控指标生成所述具有伪标签的原始监控指标。

首先计算无标签的原始监控指标的概率分布,具体地,对于每个原始监控指标,计算其在数据集中的出现频率,得到相应的概率分布。接着,计算无标签的原始监控指标的概率条件熵:使用无标签的原始监控指标的概率分布,计算其概率条件熵。概率条件熵可用于衡量无标签监控指标的不确定性或信息量。最后根据阈值确定伪标签:设定一个阈值,当无标签的原始监控指标的概率条件熵高于该阈值时,将其判定为无法准确分类的样本,并加上伪标签。

在本发明的一些实施例中,参见图5,步骤200包括:

步骤201:将所述监控指标输入至所述故障诊断模型中,以生成所述故障对应的决策树;

步骤201中的决策树用于从数据特征中学习决策规则来预测目标变量的值。在步骤201中的决策树中,叶节点对应于输出的决策结果,而非叶节点(内部节点)对应于数据的属性(特征)。每个节点都涉及一个测试,每个分支代表测试的一个可能的结果。具体地:

根节点:包含整个样本集,是决策树的起点。

分裂:是将一个节点分成两个或多个子节点的过程(优选地,可以根据基尼不纯度(用于分类)或平方误差(用于回归)来确定分裂标准)。

决策节点:当一个子节点进一步分裂成更多子节点时,它就成为了决策节点。

叶节点/终端节点:树的最底部,不再分裂的节点,代表最终的决策结果。

剪枝:移除树中的一些分支,防止过拟合。

分支/子树:从新节点到叶节点的整个部分。

进一步地,参见图6,构建步骤201的决策树的具体步骤包括:

步骤2011:选择最佳分裂特征。

根据某个统计标准(如信息增益、增益比率或基尼不纯度)从当前样本集中选择最佳分裂特征。

步骤2012:分裂节点。

根据选择的特征分裂节点,将数据集分成两个或多个子集。

步骤2013:递归建立子树。

对每个子集重复步骤2011和2012,直至满足某个停止条件(如达到最大深度、节点中样本数量小于最小分裂量或纯度达到一定水平)。

步骤2014:剪枝。

为了防止过拟合,对树进行剪枝。剪枝可以是预剪枝(在树完全生成前剪枝)或后剪枝(树生成后再剪枝)。

步骤202:根据所述决策树确定所述故障对应的布林逻辑组合低阶事件;

布林逻辑包含了一系列的真值运算,如“与”(AND)、“或”(OR)和“非”(NOT)。组合低阶事件是指没有进一步分解的基本事件,在布林逻辑中,低阶事件可以对应于基本的布林变量。

步骤202在实施时,具体为:每个节点在决策树中代表一个布林逻辑判断,即一个低阶事件的测试,而路径从根节点到叶节点代表了导致特定决策或故障的布林逻辑组合。

步骤203:根据所述布林逻辑组合低阶事件确定所述云环境所发生的故障。

具体地,通过观察导致叶节点的路径来确定决策树中某个特定故障的布林逻辑组合。每条从根到叶节点的路径都代表了一系列的布林逻辑条件,它们结合了多个低阶事件来定义了高阶的故障事件。这些布林逻辑组合可以用来制定相应的故障检测逻辑,以便在系统监测时能够自动识别和响应这些故障。

在本发明的一些实施例中,所述决策树包括多个故障诊断节点以及两个故障诊断节点之间的连接边;其中:

所述故障诊断节点用于根据监控指标进行单一的故障诊断;

所述连接边用于对其所连接的两个故障诊断节点进行逻辑流转;所述连接边的类型包括:包含、不包含以及不判断。

故障诊断节点具有各类原子诊断能力,执行单一的诊断验证。

连接线,连接两个故障诊断节点,根据上一故障诊断节点的输出,可配置包含/不包含/不判断三种类型,实现诊断树中各节点的逻辑流转。

诊断建议,针对当前诊断树(决策树)分支提供文本类型的诊断结果,针对当前诊断树分支提供快速跳转至业务监控、资源监控等各类监控视图的链接。

在本发明的一些实施例中,参见图7,步骤304包括:

步骤3041:根据当前迭代轮次的所述具有伪标签的原始监控指标、所述当前迭代轮次的所述具有标签的原始监控指标生成所述下一轮迭代操作的具有标签的原始监控指标;

步骤3042:将所述下一轮迭代操作的具有标签的原始监控指标以及所述当前迭代轮次的无标签的原始监控指标输入至所述当前迭代轮次的半监督学习模型,以对所述当前迭代轮次的半监督学习模型进行下一轮迭代操作。

在步骤3041以及步骤3042中,通过半监督学习模型的一致性来决定将哪些无标签数据转换为伪标签。当满足一定条件时(例如预测概率大于某个阈值)则将预测的结果作为该样本的真实标签,接着再次以当前已有的标注数据(当前迭代轮次的具有伪标签的原始监控指标与当前迭代轮次的具有标签的原始监控指标之和)来训练模型并对无标签的样本进行标注并反复迭代,直到达到停止条件时结束。

在本发明的一些实施例中,所述监控指标包括业务监控指标以及云资源监控指标;

所述迭代停止条件包括迭代过程收敛及/或迭代次数达到预设值。

优选地,云资源监控指标包括:资源利用率、可用性和可靠性、性能指标、安全指标。业务监控指标包括成本指标、业务失败率诊断以及业务下数失败率诊断。

从上述描述可知,本发明实施例提供一种基于容器化云环境异常场景的故障确定方法,通过引入半监督学习方法训练云上监控指标,结合自学习(Self-Training)模型和决策树模型来处理少量有标签的数据和大量无标签的数据,得到可靠的诊断指标并以此计算系统的故障概率,提供故障诊断结果及应急建议。

具体地,本发明将处理后的标签数据集导入决策树模型,利用布林逻辑组合低阶事件,分析可能造成故障的各种因素(包括硬件、软件、环境、人为因素等)按照实际串、并行关系编排为逻辑框图,确定故障原因的各种可能组合方式及其发生概率,并以此计算系统的故障概率,采取相应的措施。

可以理解的是,本发明以半监督自学习方法构建无标签数据处理模型,能够有效降低有标签数据集的获取成本;同时提供专家经验串、并行编排能力,以可视化配置的方式,将原子诊断能力以一定的逻辑规则形成诊断决策树,模拟运维人员排障过程。两种模型结合的云运维通用诊断装置,灵活支持基于前序诊断结果发起后续诊断,适用常见容器化云环境异常场景的故障诊断。

在一种具体实施方式中,本发明还提供一种基于容器化云环境异常场景的故障确定方法的具体实施方式,具体包括以下内容。

首先,参见图8,本发明还提供一种基于容器化云环境异常场景的故障确定系统,该系统包括:半监督学习模型监控数据处理装置1、专家经验评估装置2、诊断决策模型配置装置3、原子诊断装置4以及诊断结果展示装置5。

基于上述的基于容器化云环境异常场景的故障确定系统,参见图9,本发明所提供一种基于容器化云环境异常场景的故障确定方法的具体实施方式包括以下步骤:

S1:生成具有伪标签的原始监控指标。

以云上节点的监控指标为例,样本数据从半监督学习模型处理装置1进入,通过模型训练得到指标因素。

自学习(Self-Training)模型训练流程参照图10,根据数据预处理划分出监控样本数据的特征属性,筛选故障节点的监控指标代表标签数据集,全部节点的监控指标作为无标签原始指标数据集。

半监督学习算法在标记数据上构建分类器,使用这个分类器来预测无标注数据的标签,通过模型的一致性来决定将哪些无标签数据转换为伪标签。当满足一定条件时(例如预测概率大于某个阈值)则将预测的结果作为该样本的真实标签,接着再次以当前已有的标注数据来训练模型并对无标签的样本进行标注并反复迭代,直到达到停止条件时结束。

根据当前模型预测的最大softmax函数概率,最小化无标签数据的概率条件熵H(X|Y),以支持无标签数据不同特征之间的低密度分离。

对于softmax函数本申请有以下限定:多分类问题(分类种类为α个)在经过输出层的计算后,会产生α个输出x,softmax函数的作用就是将输出x转化为和为1的概率问题。它是二分类函数sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式展现出来。其定义如下:

需要指出的是,概率条件熵用于衡量根节点对应的偏好特征的不确定性或者混乱程度。进而衡量样本集合的纯度和分类效果。具体地,可根据下式确定概率条件熵:

H(X)=-ΣP(x)×log

其中,H(X)为概率条件熵,P(x)表示偏好特征为x的概率,Σ表示对所有可能取值求和,p为当前轮次的训练误差。

当偏好特征的取值越均匀,即每个取值的概率相等时,概率条件熵达到最大值log2(n);当偏好特征的取值越集中,即某些取值的概率较大,其他取值的概率较小时,概率条件熵越接近0,表示不确定性越低。

计算样本集合在某个特征上的概率条件熵,用于评估该特征对样本集合的分类能力。如果某个特征的概率条件熵越低,即样本在该特征上的分类越纯粹,那么该特征对于分类任务的贡献越大。

高置信度筛选:通过设置低置信度屏蔽提高伪标签的训练技术,分类器的输出结果中包含一个0-1的概率值,该概率值代表着对应的样本被预测为某类别的可能性。然后再通过阈值来进行划分,样本预测概率高于概率阈值Ρ的样本被确定为第O个类别,低于概率阈值Ρ的样本继续被归为无标签样本。

概率阈值:确定阈值的方法有很多种,包括基于历史数据的统计分析、基于专家经验的主观判断、基于业务需求的目标设定以及基于监控和反馈的动态调整。本装置设置概率阈值P为0.6。

S2:根据专家库配置中是否存在诊断决策模型配置,判断是否进行诊断树任务发布。

专家经验评估装置2对监控指标因素进行进一步处理,根据专家库配置中是否存在诊断决策模型配置,判断是否进行诊断树任务发布。根据专家经验中的关键因素修正指标因素中的异常值、填补缺失值,且诊断决策模型配置装置3是诊断结果展示装置5根据诊断树历史配置累积形成。

S3:诊断决策模型配置装置3通过解析诊断树配置,确认是否存在下一诊断任务。

具体地,判断任务执行还是结束入库,诊断树中每个单一诊断任务,均通过下发原子诊断装置4执行并获取结果。执行过程中主要依赖任务调度引擎,对读取的诊断树配置进行解析,通过逻辑遍历逐一执行,通过kafka实现调度与执行的解耦,避免等待与依赖。

接着,以3个具体的实施例展示基于容器化云环境异常场景的故障确定方法的技术效果:

实施例1:资源短缺导致数据库响应缓慢问题。

以监控数据CPU使用率、内存使用率、IO问题为一个样本的一组特征设置分类任务,每个样本的单个特征真实标签都只有两种可能值,即“达到预警值”和“未达到预警值”,可能的取值为0或者1,而半监督自学习模型预测的分布可以理解为标签是1的概率。当网络的输出logits=2时,经过sigmoid得到达到预警值的概率是0.9,交叉熵损失loss=-1×log(0.9)-0×log(0.1)≈0.1,参见图11。

未标注监控数据通过半监督自学习模型判断为故障指标时,专家经验评估装置对该指标进行进一步处理,通过指标应用名、报警类型、报警关键字符合专家库配置中数据库响应缓慢场景模型时进行诊断树任务发布。

诊断任务执行后展示诊断树各环节验证处理的结果,提供告警节点信息,提供诊断结果对应的文本应急建议。

实施例2:业务异常并行诊断树。

该交易场景如下,诊断树将先对业务后台节点的CPU使用率、内存使用率和数据库可用性进行诊断,其次对外连前置和外公司的连接账号可用性诊断、事前控制指标失败诊断、业务失败率诊断以及业务下数失败率诊断,最终定位故障的根因,流程参照图12。

实施例3:业务异常串行诊断树。

该交易场景如下,通过接收告警依次判断各容器节点运行状况、主机接口是否正常以及交易失败率情况实现故障的根因分析,流程参照图13。

从上述描述可知,本发明具体实施方式提供一种基于容器化云环境异常场景的故障确定方法,包括:首先获取云环境所部署的节点的监控指标;接着,根据监控指标以及预先生成的故障诊断模型确定云环境所发生的故障;其中,故障诊断模型是基于决策树算法以及预先生成的训练数据所生成的;训练数据是基于半监督学习算法,并根据具有标签的原始监控指标以及无标签的原始监控指标所生成的,且具有标签的原始监控指标的数量小于无标签的原始监控指标的数量。

一方面,本发明使用半监督自学习模型,适用于当前云运维有限数量的标注数据和大量的无标注数据场景,对机器学习性能起到改进的作用,降低有标签数据的获取成本,提高云运维通用诊断装置的稳定性和泛化能力。

另一方面,本发明通过页面联机、定时任务或报警联动的方式触发诊断树执行的方法,在单一原子诊断和简单组合诊断的基础上,支持按逻辑编排,模拟人工排障过程,有效节省了人工成本,提高了故障诊断装置的灵活性和可靠性,适用于银行、金融机构、互联网金融公司等存在复杂业务链路的云上故障诊断场景。

基于同一发明构思,本申请实施例还提供了一种基于容器化云环境异常场景的故障确定装置,可以用于实现上述实施例所描述的方法,如下面的实施例。由于基于容器化云环境异常场景的故障确定装置解决问题的原理与基于容器化云环境异常场景的故障确定方法相似,因此基于容器化云环境异常场景的故障确定装置的实施可以参见基于容器化云环境异常场景的故障确定方法实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

本发明的实施例提供一种能够实现基于容器化云环境异常场景的故障确定方法的基于容器化云环境异常场景的故障确定装置的具体实施方式,参见图14,一种基于容器化云环境异常场景的故障确定装置具体包括如下内容:

监控指标获取模块10,用于获取所述云环境所部署的节点的监控指标;

故障确定模块20,用于根据所述监控指标以及预先生成的故障诊断模型确定所述云环境所发生的故障;其中,所述故障诊断模型是基于决策树算法以及预先生成的训练数据所生成的;所述训练数据是基于半监督学习算法,并根据具有标签的原始监控指标以及无标签的原始监控指标所生成的,且所述具有标签的原始监控指标的数量小于所述无标签的原始监控指标的数量。

在本发明的一些实施例中,参见图15,一种基于容器化云环境异常场景的故障确定装置还包括:

训练数据生成模块30,用于生成所述训练数据,参见图16,所述训练局生成模块30包括:

迭代操作单元30a,用于进行以下迭代操作,直至达到迭代停止条件;

初始分类器生成单元30b,用于根据所述具有标签的原始监控指标、所述无标签的原始监控指标以及半监督学习模型生成初始分类器;

伪标签指标生成单元30c,用于根据所述具有标签的原始监控指标、所述无标签的原始监控指标以及所述初始分类器生成具有伪标签的原始监控指标;

下一轮迭代操作单元30d,用于根据当前迭代轮次的所述具有伪标签的原始监控指标、所述当前迭代轮次的所述具有标签的原始监控指标以及所述当前迭代轮次的无标签的原始监控指标以及半监督学习模型进行下一轮迭代操作。

在本发明的一些实施例中,参见图17,所述伪标签指标生成单元30c包括:

概率条件熵最小化单元30c1,用于根据所述当前迭代轮次的半监督学习模型的激活函数最小化所述无标签的原始监控指标的概率条件熵;

伪标签指标生成子单元30c2,用于根据最小化后的无标签的原始监控指标的概率条件熵以及所述无标签的原始监控指标生成所述具有伪标签的原始监控指标。

在本发明的一些实施例中,参见图18,所述故障确定模块20包括:

决策树生成单元20a,用于将所述监控指标输入至所述故障诊断模型中,以生成所述故障对应的决策树;

事件确定单元20b,用于根据所述决策树确定所述故障对应的布林逻辑组合低阶事件;

故障确定单元20c,用于根据所述布林逻辑组合低阶事件确定所述云环境所发生的故障。

在本发明的一些实施例中,所述决策树包括多个故障诊断节点以及两个故障诊断节点之间的连接边;其中:

所述故障诊断节点用于根据监控指标进行单一的故障诊断;

所述连接边用于对其所连接的两个故障诊断节点进行逻辑流转;所述连接边的类型包括:包含、不包含以及不判断。

在本发明的一些实施例中,参见图19,所述下一轮迭代操作单元30d包括:

下一轮标签指标生成单元30d1,用于根据当前迭代轮次的所述具有伪标签的原始监控指标、所述当前迭代轮次的所述具有标签的原始监控指标生成所述下一轮迭代操作的具有标签的原始监控指标;

下一轮迭代操作子单元30d2,用于将所述下一轮迭代操作的具有标签的原始监控指标以及所述当前迭代轮次的无标签的原始监控指标输入至所述当前迭代轮次的半监督学习模型,以对所述当前迭代轮次的半监督学习模型进行下一轮迭代操作。

在本发明的一些实施例中,所述监控指标包括业务监控指标以及云资源监控指标;

所述迭代停止条件包括迭代过程收敛及/或迭代次数达到预设值。

从上述描述可知,本发明实施例提供一种基于容器化云环境异常场景的故障确定装置,包括:监控指标获取模块,用于获取云环境所部署的节点的监控指标;故障确定模块,用于根据监控指标以及预先生成的故障诊断模型确定云环境所发生的故障;其中,故障诊断模型是基于决策树算法以及预先生成的训练数据所生成的;训练数据是基于半监督学习算法,并根据具有标签的原始监控指标以及无标签的原始监控指标所生成的,且具有标签的原始监控指标的数量小于无标签的原始监控指标的数量。

本发明针对于当前云运维有限数量的标注数据和大量的无标注数据场景,使用半监督自学习模型,对机器学习性能起到改进的作用,降低有标签数据的获取成本,提高云运维通用诊断装置的稳定性和泛化能力。

本申请的实施例还提供能够实现上述实施例中的基于容器化云环境异常场景的故障确定方法中全部步骤的一种电子设备的具体实施方式,参见图20,电子设备具体包括如下内容:

处理器(processor)1201、存储器(memory)1202、通信接口(CommunicationsInterface)1203和总线1204;

其中,处理器1201、存储器1202、通信接口1203通过总线1204完成相互间的通信;通信接口1203用于实现服务器端设备以及用户端设备等相关设备之间的信息传输;

处理器1201用于调用存储器1202中的计算机程序,处理器执行计算机程序时实现上述实施例中的基于容器化云环境异常场景的故障确定方法中的全部步骤,例如,处理器执行计算机程序时实现下述步骤:

步骤100:获取所述云环境所部署的节点的监控指标;

步骤200:根据所述监控指标以及预先生成的故障诊断模型确定所述云环境所发生的故障;其中,所述故障诊断模型是基于决策树算法以及预先生成的训练数据所生成的;所述训练数据是基于半监督学习算法,并根据具有标签的原始监控指标以及无标签的原始监控指标所生成的,且所述具有标签的原始监控指标的数量小于所述无标签的原始监控指标的数量。

本申请的实施例还提供能够实现上述实施例中的基于容器化云环境异常场景的故障确定方法中全部步骤的一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的基于容器化云环境异常场景的故障确定方法的全部步骤,例如,处理器执行计算机程序时实现下述步骤:

步骤100:获取所述云环境所部署的节点的监控指标;

步骤200:根据所述监控指标以及预先生成的故障诊断模型确定所述云环境所发生的故障;其中,所述故障诊断模型是基于决策树算法以及预先生成的训练数据所生成的;所述训练数据是基于半监督学习算法,并根据具有标签的原始监控指标以及无标签的原始监控指标所生成的,且所述具有标签的原始监控指标的数量小于所述无标签的原始监控指标的数量。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

虽然本申请提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或用户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。

为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。

相关技术
  • 一种基于云环境的虚拟机安全迁移方法及装置
  • 一种升级异常确定方法、装置和计算机设备
  • 一种异常检测模型训练方法、故障场景定位方法及装置
  • 异常电信业务场景的确定方法、装置、计算机设备
技术分类

06120116586174