一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种异常检测方法、问题诊断方法和相关产品与流程

2021-11-26 21:44:00 来源:中国专利 TAG:


1.本技术涉及数据处理技术领域,特别是涉及一种异常检测方法、问题诊断方法和相关产品。


背景技术:

2.日志分析是软件系统开发人员对系统进行异常检测及问题诊断的常用手段。异常检测的目的在于通过对日志的分析检测出系统可能存在的异常,反馈给开发人员以便进行进一步的诊断。现阶段,一种基于规则匹配的日志分析方法要求分析人员对软件系统具备专业的理解能力,基于先验知识建立相应规则,并基于正则表达式等相关匹配方法对日志进行筛选、分类,提取出全量日志中的关键信息。从而,利用这些关键信息来实现异常检测。
3.但是由于上述日志分析方法需要较为专业且全面的先验知识来建立匹配规则,对人员的要求较高且匹配规则维护困难,因此持续实现的难度较大,成本较高。


技术实现要素:

4.为了解决上述技术问题,本技术提供了一种异常检测方法、问题诊断方法和相关产品,以在提升系统的异常检测效率和问题诊断效率的同时,降低实现难度和实现成本。
5.本技术实施例公开了如下技术方案:
6.本技术第一方面提供了一种异常检测方法,包括:
7.对目标系统的日志数据进行文本处理得到日志向量;
8.依照滑动时间窗口对所述日志向量进行聚合;
9.将聚合后的向量作为异常检测模型的输入,得到所述异常检测模型输出的对所述目标系统的异常检测结果;所述异常检测模型为利用所述目标系统的历史日志数据和所述历史日志数据相应时间内的问题反馈数据训练获得的。
10.本技术第二方面提供了一种问题诊断方法,当利用前述第一方面提供的异常检测方法获得的所述异常检测结果指示所述目标系统存在异常时,所述问题诊断方法包括:
11.将所述日志数据作为所述异常检测模型的输入,得到所述异常检测模型输出的所述日志数据中每条日志的分值;所述异常检测模型为xgboost模型;
12.从所述日志数据中筛选出分值最大的n条日志作为异常日志;所述n为正整数;
13.利用主题模型对所述异常日志进行聚类分析,根据聚类分析结果诊断所述目标系统的问题类别。
14.本技术第三方面提供了一种异常检测装置,包括:
15.文本处理模块,用于对目标系统的日志数据进行文本处理得到日志向量;
16.向量聚合模块,用于依照滑动时间窗口对所述日志向量进行聚合;
17.异常检测模块,用于将聚合后的向量作为异常检测模型的输入,得到所述异常检测模型输出的对所述目标系统的异常检测结果;所述异常检测模型为利用所述目标系统的历史日志数据和所述历史日志数据相应时间内的问题反馈数据训练获得的。
18.本技术第四方面提供了一种问题诊断装置,包括:
19.分值评估模块,用于当利用前述第三方面提供的异常检测装置获得的所述异常检测结果指示所述目标系统存在异常时,将所述日志数据作为所述异常检测模型的输入,得到所述异常检测模型输出的所述日志数据中每条日志的分值;所述异常检测模型为xgboost模型;
20.异常日志筛选模块,用于从所述日志数据中筛选出分值最大的n条日志作为异常日志;所述n为正整数;
21.聚类分析模块,用于利用主题模型对所述异常日志进行聚类分析;
22.问题诊断模块,用于根据聚类分析结果诊断所述目标系统的问题类别。
23.本技术第五方面提供了一种计算机设备,所述设备包括处理器以及存储器;
24.所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
25.所述处理器用于根据所述程序代码中的指令执行第一方面提供的异常检测方法,或者执行第二方面提供的问题诊断方法。
26.本技术第六方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行第一方面提供的异常检测方法,或者执行第二方面提供的问题诊断方法。
27.由上述技术方案可以看出,通过对目标系统的日志数据进行文本处理得到日志向量,将日志数据转换为向量表示,进而后续以向量形式进行聚合。依照滑动时间窗口对日志向量进行聚合,将原始的日志数据按照时间维度进行整合并作为异常检测模型的输入。本技术技术方案中,异常检测模型所使用的训练数据与模型实际使用时输入的数据及预期输出的数据形式相互匹配。异常检测模型为利用目标系统的历史日志数据和历史日志数据相应时间内的问题反馈数据训练获得的,因此在投入聚合后的日志向量后,该模型能够检测出相应时间内目标系统是否存在异常,在时间维度上获得准确的异常检测结果。本技术以训练好的异常检测模型辅助分析人员完成对目标系统的异常检测,降低了对分析人员的专业性要求,也不需要复杂的维护,因此能够在提升系统的异常检测效率的同时,降低实现难度和实现成本。
28.当应用异常检测模型发现目标系统存在异常时,还可以将相关时间内原始的日志数据再次输入到异常检测模型中,以获得每条日志的分值,分值越高,代表通过异常检测模型预测出该条日志造成系统异常的影响越大。根据异常检测模型输出的分值,利用主题模型进行聚类分析,最终可以根据聚类分析结果来诊断系统的问题。可见本技术技术方案利用异常检测模型不但可以实现异常检测,还可以辅助实现问题诊断。
附图说明
29.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
30.图1为本技术实施例提供的一种异常检测方法的流程示意图;
31.图2为本技术实施例提供的一种异常检测模型的训练流程示意图;
32.图3a为本技术实施例提供的利用训练数据训练异常检测模型的示意图;
33.图3b为本技术实施例提供的一种以roc曲线对异常检测模型的评估结果示意图;
34.图3c为本技术实施例提供的应用异常检测模型进行异常检测的示意图;
35.图4为本技术实施例提供的一种问题诊断方法的流程示意图;
36.图5为本技术实施例提供的一种实现异常检测及问题诊断的流程示意图;
37.图6为本技术实施例提供的一种异常检测装置的结构示意图;
38.图7为本技术实施例提供的一种问题诊断装置的结构示意图;
39.图8为本技术实施例提供的服务器的结构示意图;
40.图9为本技术实施例提供的终端设备的结构示意图。
具体实施方式
41.下面结合附图,对本技术的实施例进行描述。
42.相关技术中通过日志分析来检测软件系统异常时,需要专业人员简历规则,再基于正则表达式等相关匹配方法对日志进行筛选、分类,提取出全量日志中的关键信息。鉴于该方法存在维护困难和实现成本较高的问题,因此在本技术中提供了实现异常检测的新的技术方案。
43.在本技术技术方案中,通过预先训练的异常检测模型实现异常检测,且该异常检测模型还可以辅助实现问题诊断。当需要对一种待检测的软件系统(后文简称目标系统)进行异常检测时,只需要提取该系统的日志数据,将其转换为向量形式,将向量形式的日志数据按照滑动时间窗口进行聚合,再将聚合后的日志向量输入到异常检测模型中,即可获得模型输出的异常检测结果。本技术技术方案降低了对日志分析人员的专业性要求,也不需要复杂的维护,因此能够在提升系统的异常检测效率的同时,降低实现难度和实现成本。
44.本技术实施例提供的异常检测方法和问题诊断方法是基于人工智能实现的,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
45.人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
46.在本技术实施例中,主要涉及的人工智能软件技术包括上述自然语言处理、机器学习/深度学习等方向。例如,可以涉及自然语言处理(nature language processing,nlp)中的语义理解(semantic understanding)、机器人问答,包括问题理解(query understanding)、答案抽取(answer extraction)、答案论证(answer argument),也可以涉及机器学习(machine learning,ml)中的深度学习(deep learning),包括各类人工神经网络(artificial neural network,ann)。
47.本技术提供的异常检测方法和问题诊断方法可以应用于具有数据处理能力的异
常检测设备和问题诊断设备,如终端设备、服务器。其中,终端设备具体可以为智能手机、台式计算机、笔记本电脑、平板电脑、智能音箱、智能手表等,但并不局限于此;服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。
48.异常检测设备和问题诊断设备可以具备实施自然语言处理的能力,自然语言处理(nature language processing,nlp)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系。自然语言处理技术通常包括文本处理、语义理解、机器翻译、机器人问答、知识图谱等技术。在本技术实施例中,文本处理设备可以通过自然语言处理中的文本预处理、语义理解等技术对文本进行处理。
49.异常检测设备和问题诊断设备可以具备机器学习能力。机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络等技术。
50.在本技术实施例提供的异常检测方法和问题诊断方法中,采用的人工智能模型主要涉及对自然语言处理的应用,通过自然语言处理实现日志数据到日志向量的转换,以及根据聚合后的日志向量进行系统异常检测、对日志数据进行评分等。
51.此外,本技术实施例提供的文本处理设备还具备云计算能力。云计算(cloud computing)指it基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是it和软件、互联网相关,也可是其他服务。云计算是网格计算(grid computing)、分布式计算(distributed computing)、并行计算(parallel computing)、效用计算(utility computing)、网络存储(network storage technologies)、虚拟化(virtualization)、负载均衡(load balance)等传统计算机和网络技术发展融合的产物。
52.随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
53.大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。随着云时代的来临,大数据也吸引了越来越多的关注,大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。
54.在本技术实施例中,异常检测设备和问题诊断设备可以利用云计算技术,对目标系统的异常进行检测,对目标系统的问题进行诊断。
55.示例性方法
56.为了便于理解本技术的技术方案,下面结合实际应用场景,以终端设备作为异常检测设备对本技术实施例提供的异常检测方法进行介绍。
57.在一种可能的场景中,终端设备上运行有目标系统,终端设备能够获得目标系统运行时的日志数据,并基于此日志数据进行异常检测。在另一种可能的场景中,终端设备能够与其他运行有目标系统的设备进行通信,并获得其他运行有目标系统的设备该目标系统的日志数据,终端设备再基于此日志数据进行异常检测。在又一种可能的场景中,终端设备能够从服务器获得其他运行有目标系统的设备上传至服务器的日志数据,终端设备基于从服务器获得的上述日志数据对其他设备上运行的目标系统进行异常检测。
58.参见图1,该图为本技术实施例提供的一种异常检测方法的流程示意图。如图1所示,本技术实施例提供的异常检测方法包括:
59.s101:对目标系统的日志数据进行文本处理得到日志向量。
60.目标系统在本技术实施例中是指任意一种待检测的软件系统,此处对于目标系统的功能不做限定。目标系统的日志数据包括但不限于:应用程序日志。应用程序日志记录应用程序或一般程序的事件。由于目标系统的日志数据结构和内容复杂,为了便于异常检测时对日志的分析处理,s101中对日志数据进行文本处理,以得到向量化的表示,即日志向量。通过转换为向量,可以实现数学运算。
61.在一种可能的实现方式中,可以通过词频

逆文本频率(term frequency

inverse document frequency,tf

idf)方法对日志数据进行文本处理以生成日志向量。实际应用中将文本转换为向量的方式不局限于tf

idf方法,本方案中对s101的具体实现方式不进行限定。
62.s102:依照滑动时间窗口对所述日志向量进行聚合。
63.为了实现时间维度上相对准确的异常诊断,在s102需要在时间维度上对s101获得的日志向量进行聚合。依照滑动时间窗口进行向量聚合,实现时具体可以包括:根据起始时间和时间窗口的滑动步长得到多个时间窗口,在按照日志向量对应的日志数据的产生时间,将日志向量聚合到准确的时间窗口中。作为示例,日志数据最早的产生时刻为t
start
,最晚的产生时刻为t
end
。滑动时间窗口的起始时间为t1,滑动步长为δt,其中t1≥t
start
,则可以得到时间窗口t1~t1 δt,t1 δt~t1 2δt,t1 2δt~t1 3δt等。最后一个时间窗口的结束时间早于或等于t
end

64.通过执行s102,将s101得到的日志向量按照滑动划分出的时间窗口聚合起来,从而便于后续基于时间窗口内的日志向量对目标系统进行时间维度上相对准确的异常检测。
65.s103:将聚合后的向量作为异常检测模型的输入,得到所述异常检测模型输出的对所述目标系统的异常检测结果。
66.在s103执行之前,已预先训练好异常检测模型。该模型的作用是根据输入的聚合后的向量进行日志分析,并输出基于聚合后的向量的异常检测结果。异常检测模型的本质是一个分类模型,用于基于输入内容做出分类。在本技术实施例中,异常检测结果也可以视为分类结果。
67.作为示例,将时间窗口t1~t1 δt内聚合的向量输入至异常检测模型,如果模型输出的值为0,则表示在时间窗口t1~t1 δt内目标系统无异常;如果模型输出值为1,则表示
在时间窗口t1~t1 δt内目标系统发生异常。
68.以上即为本技术实施例提供的一种异常检测方法,该方法中通过对目标系统的日志数据进行文本处理得到日志向量,将日志数据转换为向量表示,进而后续以向量形式进行聚合。依照滑动时间窗口对日志向量进行聚合,将原始的日志数据按照时间维度进行整合并作为异常检测模型的输入。该模型能够检测出相应时间内目标系统是否存在异常,在时间维度上获得准确的异常检测结果。本技术以训练好的异常检测模型辅助分析人员完成对目标系统的异常检测,降低了对分析人员的专业性要求,也不需要复杂的维护,因此能够在提升系统的异常检测效率的同时,降低实现难度和实现成本。
69.下面,对上文提及的异常检测模型的训练过程进行介绍和说明。
70.参见图2,该图为本技术实施例提供的一种异常检测模型的训练流程示意图。如图2所示,为训练获得异常检测模型,需要执行以下操作:
71.s201:获得历史日志数据和历史日志数据相应时间内的问题反馈数据。
72.作为用于训练模型的数据基础,此处为了区别于前述方法实施例s101描述的日志数据,将用于训练模型所使用的日志数据称为历史日志数据。历史日志数据的生成时间早于s101描述的日志数据的生成时间。历史日志数据与日志数据的类型及形式基本相同,此处不做赘述也不做限制。
73.另外,还需要获取问题反馈数据。在一种示例场景中,用户通过使用目标系统,在运行目标系统的设备上执行一些预设类型的操作,从而产生了线上的问题反馈数据。对于不同的目标系统,相应的,问题反馈数据的类型及内容可能存在差别。故此处对于问题反馈数据的类型及内容不做限制。为了便于理解,下面提供几则示例。
74.示例一:用户a通过使用设备上运行的目标系统,发现使用过程中存在操作响应迟缓的问题,通过点击界面上的问题反馈窗口,在备选的若干问题上报选项中,选择“操作响应迟缓”这一问题。
75.示例二:用户b通过使用设备上运行的目标系统,发现使用过程中存在视频播放卡顿的问题,通过点击界面上的问题反馈窗口,在“其他问题”这一选项下输入“视频播放卡顿”的问题。
76.需要说明的是,在训练异常检测模型时,要求使用的训练数据在时间上具有对应性。因此,在s201中,要求获取的历史日志数据与问题反馈数据在时间上也具有对应性。例如,获取起始时间t
001
至结束时间t
002
的历史日志数据,也获取起始时间t
001
至结束时间t
002
之间线上的问题反馈数据。
77.s202:对历史日志数据进行文本处理得到历史日志向量。
78.在本技术实施例中,为了保证训练出的异常检测模型的使用效果,要求训练数据中输入数据和使用过程中的输入数据具有相同或者相似的形式。结合上述实施例s101的描述,需要将日志数据处理为日志向量后进行聚合,再将聚合后的向量作为训练好的异常检测模型的输入。故在训练阶段,s202也要首先对历史日志数据进行文本处理,从而得到历史日志数据的向量表示。
79.在一种可能的实现方式中,将历史日志数据文本处理为历史向量数据的同时,保存了转换过程中生成的tf

idf词典。该tf

idf词典描述了s202执行过程中历史日志数据与历史日志向量的转换关系。因此在执行s101之前,可以将保存下来的tf

idf词典部署到对
目标系统的异常检测环境中,从而在s101执行时,利用所部署的tf

idf词典实现将日志数据转换为日志向量。因此,在本技术实施例中,通过保存形成训练数据的文本处理过程中使用的词典,能够保证模型使用阶段和训练阶段的输入数据形式上的统一,进而提升模型检测系统异常的准确性。
80.s203:依照滑动时间窗口对历史日志向量进行聚合,得到聚合后的历史日志向量;并且,依照滑动时间窗口对问题反馈数据进行聚合,得到聚合后的问题反馈数据。
81.在本技术实施例中,为形成训练数据,需要分别对前述步骤获得的历史日志向量和问题反馈数据进行聚合。具体聚合方式也是要依照滑动时间窗口。为了保证模型使用阶段输出的异常检测结果的准确性,在一种可能的实现方式中,可以要求s203聚合历史日志向量以及聚合问题反馈数据时,时间窗口的滑动步长均与s102聚合日志向量使用的滑动步长一致,例如,滑动步长都为δt。此外,时间窗口划分时,对于历史日志向量聚合以及问题反馈数据聚合,时间窗口的起始时间相同。从而保证了聚合历史日志向量与聚合问题反馈数据的时间窗口分别对应。
82.下面提供一种获得聚合后的问题反馈数据的可选实现方式。
83.首先,统计获得所述滑动时间窗口内每个时间窗口内所述问题反馈数据的数量。其后将时间窗口内问题反馈数据的数量与该时间窗口对应的参照数值进行比较。如果该时间窗口内问题反馈数据的数量超过该时间窗口对应的参照数值,则表示该时间窗口内问题反馈数据的数量过多,从而可以确定目标系统在该时间窗口内存在异常。反之,则认为系统在该时间窗口内无异常。将上述判定结果作为时间窗口对问题反馈数据的聚合结果。
84.需要说明的是,不同时间窗口对应的参照数值可以相同,也可以不同。参照数值可以根据对模型准确度的实际需求设置,也可以根据先验知识(例如不同时间段的流量大小)进行设置,此处不做限制。
85.s204:将相同时间窗口的聚合后的历史日志向量和聚合后的问题反馈数据作为一组训练数据,通过训练数据训练获得异常检测模型。
86.为了保证模型输入输出在时间上的匹配度,在时间维度上实现对系统异常的准确检测,本技术实施例中在形成训练数据时,将相同时间窗口的聚合后的历史日志向量与聚合后的问题反馈数据作为一组训练数据。如此,基于不同的时间窗口,可以获得多组训练数据。
87.图3a为本技术实施例提供的利用训练数据训练异常检测模型的示意图。如图3a所示,未训练完成的模型以一组训练数据中的聚合后的历史日志向量作为输入,并结合该组训练数据中聚合后的问题反馈数据与模型的输出结果调整优化模型的参数。
88.作为一种可能的实现方式,在通过所述训练数据进行模型训练时,利用预设测评指标对于模型进行评估,当评估结果满足预设条件时,得到所述异常检测模型。在一种示例中,要训练的异常检测模型为极端梯度提升(extreme gradient boosting,xgboost)模型,其本质是一种分类模型。因此可以使用分类模型的相关测评指标来对模型训练情况进行评估。例如,使用的测评指标可以为受试者工作特征(receiver operating characteristics,roc)曲线下与坐标轴围成的面积(aera under curve,auc)。在模型训练过程中,根据模型的roc曲线的auc指标持续优化,满足预设条件时保存最终生成的模型文件。
89.作为示例,预设条件为auc指标迭代变化幅度的绝对值小于第一预设阈值,且auc指标小于第二预设阈值。此处,第一预设阈值以及第二预设阈值可以根据实际需求或者经验进行设定。例如,第一预设阈值为2%,第二预设阈值为0.8。图3b展示了以roc曲线对异常检测模型的评估结果,如图中所示,auc指标达到0.81。结合auc迭代变化的幅度,认为图3b所示评估结果对应的异常检测模型可用。
90.当模型训练完成,即可部署到对目标系统的测试环境中,执行如图1的流程。图3c为本技术实施例提供的应用异常检测模型进行异常检测的示意图,可结合图3c和图1理解异常检测模型的应用过程。如图3c所示,聚合后的向量作为模型输入,基于图2介绍的流程而生成的xgboost异常检测模型进行分类预测,得到对目标系统的异常检测结果。若分类结果(即异常检测结果)为无异常,则异常检测流程结束;而若分类结果为异常,则可以根据实际需要,继续进行目标系统的问题诊断。
91.下面结合图4和图5介绍本技术实施例提供的一种问题诊断方法的实现方式。图4为本技术实施例提供的一种问题诊断方法的流程示意图。图5为本技术实施例提供的一种实现异常检测及问题诊断的流程示意图。如图4所示,问题诊断方法包括:
92.s401:将日志数据作为异常检测模型的输入,得到异常检测模型输出的日志数据中每条日志的分值。
93.在前述实施例介绍异常检测方法时提及,需要首先将日志数据文本处理为日志向量,再对日志向量依照滑动时间窗口进行聚合,把聚合后的日志向量作为异常检测模型的输入,并获得异常检测模型的输出的异常检测结果。如果异常检测结果指示目标系统在某一时间窗口内存在异常,为了实现对目标系统问题的诊断,在本技术实施例中,可以通过s401将该时间窗口内产生的原始的日志数据再次输入至异常检测模型中。
94.在本技术实施例中,异常检测模型为xgboost模型,xgboost模型能够对所输入的日志数据对异常情况的影响力(也称贡献)进行评分。假设在时间窗口t1~t1 δt内共有50条日志,可以将这50条日志分别输入到异常检测模型中,从而获得每条日志的分值。分值越高,该条日志对目标系统在该时间窗口内发生异常的影响越大;反之,分值越低,则影响力越小。
95.s402:从日志数据中筛选出分值最大的n条日志作为异常日志。
96.前面提到,s401对日志数据中每条日志进行评分。其中一些日志的分值较小,对于目标系统的问题诊断的作用可能比较小。为了减少运算量,提升问题诊断的速度,可以对各条日志根据分值由大到小的顺序依次排序,再从中确定出分值最大的n条日志作为用于诊断系统问题的异常日志。在本技术实施例中,n为从日志数据中筛选异常日志的数量,可以根据实际需求进行设定。例如n=20,本技术实施例中对于n的具体取值不做限制。
97.s403:利用主题模型对异常日志进行聚类分析,根据聚类分析结果诊断目标系统的问题类别。
98.主题模型是以非监督学习的方式对文集的隐含语义结构进行聚类的统计模型。本技术实施例提供的问题诊断方法中,主题模型能够根据设定的主题数量对异常日志进行聚类分析。例如设定的主题数量为5,则能够通过主题模型的聚类分析,将异常日志聚类成5个问题类别。隐含狄利克雷分布(latent dirichlet allocation,lda)是常见的主题模型,因此在s403执行时,具体可以采用lda主题模型对异常日志进行聚类分析。
99.s403中使用的主题模型也可以是在s403执行之前预先通过训练获得的。例如,通过一些已有的异常日志和准确分析出的问题类别,对待训练的模型进行训练,从而获得了能够准确对异常日志实现聚类分析的主题模型。在s403执行时,再通过部署的该主题模型对s402筛选出的异常日志进行聚类分析。此外,设定的主题数量也可以是经过预先训练主题模型得到的经验数值。
100.当前训练主题模型属于比较成熟的技术,本技术技术方案中区别在于为形成能够准确诊断系统问题的主题模型,使用的训练数据为异常日志以及异常日志对应的问题类别。故相关描述不再赘述。
101.通过以上实施例可知,在本技术实施例技术方案中,利用异常检测模型输出的分值来确定异常日志,再应用主题模型对异常日志进行聚类分析,便可以诊断目标系统的问题。将日志的异常与系统的问题关联起来,实现对问题的准确诊断。
102.在一种可能的实现方式中,为了便于开发人员后续基于诊断的问题进行问题修复,从而使目标系统尽快恢复正常,本技术实施例中,还可以对诊断出的问题进行定位。例如,诊断出5个问题,则可以将5个问题类别对应的异常日志分别输出。例如,输出第一类问题对应的异常日志,开发人员便可以有针对性地基于第一类问题对应的异常日志,对其中的第一类问题进行定位参考和问题修复。
103.相关技术中存在一些基于日志分析通过机器学习及深度学习进行异常检测和问题诊断的方案,可以细分为:有监督的学习方式和无监督的学习方式。其中,有监督的学习方式通常需要大量的标记数据来给模型进行训练,在实际生产系统中往往比较难以获取;通过无监督的学习方式无法对不同类别的问题种类进行诊断及定位。而前面提及的基于规则匹配的方式进行日志分析,在问题诊断方面只能对已有的问题类别进行匹配检测,而对于未知的问题类别则无法做出诊断。
104.通过以上对本技术实施例技术方案的介绍,通过目标系统的日志数据以及系统线上的问题反馈数据来获得训练数据,并以此训练数据来训练xgboost算法模型,并基于训练得到的xgboost模型对滑动时间窗口内的日志进行预测,检测可能存在的异常,实现软件系统的异常检测,解决了有监督学习方式较难获取有标签数据的难题。此外,通过使用主题模型对异常日志进行聚类,诊断问题类别,并输出相应类别的异常日志,实现软件系统的问题诊断及定位,极大提升了开发人员定位及修复问题的工作效率。对于以往未知的问题类型也能够做出诊断,因此诊断的准确性得到提升。
105.以上介绍的异常检测方法及问题诊断方法,能够利用机器学习算法对软件系统可能存在的异常进行自动检测,并在检测到系统异常的同时诊断系统问题,抛出问题所对应的异常日志,这使得在如今软件系统日益庞大以及日志信息较为繁杂冗余的情况下,开发人员不必耗费大量的时间在系统问题定位及错误日志分析上。从而,极大地提高了开发人员修复、优化、迭代软件系统的效率,缩减了系统异常检测及问题诊断的人工成本。
106.基于前述实施例提供的方法,相应地,本技术还提供了一种异常检测装置和问题诊断装置。下面分别通过附图和实施例进行说明。
107.示例性装置
108.图6为本技术实施例提供的一种异常检测装置的结构示意图。如图6所示,本技术实施例提供的异常检测装置600包括:
109.文本处理模块601,用于对目标系统的日志数据进行文本处理得到日志向量;
110.向量聚合模块602,用于依照滑动时间窗口对所述日志向量进行聚合;
111.异常检测模块603,用于将聚合后的向量作为异常检测模型的输入,得到所述异常检测模型输出的对所述目标系统的异常检测结果;所述异常检测模型为利用所述目标系统的历史日志数据和所述历史日志数据相应时间内的问题反馈数据训练获得的。
112.通过对目标系统的日志数据进行文本处理得到日志向量,将日志数据转换为向量表示,进而后续以向量形式进行聚合。依照滑动时间窗口对日志向量进行聚合,将原始的日志数据按照时间维度进行整合并作为异常检测模型的输入。本技术技术方案中,异常检测模型所使用的训练数据与模型实际使用时输入的数据及预期输出的数据形式相互匹配。异常检测模型为利用目标系统的历史日志数据和历史日志数据相应时间内的问题反馈数据训练获得的,因此在投入聚合后的日志向量后,该模型能够检测出相应时间内目标系统是否存在异常,在时间维度上获得准确的异常检测结果。本技术以训练好的异常检测模型辅助分析人员完成对目标系统的异常检测,降低了对分析人员的专业性要求,也不需要复杂的维护,因此能够在提升系统的异常检测效率的同时,降低实现难度和实现成本。
113.在一种可选的实现方式中,异常检测装置600还包括:模型训练模块,用于训练所述异常检测模型。模型训练模块包括:
114.数据获取单元,用于获得所述历史日志数据和所述历史日志数据相应时间内的问题反馈数据;
115.文本处理单元,用于对所述历史日志数据进行文本处理得到历史日志向量;
116.聚合单元,用于依照所述滑动时间窗口对所述历史日志向量进行聚合,得到聚合后的历史日志向量;并且,依照所述滑动时间窗口对所述问题反馈数据进行聚合,得到聚合后的问题反馈数据;
117.训练单元,用于将相同时间窗口的所述聚合后的历史日志向量和所述聚合后的问题反馈数据作为一组训练数据,通过所述训练数据训练获得所述异常检测模型。
118.通过预先训练异常检测模型,可以提升对目标系统异常检测时的检测效率,大大节省人力劳动。
119.在一种可选的实现方式中,异常检测装置600还包括:
120.存储指示单元,用于保存将所述历史日志数据处理为所述历史日志向量的过程中生成的词典;
121.文本处理模块601具体用于利用所述词典对所述日志数据转换为所述日志向量。
122.在该实现方式中,由于在训练阶段就保存了从日志向日志向量转换的词典,因此对目标系统进行异常检测时,利用该预先保存的词典,能够实现日志数据的准确转换,保证了前后转换所用的词典的一致性。进而,提升了模型输入的形式的一致性,进而有利于获得更加准确的异常检测结果。
123.在一种可选的实现方式中,在该实现方式中,通过问题反馈数据的数量衡量系统异常与否。聚合单元包括:
124.统计子单元,用于统计获得所述滑动时间窗口内每个时间窗口内所述问题反馈数据的数量;
125.比较子单元,用于当一个时间窗口内所述问题反馈数据的数量超出该时间窗口对
processing units,cpu)1422(例如,一个或一个以上处理器)和存储器1432,一个或一个以上存储应用程序1442或数据1444的存储介质1430(例如一个或一个以上海量存储设备)。其中,存储器1432和存储介质1430可以是短暂存储或持久存储。存储在存储介质1430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1422可以设置为与存储介质1430通信,在服务器1400上执行存储介质1430中的一系列指令操作。
140.服务器1400还可以包括一个或一个以上电源1426,一个或一个以上有线或无线网络接口1450,一个或一个以上输入输出接口1458,和/或,一个或一个以上操作系统1441,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm等等。
141.上述实施例中由服务器所执行的步骤可以基于该图8所示的服务器结构。
142.其中,cpu 1422用于执行如下步骤:
143.对目标系统的日志数据进行文本处理得到日志向量;
144.依照滑动时间窗口对所述日志向量进行聚合;
145.将聚合后的向量作为异常检测模型的输入,得到所述异常检测模型输出的对所述目标系统的异常检测结果;所述异常检测模型为利用所述目标系统的历史日志数据和所述历史日志数据相应时间内的问题反馈数据训练获得的。
146.当所述异常检测结果指示所述目标系统存在异常时,将所述日志数据作为所述异常检测模型的输入,得到所述异常检测模型输出的所述日志数据中每条日志的分值;所述异常检测模型为xgboost模型;
147.从所述日志数据中筛选出分值最大的n条日志作为异常日志;所述n为正整数;
148.利用主题模型对所述异常日志进行聚类分析,根据聚类分析结果诊断所述目标系统的问题类别。
149.可选的,cpu 1422还可以执行本技术实施例中异常检测方法、问题诊断方法任一具体实现方式的方法步骤。
150.针对上文描述的异常检测方法、问题诊断方法,本技术实施例还提供了一种用于异常检测方法、问题诊断方法的终端设备,以使上述异常检测方法、问题诊断方法方法在实际中实现以及应用。
151.参见图9,图9为本技术实施例提供的一种终端设备的结构示意图。为了便于说明,仅示出了与本技术实施例相关的部分,具体技术细节未揭示的,请参照本技术实施例方法部分。该终端设备可以为包括手机、平板电脑、个人数字助理(personal digital assistant,简称pda)等任意终端设备,以终端设备为手机为例:
152.图9示出的是与本技术实施例提供的终端设备相关的手机的部分结构的框图。参考图9,该手机包括:射频(radio frequency,简称rf)电路1510、存储器1520、输入单元1530、显示单元1540、传感器1550、音频电路1560、无线保真(wireless fidelity,简称wifi)模块1570、处理器1580、以及电源1590等部件。本领域技术人员可以理解,图9中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
153.下面结合图9对手机的各个构成部件进行具体的介绍:
154.rf电路1510可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的
下行信息接收后,给处理器1580处理;另外,将设计上行的数据发送给基站。通常,rf电路1510包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(low noise amplifier,简称lna)、双工器等。此外,rf电路1510还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(global system of mobile communication,简称gsm)、通用分组无线服务(general packet radio service,简称gprs)、码分多址(code division multiple access,简称cdma)、宽带码分多址(wideband code division multiple access,简称wcdma)、长期演进(long term evolution,简称lte)、电子邮件、短消息服务(short messaging service,简称sms)等。
155.存储器1520可用于存储软件程序以及模块,处理器1580通过运行存储在存储器1520的软件程序以及模块,从而实现手机的各种功能应用以及数据处理。存储器1520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
156.输入单元1530可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1530可包括触控面板1531以及其他输入设备1532。触控面板1531,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1531上或在触控面板1531附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1531可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1580,并能接收处理器1580发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1531。除了触控面板1531,输入单元1530还可以包括其他输入设备1532。具体地,其他输入设备1532可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
157.显示单元1540可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1540可包括显示面板1541,可选的,可以采用液晶显示器(liquid crystal display,简称lcd)、有机发光二极管(organic light

emitting diode,简称oled)等形式来配置显示面板1541。进一步的,触控面板1531可覆盖显示面板1541,当触控面板1531检测到在其上或附近的触摸操作后,传送给处理器1580以确定触摸事件的类型,随后处理器1580根据触摸事件的类型在显示面板1541上提供相应的视觉输出。虽然在图9中,触控面板1531与显示面板1541是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1531与显示面板1541集成而实现手机的输入和输出功能。
158.手机还可包括至少一种传感器1550,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线
的明暗来调节显示面板1541的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1541和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
159.音频电路1560、扬声器1561,传声器1562可提供用户与手机之间的音频接口。音频电路1560可将接收到的音频数据转换后的电信号,传输到扬声器1561,由扬声器1561转换为声音信号输出;另一方面,传声器1562将收集的声音信号转换为电信号,由音频电路1560接收后转换为音频数据,再将音频数据输出处理器1580处理后,经rf电路1510以发送给比如另一手机,或者将音频数据输出至存储器1520以便进一步处理。
160.wifi属于短距离无线传输技术,手机通过wifi模块1570可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图9示出了wifi模块1570,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
161.处理器1580是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1520内的软件程序和/或模块,以及调用存储在存储器1520内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1580可包括一个或多个处理单元;优选的,处理器1580可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1580中。
162.手机还包括给各个部件供电的电源1590(比如电池),优选的,电源可以通过电源管理系统与处理器1580逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
163.尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
164.在本技术实施例中,该手机所包括的存储器1520可以存储程序代码,并将所述程序代码传输给所述处理器。
165.该手机所包括的处理器1580可以根据所述程序代码中的指令执行上述实施例提供的异常检测方法、问题诊断方法方法。
166.本技术实施例还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序用于执行上述实施例提供的异常检测方法、问题诊断方法方法。
167.本技术实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的异常检测方法、问题诊断方法方法。
168.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read

only memory,缩写:rom)、ram、磁碟或者光盘等各种可以存储程序代码的介质。
169.需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
170.以上所述,仅为本技术的一种具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应该以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献