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

一种基于机器学习和文本分类的服务故障定位方法及装置

文献发布时间:2023-06-19 11:45:49


一种基于机器学习和文本分类的服务故障定位方法及装置

技术领域

本发明涉及集群故障定位技术领域,尤指一种基于机器学习和文本分类的服务故障定位方法及装置。

背景技术

在现有技术中,故障定位通常采用指标监控加人工分析判断的方式进行,如对服务器运行内存、CPU进行监控,超过阈值触发报警,然后人工介入进行故障分析和修复。这种处理方式至少存在以下不足:故障定位慢,通常需要人工接入才能进行故障原因分类定位和判断。检出率低,由于采用固定的指标监控算法,无法覆盖全部的场景,故障检出率有限;如CPU指标监控通常只能采取静态临界值。误报率高,对于内存CPU毛刺场景无法有效识别,造成故障检测误报率较高。

综上来看,亟需一种可以克服现有技术存在的不足,具有定位速度快,检出率高,误报率低的故障定位方案。

发明内容

针对现有故障定位存在的缺陷,为解决传统方式大量依赖人工介入,监控故障检出率低,问题定位慢的问题,本发明提出了一种基于机器学习和文本分类的服务故障定位方法及装置;本发明通过自主开发数据采集、数据预处理、预测与监控报警等处理方法,能够对实时服务信息进行相关数据采集、预处理、故障分析和故障分类等操作,实现对系统故障的快速定位和分类,可以有效提高系统报警准确率和有效性。

具体的,在本发明实施例的第一方面,提出了一种基于机器学习和文本分类的服务故障定位方法,该方法包括:

抽取运维数据;

根据所述运维数据实时获取集群日志数据及时序运行数据;

根据所述集群日志数据进行故障日志解析,得到服务运行时的监控指标,并根据服务执行的起止日志信息,得到服务执行耗时指标;

根据所述时序运行数据,得到容器级和服务级的资源监控指标;

根据所述服务运行时的监控指标、服务执行耗时指标及资源监控指标,利用故障判断模型对故障根因进行分析判断,得到故障根因分析结果;

根据所述故障根因分析结果,利用自然语言分类算法解析日志信息中的错误字段信息,对故障根因进行定位。

进一步的,抽取的运维数据至少包括:应用信息、节点信息及日志信息;

该方法还包括:

对所述应用信息、节点信息及日志信息进行格式化处理。

进一步的,根据所述运维数据实时获取集群日志数据及时序运行数据,包括:

实时获取日志信息流入并存储到ES集群,得到集群日志数据;

实时获取运行容器CPU、内存及磁盘IO信息。

进一步的,服务运行时的监控指标至少包括:请求书、请求成功率、请求正确率、请求响应时间及错误信息。

进一步的,所述容器级和服务级的资源监控指标至少包括:容器CPU、容器内存及宿主机IO在内的资源监控指标。

进一步的,根据所述服务运行时的监控指标、服务执行耗时指标及资源监控指标,利用故障判断模型对故障根因进行分析判断,得到故障根因分析结果,包括:

利用机器学习中机器学习中的朴素贝叶斯分类算法构建故障判断模型,将服务运行时的监控指标、服务执行耗时指标及资源监控指标的历史数据作为输入特征,将判断结果作为输出特征,对故障判断模型进行训练;其中,所述故障判断模型是有监督的机器学习模型,用于进行多因子预测模型判断;

将新产生的服务运行时的监控指标、服务执行耗时指标及资源监控指标作为输入特征,利用故障判断模型进行故障判断,得到故障发生概率。

进一步的,该方法还包括:

在模型判断故障发生概率大于预设值时,辅助进行CPU、内存、服务执行成功率的矫正判断,得到矫正后的故障根因分析结果。

进一步的,根据所述故障根因分析结果,利用自然语言分类算法解析日志信息中的错误字段信息,对故障根因进行定位,包括:

将历史错误信息作为输入值进行数据标注,构建浅层网络模型;

将新的错误信息输入至所述浅层网络模型,采用浅层网络模型的自然语言分类算法解析日志信息中的错误字段,得到分类判断结果,对故障根因进行定位。

具体的,在本发明实施例的第二方面,提出了一种基于机器学习和文本分类的服务故障定位装置,该装置包括:

数据抽取模块,用于抽取运维数据;

实时数据获取模块,用于根据所述运维数据实时获取集群日志数据及时序运行数据;

故障日志解析模块,用于根据所述集群日志数据进行故障日志解析,得到服务运行时的监控指标,并根据服务执行的起止日志信息,得到服务执行耗时指标;

资源监控模块,用于根据所述时序运行数据,得到容器级和服务级的资源监控指标;

故障根因分析模块,用于根据所述服务运行时的监控指标、服务执行耗时指标及资源监控指标,利用故障判断模型对故障根因进行分析判断,得到故障根因分析结果;

故障根因定位模块,用于根据所述故障根因分析结果,利用自然语言分类算法解析日志信息中的错误字段信息,对故障根因进行定位。

具体的,在本发明实施例的第三方面,提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现基于机器学习和文本分类的服务故障定位方法。

具体的,在本发明实施例的第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现基于机器学习和文本分类的服务故障定位方法。

本发明提出的基于机器学习和文本分类的服务故障定位方法及装置通过自主开发的数据采集、数据预处理、预测与监控报警等处理方法,能够对实时服务信息进行相关数据采集、预处理、故障分析和故障分类等操作,实现对系统故障的快速定位和分类,可以有效提高系统报警准确率和有效性。

附图说明

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

图1是本发明一实施例的基于机器学习和文本分类的服务故障定位方法流程示意图。

图2是本发明一具体实施例的定位流程示意图。

图3是FastText算法的架构示意图。

图4是本发明一实施例的基于机器学习和文本分类的服务故障定位装置架构示意图。

图5是本发明一实施例的计算机设备结构示意图。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

根据本发明的实施方式,提出了一种基于机器学习和文本分类的服务故障定位方法及装置,可以用于集群故障定位技术领域,可以实现高效、高准确率、低误报率的故障定位。

下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。

图1是本发明一实施例的基于机器学习和文本分类的服务故障定位方法流程示意图。如图1所示,该方法包括:

步骤S101,抽取运维数据;

步骤S102,根据所述运维数据实时获取集群日志数据及时序运行数据;

步骤S103,根据所述集群日志数据进行故障日志解析,得到服务运行时的监控指标,并根据服务执行的起止日志信息,得到服务执行耗时指标;

步骤S104,根据所述时序运行数据,得到容器级和服务级的资源监控指标;

步骤S105,根据所述服务运行时的监控指标、服务执行耗时指标及资源监控指标,利用故障判断模型对故障根因进行分析判断,得到故障根因分析结果;

步骤S106,根据所述故障根因分析结果,利用自然语言分类算法解析日志信息中的错误字段信息,对故障根因进行定位。

为了对上述基于机器学习和文本分类的服务故障定位方法进行更为清楚的解释,下面结合每一步骤进行详细说明。

步骤S101:

抽取运维数据;其中,抽取的运维数据至少包括:应用信息、节点信息及日志信息;

对所述应用信息、节点信息及日志信息进行格式化处理。

步骤S102:

实时ES数据(ES:ElasticSearch集群):实时获取日志信息流入并存储到ES集群,得到集群日志数据;

实时Prometheus数据:实时获取运行容器CPU、内存及磁盘IO信息。

步骤S103:

根据步骤S102中获取的日志信息,通过故障日志解析获取服务运行获取对应监控指标;其中,服务运行时的监控指标至少包括:请求书、请求成功率、请求正确率、请求响应时间及错误信息。

通过日志中的服务执行开始和结束日志信息,获取服务执行耗时指标。

步骤S104:

根据所述时序运行数据,得到容器级和服务级的资源监控指标,其中,所述容器级和服务级的资源监控指标至少包括:容器CPU、容器内存及宿主机IO在内的资源监控指标。

步骤S105:

根据所述服务运行时的监控指标、服务执行耗时指标及资源监控指标,利用故障判断模型对故障根因进行分析判断,得到故障根因分析结果。

模型的构建、使用的详细流程为:

利用机器学习中机器学习中的朴素贝叶斯分类算法构建故障判断模型,将服务运行时的监控指标、服务执行耗时指标及资源监控指标的历史数据作为输入特征,将判断结果作为输出特征,对故障判断模型进行训练;其中,所述故障判断模型是有监督的机器学习模型,用于进行多因子预测模型判断;

将新产生的服务运行时的监控指标、服务执行耗时指标及资源监控指标作为输入特征,利用故障判断模型进行故障判断,得到故障发生概率。

在利用故障判断模型进行故障判断,得到故障根因分析结果之后,还可以对结果进行修正,具体过程为:

在模型判断故障发生概率大于预设值时,辅助进行CPU、内存、服务执行成功率的矫正判断,得到矫正后的故障根因分析结果。

步骤S106:

根据所述故障根因分析结果,利用自然语言分类算法解析日志信息中的错误字段信息,对故障根因进行定位。

具体的模型构建、判断的过程为:

将历史错误信息作为输入值进行数据标注,构建浅层网络模型;

将新的错误信息输入至所述浅层网络模型,采用浅层网络模型的自然语言分类算法解析日志信息中的错误字段,得到分类判断结果,对故障根因进行定位。

需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

为了对上述基于机器学习和文本分类的服务故障定位方法进行更为清楚的解释,下面结合一个具体的实施例来进行说明,然而值得注意的是该实施例仅是为了更好地说明本发明,并不构成对本发明不当的限定。

参考图2,为本发明一具体实施例的定位流程示意图。如图2所示,详细过程为:

步骤S201,数据抽取:

提取运维数据,将应用信息、节点信息、日志信息等信息格式化提供。

步骤S202,实时ES数据:

实时获取日志信息流入并存储到ES集群。Elasticsearch集群由一个或多个节点(Node)组成,每个集群都有一个共同的集群名称作为标识。

步骤S203,实时Prometheus数据:实时获取运行容器CPU、内存和磁盘IO信息。

Prometheus采用Pull方式获取监控信息,并提供了多维度的数据模型和灵活的查询接口。Prometheus不仅可以通过静态文件配置监控对象,还支持自动发现机制,能通过Kubernetes、Consl、DNS等多种方式动态获取监控对象。在数据采集方面,借助Go语音的高并发特性,单机Prometheus可以采取数百个节点的监控数据;在数据存储方面,随着本地时序数据库的不断优化,单机Prometheus每秒可以采集一千万个指标,如果需要存储大量的历史监控数据,则还支持远程存储。

步骤S204,故障日志解析、服务耗时监控:

通过步骤S202中获取的日志信息,进行故障日志解析获取服务运行对应监控指标,清单如表1所示:

表1监控指标清单

通过日志中的服务执行开始和结束日志信息,获取服务执行耗时指标。

步骤S205,全容器CPU监控、内存监控、宿主机磁盘监控:

通过步骤S203中监控数据,形成容器级和服务级资源监控视图,视图指标如表2所示:

表2容器级和服务级资源监控视图指标

步骤S206,故障根因分析:

根据步骤S204及步骤S205得到的服务运行时的监控指标、服务执行耗时指标及资源监控指标,通过机器学习模型进行故障判断。其中,具体过程为:

步骤S2061,模型构建:

使用有监督的机器学习模型进行多因子预测模型判断。输入为步骤S204及步骤S205产出的历史指标因子,实现历史数据标注。通过机器学习中的朴素贝叶斯分类算法构建判断模型。

步骤S2062,模型使用:

利用步骤S204及步骤S205新产生的实时指标因子通过模型判断,得出问题发生的概率判断,参考数据如表3所示:

表3参考数据

步骤S2063,模型修正:

由于生产故障是个偶发现象,通常发生概率在1%以下,因此如果只用一个模型进行判断误报率会非常高。

为克服上述问题,在模型判断问题发生情况下(模型产出判断结构大于60%),可以辅助进行CPU、内存、服务执行成功率的矫正判断。举例而言,模型判断当前65%概率出问题,但是CPU、内存、服务执行成功率都正常则判断当前运行正常。

步骤S207,故障根因定位判断:

采用FastText(浅层网络)自然语言分类算法解析日志信息中的错误字段信息,日志信息属于开发人员使用的类自然语言的程序辅助信息,在使用自然语言处理的文本分类算法中,有较好的表现效果。

步骤S2071,模型构建:

使用步骤S204中产出的错误信息字段,进行数据标注和模型构建;如表4所示,为输入值和标签值的示例。

表4输入值及标签值的关系

步骤S2072,模型使用:

构建后的模型,通过输入新的错误信息,获得分类判断;参考数据如表5所示:

表5参考数据

关于FastText算法,其架构和word2vec的CBOW模型架构非常相似,如图3所示,为FastText模型的架构示意图。参考图3,此架构图没有展示词向量的训练过程。FastText模型有三层:输入层(x

输入都是多个经向量表示的单词,输出都是一个特定的target,隐含层都是对多个词向量的叠加平均。与CBOW不同的是,CBOW输入是目标单词的上下文,FastText的输入是多个单词及其n-gram特征,这些特征用来表示单个文档;CBOW的输入单词被onehot编码过,fastText的输入特征是被embedding过;CBOW的输出是目标词汇,FastText的输出是文档对应的类标。

另外,FastText在输入时,将单词的字符级别的n-gram向量作为额外的特征;在输出时,FastText采用了分层Softmax,大大降低了模型训练时间。

在介绍了本发明示例性实施方式的方法之后,接下来,参考图4对本发明示例性实施方式的基于机器学习和文本分类的服务故障定位装置进行介绍。

基于机器学习和文本分类的服务故障定位装置的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的术语“模块”或者“单元”,可以是实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

基于同一发明构思,本发明还提出了一种基于机器学习和文本分类的服务故障定位装置,如图4所示,该装置包括:

数据抽取模块410,用于抽取运维数据;

实时数据获取模块420,用于根据所述运维数据实时获取集群日志数据及时序运行数据;

故障日志解析模块430,用于根据所述集群日志数据进行故障日志解析,得到服务运行时的监控指标,并根据服务执行的起止日志信息,得到服务执行耗时指标;

资源监控模块440,用于根据所述时序运行数据,得到容器级和服务级的资源监控指标;

故障根因分析模块450,用于根据所述服务运行时的监控指标、服务执行耗时指标及资源监控指标,利用故障判断模型对故障根因进行分析判断,得到故障根因分析结果;

故障根因定位模块460,用于根据所述故障根因分析结果,利用自然语言分类算法解析日志信息中的错误字段信息,对故障根因进行定位。

在一实施例中,抽取的运维数据至少包括:应用信息、节点信息及日志信息;

数据抽取模块410还用于:对所述应用信息、节点信息及日志信息进行格式化处理。

在一实施例中,实时数据获取模块420具体用于:

实时获取日志信息流入并存储到ES集群,得到集群日志数据;

实时获取运行容器CPU、内存及磁盘IO信息。

在一实施例中,服务运行时的监控指标至少包括:请求书、请求成功率、请求正确率、请求响应时间及错误信息。

在一实施例中,所述容器级和服务级的资源监控指标至少包括:容器CPU、容器内存及宿主机IO在内的资源监控指标。

在一实施例中,故障根因分析模块450具体用于:

利用机器学习中机器学习中的朴素贝叶斯分类算法构建故障判断模型,将服务运行时的监控指标、服务执行耗时指标及资源监控指标的历史数据作为输入特征,将判断结果作为输出特征,对故障判断模型进行训练;其中,所述故障判断模型是有监督的机器学习模型,用于进行多因子预测模型判断;

将新产生的服务运行时的监控指标、服务执行耗时指标及资源监控指标作为输入特征,利用故障判断模型进行故障判断,得到故障发生概率。

在模型判断故障发生概率大于预设值时,辅助进行CPU、内存、服务执行成功率的矫正判断,得到矫正后的故障根因分析结果。

在一实施例中,故障根因定位模块460具体用于:

将历史错误信息作为输入值进行数据标注,构建浅层网络模型;

将新的错误信息输入至所述浅层网络模型,采用浅层网络模型的自然语言分类算法解析日志信息中的错误字段,得到分类判断结果,对故障根因进行定位。

应当注意,尽管在上文详细描述中提及了基于机器学习和文本分类的服务故障定位装置的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。

基于前述发明构思,如图5所示,本发明还提出了一种计算机设备500,包括存储器510、处理器520及存储在存储器510上并可在处理器520上运行的计算机程序530,所述处理器520执行所述计算机程序530时实现前述基于机器学习和文本分类的服务故障定位方法。

基于前述发明构思,本发明提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述基于机器学习和文本分类的服务故障定位方法。

本发明提出的基于机器学习和文本分类的服务故障定位方法及装置通过自主开发的数据采集、数据预处理、预测与监控报警等处理方法,能够对实时服务信息进行相关数据采集、预处理、故障分析和故障分类等操作,实现对系统故障的快速定位和分类,可以有效提高系统报警准确率和有效性。

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

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

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

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

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

相关技术
  • 一种基于机器学习和文本分类的服务故障定位方法及装置
  • 一种基于机器学习算法的服务智能匹配推荐方法、装置、设备及存储介质
技术分类

06120113047825