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

一种集群的故障分析方法及装置

文献发布时间:2024-04-18 19:59:31


一种集群的故障分析方法及装置

技术领域

本申请涉及计算机信息技术领域,尤其涉及一种集群的故障分析方法及装置。

背景技术

近年来,随着数据中心分布式集群与节点数量的不断增加,各类应用正朝着在云下服务器部署转至云上Kubernetes集群中。通过智能运维的方式,对集群与应用的各类监控日志进行监控并分析,能够极大减轻运维人员的负担。

智能运维实质利用大数据和机器学习等技术,通过主动化、个性化、动态化的洞察能力,直接或间接提升生产运维的监控、自动化和服务管理能力。然而,在日常的生产运维工作中,由于各类监控及告警数据繁多,当Kubernetes集群管理员接收到告警信息时,仍然需要手动查看相关容器、计算节点、管理节点的各类日志与监控数据,并结合个人经验,对告警进行分析并定位故障,过程较为繁琐,导致故障分析的效率较低。

因此,如何提升故障分析的效率,成为本领域亟需的解决的问题。

发明内容

本申请提供了一种集群的故障分析方法即装置,目的在于提升故障分析的效率。

为了实现上述目的,本申请提供了以下技术方案:

一种集群的故障分析方法,包括:

当接收到告警信息时,获取所述告警信息所在集群中每个组件的监控数据,和预设时间段内每个组件的日志文本;

对于每个所述组件,将所述组件的日志文本输入预先训练的语言模型中,得到所述组件的每个时刻的文本序列表示;

利用双向LSTM对每个所述时刻的文本序列表示进行编码,得到组件的日志隐状态表示;

利用注意力方式对所述日志隐状态表示进行计算,得到组件的整体日志状态表示;

利用图注意网络对所述组件的监控数据进行编码,得到组件的整体监控状态表示;

将所述整体日志状态表示和所述整体监控状态表示进行拼接,得到组件的整体状态;

利用注意力交互层对每个所述时刻的文本序列表示和所述组件的整体状态进行计算,得到故障表示;

将所述故障表示输入至Softmax层进行计算,得到故障类别的概率向量。

可选的,所述对于每个所述组件,将所述组件的日志文本输入预先训练的语言模型中,得到所述组件的每个时刻的文本序列表示,包括:

对于每个所述组件,对所述组件的日志文本进行分词处理,得到组件的每个时刻的日志文本序列;

将每个所述时刻的文本序列输入预先训练的语言模型中,得到所述组件的每个时刻的文本序列表示。

可选的,所述利用双向LSTM对每个所述时刻的文本序列进行编码,得到组件的日志隐状态表示,包括:

利用前向LSTM对每个所述时刻的文本序列进行编码,得到组件的前向隐状态表示;

利用后向LSTM对每个所述时刻的文本序列进行编码,得到组件的后向隐状态表示;

将所述前向隐状态表示和所述后向隐状态表示进行拼接,得到组件的日志隐状态表示。

可选的,所述利用注意力方式对所述日志隐状态表示进行计算,得到组件的整体日志状态表示,包括:

将所述日志隐状态代入注意力公式中进行计算,得到注意力得分;

基于所述注意力得分和所述日志隐状态表示,计算得到组件的整体日志状态表示。

可选的,所述利用图注意网络对每个所述组件的监控数据进行编码,得到组件的整体监控状态表示,包括:

从所述日志隐状态表示中提取组件的前向隐状态表示,以及从所述整体日志状态表示中提取注意力得分;

基于所述前向隐状态表示和所述注意力得分,计算得到监控指标的相关性;

利用Softmax函数对所述监控指标的相关性进行计算,得到监控指标的注意力得分;

基于所述监控指标的注意力得分,计算得到组件的整体监控状态表示。

可选的,所述利用注意力交互层对每个所述时刻的文本序列表示和所述组件的整体状态进行计算,得到故障表示,包括:

将所述组件的整体状态代入权重矩阵公式中,得到中间表示;

基于所述中间表示和每个所述时刻的文本序列,计算得到每个组件的注意力权重;

基于每个所述组件的注意力权重和所述组件的整体状态,计算得到故障表示。

一种集群的故障分析装置,包括:

获取单元,用于当接收到告警信息时,获取所述告警信息所在集群中每个组件的监控数据,和预设时间段内每个组件的日志文本;

输入单元,用于对于每个所述组件,将所述组件的日志文本输入预先训练的语言模型中,得到所述组件的每个时刻的文本序列表示;

第一编码单元,用于利用双向LSTM对每个所述时刻的文本序列表示进行编码,得到组件的日志隐状态表示;

第一计算单元,用于利用注意力方式对所述日志隐状态表示进行计算,得到组件的整体日志状态表示;

第二编码单元,用于利用图注意网络对所述组件的监控数据进行编码,得到组件的整体监控状态表示;

拼接单元,用于将所述整体日志状态表示和所述整体监控状态表示进行拼接,得到组件的整体状态;

第二计算单元,用于利用注意力交互层对每个所述时刻的文本序列表示和所述组件的整体状态进行计算,得到故障表示;

第三计算单元,用于将所述故障表示输入至Softmax层进行计算,得到故障类别的概率向量。

可选的,所述输入单元具体用于:

对于每个所述组件,对所述组件的日志文本进行分词处理,得到组件的每个时刻的日志文本序列;

将每个所述时刻的文本序列输入预先训练的语言模型中,得到所述组件的每个时刻的文本序列表示。

可选的,所述第一编码单元具体用于:

利用前向LSTM对每个所述时刻的文本序列进行编码,得到组件的前向隐状态表示;

利用后向LSTM对每个所述时刻的文本序列进行编码,得到组件的后向隐状态表示;

将所述前向隐状态表示和所述后向隐状态表示进行拼接,得到组件的日志隐状态表示。

可选的,所述第一计算单元具体用于:

将所述日志隐状态代入注意力公式中进行计算,得到注意力得分;

基于所述注意力得分和所述日志隐状态表示,计算得到组件的整体日志状态表示。

本申请提供的技术方案,当接收到告警信息时,获取告警信息所在集群中每个组件的监控数据,和预设时间段内每个组件的日志文本;对于每个组件,将组件的日志文本输入预先训练的语言模型中,得到组件的每个时刻的文本序列表示;利用双向LSTM对每个时刻的文本序列表示进行编码,得到组件的日志隐状态表示;利用注意力方式对日志隐状态表示进行计算,得到组件的整体日志状态表示;利用图注意网络对组件的监控数据进行编码,得到组件的整体监控状态表示;将整体日志状态表示和整体监控状态表示进行拼接,得到组件的整体状态;利用注意力交互层对每个时刻的文本序列表示和组件的整体状态进行计算,得到故障表示;将故障表示输入至Softmax层进行计算,得到故障类别的概率向量。在本申请实施例中,通过组件的监控数据和日志文本就可以确定故障类别,不需要人工对告警进行分析,简化了故障分析的过程,提升了故障分析的效率。

附图说明

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

图1为本申请实施例提供的一种集群的故障分析方法的流程图;

图2为本申请实施例提供的一种文本序列表示的确定方法的流程图;

图3为本申请实施例提供的一种日志隐状态表示的确定方法的流程图;

图4为本申请实施例提供的一种整体日志状态表示的确定方法的流程图;

图5为本申请实施例提供的一种整体监控状态表示的确定方法的流程图;

图6为本申请实施例提供的一种故障表示的计算方法的流程图;

图7为本申请实施例提供的一种集群的故障分析装置的架构示意图。

具体实施方式

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

在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

如图1所示,为本申请实施例提供的一种集群的故障分析方法的流程图,包括如下步骤:

S101:当接收到告警信息时,获取所述告警信息所在集群中每个组件的监控数据,和预设时间段内每个组件的日志文本。

可选的,该集群可以为Kubernetes集群。预设时间段为告警信息中告警发生时间前后的日志文本,例如告警发生时间前十分钟和告警发生时间后十分钟。

其中,组件包括但不限于为:管理节点、业务节点、业务容器。监控数据包括但不限于为:CPU使用率、内存使用率、流量。

所谓的管理节点,实质就是主节点(Master节点),指Kubernetes集群中负责管理调度整个集群的节点,由多台机器构成,一主多备。管理节点上部署了Kubernetes核心组件,如APIServer、Controller-manager、Scheduler、ETCD等,负责控制集群通信、对集群资源进行调度编排、存储集群的数据与状态信息等。

所谓的业务节点,实质就是节点(即Node),指Kubernetes集群中负责运行业务应用的节点。除了业务Pod外,还包括Kubelet、Kube-proxy等组件,负责Pod对应容器的创建、启停、通信与负载均衡等任务。

例如,告警信息为:[告警时间]2023-03-2207:49:06[告警对象]kube-system[监控指标]pod重启次数[触发规则]PODkube-scheduler-IP频繁重启,当前POD累计重启2次,获取告警信息所在集群的管理节点在2023-03-2207:49:06的/var/paas/sys/log/kubernetes目录下的日志文本,获取业务节点在2023-03-2207:49:06的/var/log/messages的日志文本,同时抓取该业务容器下的日志文本,以及获取管理节点、业务节点、业务容器的CPU使用率、内存使用率、流量的监控数据。

S102:对于每个组件,将组件的日志文本输入预先训练的语言模型中,得到组件的每个时刻的文本序列表示。

可选的,语言模型可以为BERT模型。

可以理解的是,将组件的日志文本输入预先训练的语言模型中,得到组件的每个时刻的文本序列表示,具体的,首先需要先对组件的日志文本进行预处理,为了便于模型更好的理解这些日志文本,再将预处理后的日志文本输入至预先训练的语言模型中,得到组件的每个时刻的文本序列表示。

可选地,在本申请的另一实施例中,步骤S102的一种具体实施方式,如图2所示,包括:

S201:对于每个组件,对组件的日志文本进行分词处理,得到组件的每个时刻的日志文本序列。

可选的,可采用jieba分词对组件的日志文本进行分词处理。

需要说明的是,对组件的日志文本进行分词处理,得到组件的每个时刻的日志文本序列的具体表现形式为:{s=w1,w

S202:将每个时刻的文本序列输入预先训练的语言模型中,得到组件的每个时刻的文本序列表示。

其中,将每个时刻的文本序列输入预先训练的语言模型中,得到组件的每个时刻的文本序列表示的具体实现过程,如公式(1)所示。

cls,w

在公式(1)中,w

S103:利用双向LSTM对每个时刻的文本序列表示进行编码,得到组件的日志隐状态表示。

其中,双向LSTM为双向长短时记忆网络,LSTM包含几个重要变量,分别为x(t)、i(t)、f(t),o(t),c(t)及h(t)。x(t)为在时刻t下的输入变量,i(t)为在时刻t下的输入门状态,f(t)为在时刻t下的遗忘门状态,o(t)为在时刻t下的输出门状态,c(t)为在时刻t下的内存单元状态,h(t)为在时刻t下的隐藏层状态。i(t)的具体表现形式,如公式(2)所示、f(t)的具体表现形式,如公式(3)所示、o(t)的具体表现形式,如公式(4)所示、c(t)的具体表现形式,如公式(5)所示以及h(t)的具体表现形式,如公式(6)所示。

i

f

o

c

h

在公式(2、)公式(3)、公式(4)、公式(5)和公式(6)中,分别W为代表循环网络结构的参数、U为输入结构的参数及b偏差项参数。Θ为元素积,可以根据模型的输出得到对应时刻t下每个句子的序列表示向量。δ()为sigmoid函数。b

可以理解的是,双向LSTM通过公式(2)、公式(3)、公式(4)、公式(5)和公式(6),进行网络中节点的计算。

需要说明的是,为了获取每个词相关的前文和后文的信息,因此采用双向LSTM对每个时刻的文本序列表示进行编码。

可选地,在本申请的另一实施例中,步骤S103的一种具体实施方式,如图3所示,包括:

S301:利用前向LSTM对每个时刻的文本序列进行编码,得到组件的前向隐状态表示。

其中,利用前向LSTM对每个时刻的文本序列进行编码的具体表现形式,如公式(7)所示。

在公式(7)中,

S302:利用后向LSTM对每个时刻的文本序列进行编码,得到组件的后向隐状态表示。

其中,利用后向LSTM对每个时刻的文本序列进行编码的具体表现形式,如公式(8)所示。

在公式(8)中,

S303:将前向隐状态表示和后向隐状态表示进行拼接,得到组件的日志隐状态表示。

其中,将前向隐状态表示和后向隐状态表示进行拼接的具体表现形式,如公式(9)所示。

在公式(9)中,h

S104:利用注意力方式对日志隐状态表示进行计算,得到组件的整体日志状态表示。

可以理解的是,利用注意力方式对日志隐状态表示进行计算,得到组件的整体日志状态表示,具体的,利用注意力方式(即注意力机制)确定每一个日志隐状态表示的重要性,在根据每一个日志隐状态表示的重要性计算得到组件的整体状态表示。

可选地,在本申请的另一实施例中,步骤S104的一种具体实施方式,如图4所示,包括:

S401:将日志隐状态代入注意力公式中进行计算,得到注意力得分。

其中,注意力公式的具体表现形式,如公式(10)所示。

在公式(10)中,ai为第i个元素的注意力得分,hj为输入序列中的第j个元素的表示,Wa为Attention层的参数矩阵,每个句子表示为一组词序列,进一步表示为词序列中各个经过连接后的词表示的加权平均,其中的权值即为公式(9)计算出的组件的日志隐状态表示(即Attention值)。

S402:基于注意力得分和日志隐状态表示,计算得到组件的整体日志状态表示。

其中,基于注意力得分和日志隐状态表示,计算得到组件的整体日志状态表示的具体表现形式,如公式(11)所示。

在公式(11)中,L为组件的整体日志状态表示。

S105:利用图注意网络对组件的监控数据进行编码,得到组件的整体监控状态表示。

其中,利用图注意网络GAT对组件的监控数据进行编码,具体的,利用图注意网络GAT对管理节点的监控数据进行编码、利用图注意网络GAT对业务节点的监控数据进行编码、利用图注意网络GAT对业务容器的监控数据进行编码,得到每个组件的整体监控状态表示。

可选地,在本申请的另一实施例中,步骤S105的一种具体实施方式,如图5所示,包括:

S501:从日志隐状态表示中提取组件的前向隐状态表示,以及从整体日志状态表示中提取注意力得分。

需要说明的是,由于日志隐状态表示基于组件的前向隐状态表示和组件的后向隐状态表示拼接而成,因此,可以从日志隐状态表示中提取组件的前向隐状态表示。

可以理解的是,由于整体日志状态表示基于注意力得分计算得到,所以可以从整体日志状态表示中提取注意力得分。

S502:基于前向隐状态表示和注意力得分,计算得到监控指标的相关性。

其中,基于前向隐状态表示和注意力得分,计算得到监控指标的相关性的具体表现形式,如公式(12)所示。

在公式(12)中,e

S503:利用Softmax函数对监控指标的相关性进行计算,得到监控指标的注意力得分。

其中,利用Softmax函数对监控指标的相关性进行计算的具体表现形式,如公式(13)所示。

a

在公式(13)中,a

S504:基于监控指标的注意力得分,计算得到组件的整体监控状态表示。

其中,基于监控指标的注意力得分,计算得到组件的整体监控状态表示的具体表现形式,如公式(14)所示。

在公式(14)中,

S106:将整体日志状态表示和整体监控状态表示进行拼接,得到组件的整体状态。

其中,将整体日志状态表示和整体监控状态表示进行拼接的具体表现形式,如公式(15)所示。

在公式(15)中,T为组件的整体状态。

可以理解的是,将整体日志状态表示和整体监控状态表示进行拼接,具体的,将管理节点的整体日志状态表示和整体监控状态表示进行拼接,将业务节点的整体日志状态表示和整体监控状态进行拼接,将业务容器的整体日志状态表示和整体监控状态进行拼接,分别得到对应各个组件的整体状态表示。

S107:利用注意力交互层对每个时刻的文本序列表示和组件的整体状态进行计算,得到故障表示。

其中,利用注意力交互层对每个时刻的文本序列表示和组件的整体状态进行计算,具体的,通过注意力交互层计算各个组件到告警信息表示的注意力权重,并根据权重对各个组件的表示进行了加权,得到故障表示。

可选地,在本申请的另一实施例中,步骤S107的一种具体实施方式,如图6所示,包括:

S601:将组件的整体状态代入权重矩阵公式中,得到中间表示。

其中,权重矩阵公式的具体表现形式,如公式(16)所示。

u

在公式(16)中,W

S602:基于中间表示和每个时刻的文本序列,计算得到每个组件的注意力权重。

其中,基于中间表示和每个时刻的文本序列,计算得到每个组件的注意力权重的具体表现形式,如公式(17)所示。

其中,a

S603:基于每个组件的注意力权重和组件的整体状态,计算得到故障表示。

其中,基于每个组件的注意力权重和组件的整体状态,计算得到故障表示的具体表现形式,如公式(18)所示。

S

在公式(18)中,S

S108:将故障表示输入至Softmax层进行计算,得到故障类别的概率向量。

其中,将故障表示输入至Softmax层进行计算的具体表现形式,如公式(19)所示。

y=soft max(W

在公式(19)中,W

可以理解的是,故障类别的概率向量指的是故障类别的概率,通过概率高低可以确定该故障的类别,即故障最有可能所属的故障类别。

综上所述,当接收到告警信息时,获取告警信息所在集群中每个组件的监控数据,和预设时间段内每个组件的日志文本;对于每个组件,将组件的日志文本输入预先训练的语言模型中,得到组件的每个时刻的文本序列表示;利用双向LSTM对每个时刻的文本序列表示进行编码,得到组件的日志隐状态表示;利用注意力方式对日志隐状态表示进行计算,得到组件的整体日志状态表示;利用图注意网络对组件的监控数据进行编码,得到组件的整体监控状态表示;将整体日志状态表示和整体监控状态表示进行拼接,得到组件的整体状态;利用注意力交互层对每个时刻的文本序列表示和组件的整体状态进行计算,得到故障表示;将故障表示输入至Softmax层进行计算,得到故障类别的概率向量。在本申请实施例中,通过组件的监控数据和日志文本就可以确定故障类别,不需要人工对告警进行分析,简化了故障分析的过程,提升了故障分析的效率。

如图7所示,为本申请实施例提供的一种集群的故障分析装置的架构示意图,该故障分析装置包括:获取单元100、输入单元200、第一编码单元300、第一计算单元400、第二编码单元500、拼接单元600、第二计算单元700以及第三计算单元800。

获取单元100,用于当接收到告警信息时,获取告警信息所在集群中每个组件的监控数据,和预设时间段内每个组件的日志文本。

输入单元200,用于对于每个组件,将组件的日志文本输入预先训练的语言模型中,得到组件的每个时刻的文本序列表示。

输入单元200具体用于:对于每个组件,对组件的日志文本进行分词处理,得到组件的每个时刻的日志文本序列;将每个时刻的文本序列输入预先训练的语言模型中,得到组件的每个时刻的文本序列表示。

第一编码单元300,用于利用双向LSTM对每个时刻的文本序列表示进行编码,得到组件的日志隐状态表示。

第一编码单元300具体用于:利用前向LSTM对每个时刻的文本序列进行编码,得到组件的前向隐状态表示;利用后向LSTM对每个时刻的文本序列进行编码,得到组件的后向隐状态表示;将前向隐状态表示和后向隐状态表示进行拼接,得到组件的日志隐状态表示。

第一计算单元400,用于利用注意力方式对日志隐状态表示进行计算,得到组件的整体日志状态表示。

第一计算单元400具体用于:将日志隐状态代入注意力公式中进行计算,得到注意力得分;基于注意力得分和日志隐状态表示,计算得到组件的整体日志状态表示。

第二编码单元500,用于利用图注意网络对组件的监控数据进行编码,得到组件的整体监控状态表示。

第二编码单元500具体用于:从日志隐状态表示中提取组件的前向隐状态表示,以及从整体日志状态表示中提取注意力得分;基于前向隐状态表示和注意力得分,计算得到监控指标的相关性;利用Softmax函数对监控指标的相关性进行计算,得到监控指标的注意力得分;基于监控指标的注意力得分,计算得到组件的整体监控状态表示。

拼接单元600,用于将整体日志状态表示和整体监控状态表示进行拼接,得到组件的整体状态。

第二计算单元700,用于利用注意力交互层对每个时刻的文本序列表示和组件的整体状态进行计算,得到故障表示。

第二计算单元700具体用于:将组件的整体状态代入权重矩阵公式中,得到中间表示;基于中间表示和每个时刻的文本序列,计算得到每个组件的注意力权重;基于每个组件的注意力权重和组件的整体状态,计算得到故障表示。

第三计算单元800,用于将故障表示输入至Softmax层进行计算,得到故障类别的概率向量。

综上所述,当接收到告警信息时,获取告警信息所在集群中每个组件的监控数据,和预设时间段内每个组件的日志文本;对于每个组件,将组件的日志文本输入预先训练的语言模型中,得到组件的每个时刻的文本序列表示;利用双向LSTM对每个时刻的文本序列表示进行编码,得到组件的日志隐状态表示;利用注意力方式对日志隐状态表示进行计算,得到组件的整体日志状态表示;利用图注意网络对组件的监控数据进行编码,得到组件的整体监控状态表示;将整体日志状态表示和整体监控状态表示进行拼接,得到组件的整体状态;利用注意力交互层对每个时刻的文本序列表示和组件的整体状态进行计算,得到故障表示;将故障表示输入至Softmax层进行计算,得到故障类别的概率向量。在本申请实施例中,通过组件的监控数据和日志文本就可以确定故障类别,不需要人工对告警进行分析,简化了故障分析的过程,提升了故障分析的效率。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 一种具有智能电源管理功能的模拟训练装置
  • 一种用于智能售货柜训练自动标注数据集的装置
  • 一种基于图像识别的人工智能模型训练方法及装置
  • 一种腰力智能反馈训练装置
  • 一种腰力训练装置
技术分类

06120116520854