CN111769974A - 一种云系统故障诊断方法 - Google Patents
一种云系统故障诊断方法 Download PDFInfo
- Publication number
- CN111769974A CN111769974A CN202010529320.1A CN202010529320A CN111769974A CN 111769974 A CN111769974 A CN 111769974A CN 202010529320 A CN202010529320 A CN 202010529320A CN 111769974 A CN111769974 A CN 111769974A
- Authority
- CN
- China
- Prior art keywords
- log
- fault diagnosis
- model
- cloud system
- neural network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/147—Network analysis or design for predicting network behaviour
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种云系统故障诊断方法,将日志按照产生的组件进行划分,对每个组件的日志分别提取日志的统计特征,训练差异性的模型进行故障诊断。本发明在模型训练中,使用深度学习方法,学习统计特征的时间关联性,并使用神经网络模型进行动态的故障判定。本发明设计实现了线上模型更新方法,解决了训练数据集覆盖不全面的问题,保证了模型更新时的诊断吞吐率。本发明能够为复杂的云系统提供高速、精确的故障诊断和定位。
Description
技术领域
本发明涉及云计算领域,特别涉及一种云系统故障诊断方法。
背景技术
伴随着云计算、网络功能虚拟化技术(Network Functions Virtualization,NFV)的成熟,商用云系统不断发展壮大,并且发挥着越来越重要的作用。阿里云、谷歌云、亚马逊云等典型的商业云系统可以按需对用户提供差异服务。根据用户不同的存储、计算需求,为用户提供多种解决方案。云系统的成熟与发展在保证用户需求的前提下极大的提升了系统资源的利用率从而降低了运营成本。云系统灵活的资源配置也给自身的可靠性与稳定性带来了挑战。用户可以通过云系统提供的统一接口来完成资源的动态配置与扩展。资源动态配置的完成需要云系统各个组件的密切配合,单一组件的异常可能会导致整个系统的功能异常甚至崩溃。因此,如何对云系统进行有效的监控和诊断成为了提高云系统稳定性的关键问题。
日志记录了系统运行的关键信息,为了对云系统中可能存在的故障进行快速准确的定位与诊断,研究者致力于使用日志数据来监控与诊断系统的健康状况。现有的基于日志的云系统故障诊断方法主要有以下三种。
第一种是基于日志标识符的方法。该方法假定日志中存在标识日志对象的标识符,例如IP地址、Mac地址、用户ID等。此类方法根据日志中含有的标识符信息,构建不同对象间的依赖关系,例如IP地址与Mac地址的对应关系,通过依赖关系图可以实现故障对象的根源定位。Stitch是采用该方法的云系统故障诊断系统,其假定日志中存在对象的标识符。Stitch首先提取日志中对象标识符。同一条日志中出现的日志对象之间将建立对应关系。通过对数据集中所有对象依赖关系的提取,Stitch构建出日志对象依赖关系图。当其中的一个对象出现异常或错误时,Stitch通过分析对象依赖关系图,最终可以确定错误产生的根本原因。Stitch可以实现故障的根源定位,但需要日志对象标识符作为应用的前提。然而并非所有的日志都包含对象标识符,因此该方法的应用场景具有局限性,不具备普适性,难以在真实的云系统中得以良好使用。
第二种是基于工作流的方法。该方法从日志中提取任务或程序的运行轨迹,通过当前执行路径与历史执行路径的对比实现故障的定位。CloudSeer是基于工作流方法的诊断云系统中任务的运行错误的系统,当任务出现错误时实现快速、准确的故障位置诊断与定位。CloudSeer首先从日志中为云系统中的每个任务(例如虚拟机的创建、删除等)提取其工作流。工作流是该任务执行的过程中,各个服务进程打印的日志按照时间顺序组成的日志序列。以任务的工作流为输入,CloudSeer为每个任务构建相应的自动机模型。通过任务自动机的匹配过程实现故障诊断。但是,CloudSeer工作流的提取限制在串行的环境下,这使得其工作流在并行的环境下缺乏普适性。而云系统中的任务具有高并发性,这使得不同任务产生的日志高度交叠,难以区分某条日志具体由哪个任务产生。同时,云系统任务的高并发性也使得日志乱序,从而使得同一任务可能出现多种不同的任务流。基于工作流的方法受此影响难以提取到完备的工作流,因此在高并发的环境中诊断准确率低。
第三种是基于日志序列的方法。此类方法大多使用机器学习探索日志间的时序关系,其基于历史日志序列预测下一条可能出现的日志,如果下一条出现的日志不在预测的范围内即认定当前输入存在故障。DeepLog是基于日志序列方法的诊断系统,其使用机器学习的方法,通过对历史输入序列的学习,预测下一条可能存在的日志。DeepLog首先将日志序列转化为日志类型序列。两条日志,如果去除掉数字、IP地址、时间等变量后具有相同的字符串则认为两者具有相同的日志类型。DeepLog使用LSTM模型学习日志序列的时间相关性,同时预测下一条可能的日志类型。如果下一条日志类型不在预测范围内则当前输入认定为异常。该方法的诊断准确性取决于预测的准确性。而预测的准确性依赖于历史序列学习的完备性,随着日志类型、日志乱序数量的增多,DeepLog难以学习到准确的序列关系,因此准确性会急剧下降。基于日志序列的方法受系统中日志复杂程度的影响较大。当系统中的日志复杂性增大时,诊断的准确率急剧下降。
综上所述,现有技术以日志信息作为输入,通过提取日志中的关键信息或分析日志条目的关联性来实现故障的诊断与定位。但是,现有技术或是假定日志中存在对象标识符而不具备普适性,或是受日志的交叠和乱序影响而无法适用于大规模并发环境,因此在高度复杂的云系统中难以应用。
发明内容
为解决上述现有技术中存在的问题,提供一种云系统故障诊断方法,包括步骤:
步骤1,获取所述云系统当前时间片的日志数据;
步骤2,获取每个组件的日志的统计特征数据;
步骤3,基于所述组件的日志的统计特征数据利用云系统故障诊断模型进行进行当前时间片的故障检测,其中所述云系统故障诊断模型包括LSTM神经网络,其通过将历史日志按照组件和时间片划分成多个日志部分,分别获取每个组件在每个时间片的所述统计特征数据,以及利用所述统计特征数据对LSTM神经网络进行训练获得。
优选的,所述步骤3包括:比较所述统计特征的实际值与所述LSTM神经网络计算的统计特征的预测值,进行故障检测。
优选的,所述统计特征包括:频率、周期性、突发性、日志类型、变量数量。
优选的,所述云系统故障诊断模型还包括BP神经网络,对所述BP神经网络的训练包括:
步骤3-1,根据所述LSTM神经网络模型,获得时间片的各特征的预测值;
步骤3-2,计算所述时间片的各特征的预测值与实际值的均方误差;
步骤3-3,将所述均方误差值作为输入,对BP神经网络模型进行训练。
优选的,所述时间片按照一个固定时间间隔划分。
优选的,所述LSTM神经网络的层数为2,每层单元数为3。
优选的,所述BP神经网络模型为2层。
本发明提供一种云系统故障诊断系统,包括:故障诊断模块和在线更新模块;所述故障诊断模块采用上述云系统故障诊断方法进行云系统故障诊断,所述在线更新模块包括控制器以及所述故障诊断模块的副本,所述控制器用于控制所述故障诊断模块和所述故障诊断模块的副本在更新模型时的工作状态。
本发明提供一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现上述云系统故障诊断方法的步骤。
本发明提供一种计算机设备,包括存储器和处理器,在所述存储器上存储有能够在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述云系统故障诊断方法的步骤。
本发明具有如下特点和有益效果:
本发明将日志按照产生的组件进行划分,对每个组件的日志分别提取日志的统计特征,训练差异性的模型进行故障诊断。本发明在模型训练中,使用深度学习(LSTM)方法,学习统计特征的时间关联性,并使用BP神经网络模型进行动态的故障判定。本发明设计实现了线上模型更新方法,解决了训练数据集覆盖不全面的问题,保证了模型更新时的诊断吞吐率。本发明对系统日志的格式没有具体的要求,能应用于多个系统;对云系统中的任务高并发具有高鲁棒性,能够适应复杂环境;充分考虑不同组件对不同指标的敏感度不同,进行差异化诊断。本发明能够为复杂的云系统提供高速、精确的故障诊断和定位。
附图说明
图1是本发明一个实施例的系统架构图。
图2是本发明一个实施例的异常诊断模型架构图。
图3示出了本发明的一个实施例的线上更新模块。
图4示出了本发明的一个实施例的系统、DeepLog、CloudSeer和PCA在采用HDFS数据集时的性能对比。
图5示出了本发明的一个实施例的系统、DeepLog、CloudSeer和PCA在采用OpenStack I数据集时的性能对比。
图6示出了本发明的一个实施例的系统、DeepLog、CloudSeer和PCA在采用OpenStack Ⅱ数据集时的性能对比。
图7示出了本发明的一个实施例的系统、DeepLog在采用HDFS数据集时性能随时间间隔大小变化趋势。
图8示出了本发明的一个实施例的系统、DeepLog采用OpenStack数据集时的性能随时间间隔大小变化趋势。
图9示出了本发明的一个实施例的系统与DeepLog吞吐率对比。
图10示出了本发明的一个实施例中LSTM网络层数对性能的影响。
图11示出了本发明的一个实施例中LSTM每层单元数对性能的影响。
图12示出了本发明的一个实施例中BP神经网络层数对性能的影响。
具体实施方式
下面结合附图和具体实施例对本发明加以说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
发明人在进行云系统故障诊断研究时发现,现有的基于日志的诊断方法首先从日志中提取系统运行的正常或异常特征,通过当前特征与提取特征的对比完成故障诊断过程。然而,现有的方法或是对日志格式有具体要求,需要日志中包含特定的标识符,或是对高并发环境缺乏良好的适应性,诊断准确率受系统日志类型数量、日志乱序、日志交叠程度影响较大。其中,日志类型指的是日志条目去除掉所有变量部分之后剩余的字符串,例如日志条目“Receive response from 10.10.1.1in 200ms”,其日志类型为去除掉IP地址及数字后的剩余字符串“Receive response from in ms”。在高并发环境中,日志类型的数量可以达到串行的4倍之多。同时,由于任务执行的高并发性,任务执行的流程也会具有不确定性,例如,一个原来由进程A处理之后交给进程B处理的任务,可能改变为进程B先处理,而后交给进程A处理,由此可能造成两个任务的日志交叉在一起,即日志乱序和日志交叠,给云系统故障诊断带来了更大的挑战。
发明人在研究过程中发现,云系统在发生异常时会造成日志的统计特征大范围的波动,因此研究日志统计特征的变化规律将会为云系统故障诊断提供良好的助力。
发明人在研究中还发现,云系统复杂功能的实现依赖于系统各个组件的协调运行,云系统的组件包括云系统中提供不同服务的进程、线程以及虚拟网络设备等,云系统的组件分布部署于不同的物理机上,通过网络交互完成如虚拟机的创建、删除等复杂的任务,各个组件对不同的系统指标波动具有差异性的反应。例如,CPU密集型进程对系统CPU变化敏感,当系统CPU使用率过高时,这些进程的处理速度会急剧下降,造成系统反应超时。然而,现有技术中对不同的组件不进行区分,使用相同的模型对系统进行统一诊断,因而无法获得准确的诊断结果。因此,在进行故障诊断的同时,需要考虑到不同组件对不同数据敏感程度不同,对组件进行差异化诊断,从而提高诊断的效率与准确性。同时,在进行云系统故障诊断研究的过程还中发现,不同组件对不同的数据指标具有不同的敏感性。为实现快速、精确的故障诊断,本发明针对不同的组件进行差异性的模型训练。
为了解决现有的基于日志的故障诊断方法普适性差、无法较好的支持高并发环境、无法提供差异性诊断的问题,本发明提供一种云系统故障诊断方法。
本发明的整体设计方案如图1所示,从图中可以看出,整个过程分为两个阶段:线下阶段和线上阶段,线下阶段包括日志处理与模型训练,其中,日志处理主要完成日志划分和统计特征取工作,模型训练根据日志处理所产生的数据对模型进行训练;线上阶段包含故障诊断与模型更新,其中,故障诊断采用训练好的模型对在线产生的日志进行实时诊断,在线更新则根据错误的诊断结果对模型进行更新。
以下详细说明各阶段的工作过程。
线下阶段的日志处理中,包括如下步骤。
步骤L1,划分日志。将日志按照产生的组件划分为若干个部分,有多少组件就划分成多少个部分。以OpenStack为例,OpenStack中包括Nova、Neutron、Swift、Cinder、Glance等核心组件,分别提供计算、网络、对象存储、块存储以及镜像服务,在划分日志时,要将日志划分为对应于各个服务的几个部分。对于每个部分按照固定的时间间隔划分为若干个时间片,根据本发明的一个实施例,按照时间间隔为5s进行划分。时间间隔为1s到60s之间,可以根据数据集作适当调整,例如,对于OpenStack数据集,时间间隔设为5s,对于HDFS数据集,时间间隔设为2s。
步骤L2,提取日志类型。对于每个组件日志的每个时间片,将每条日志条目拆分成变量部分与非变量部分,其中变量部分包括IP地址、UUID、数字(例如响应时间)以及设备名称(例如虚拟机名称)等。去除掉日志中的变量部分后,日志条目剩余的字符串组成了非变量部分。如果两条日志含有相同的非变量部分,则认为两条日志具有相同的日志类型。据此将所述多个日志条目划分为多个日志类型。
步骤L3,对于每个时间片的多个日志条目,提取日志统计特征。日志的统计特征包括频率、周期性、突发性、日志类型、变量个数。各统计特征的含义如下:
频率:单位时间内产生的日志条目数量,计算方式为当前日志的总量除以当前时间片的时间长度;
周期性:周期性日志占所有日志的比例;周期性日志含义是如果某种类型的日志在所有时间片中其日志频率保持不变则认为该日志类型具有周期性;计算方式为一个时间片内具有周期性的日志条目的总和除以该时间片的日志总量;
突发性:突发性指的是突发的日志类型数量,某种日志类型在某个时间片产生的数量较上一时间片有明显提高则认定为一个突发事件。根据本发明的一个实施例,其判断方法为:对于某个时间片t中出现的某种类型的日志,首先计算该时间片中该类型的日志频率,然后计算时间片t-1中该类型的日志频率,如果时间片t内该日志类型的日志频率高于时间片t-1内该日志类型的日志频率一倍及以上,则认为t时间片内该日志类型存在日志突发。
日志类型:一个时间片内日志类型的数量;
变量个数:一个时间片中提取的数字、UUID等变量的数量。
对于每个时间片,提取上述相应的五个统计特征值。每个时间片的同一特征值提取出来,按照时间顺序构成一个时间序列。因此,一共构成5个时间序列,分别是频率时间序列、周期性时间序列、突发性时间序列、日志类型时间序列、变量个数时间序列。
由于统计特征的数值差别很大,例如日志频率可能达到几百,而日志类型可能不超过十个。为了降低数值差异对诊断准确性的影响,在提取统计特征后,还要对各个特征实行标准化,使得其数值均在0到1之间。标准化公式如下所示。
其中,fi,t是特征i在第t个时间片中的数值,fmin_i和fmax_i分别代表特征i在所有时间片中的最小值与最大值。
通过对日志的上述处理,可以得到5个时间序列,每个序列对应于一个组件的某一个日志统计特征。
线下阶段的模型训练包括如下步骤。
步骤H1,训练LSTM网络模型。
LSTM模型可以根据历史的输入,预测下一个可能的数值。在云系统故障诊断中,可以通过训练好的LSTM模型在线预测下一个时间片的统计特征值,当下一个时间片来临,可以通过对比该时间片统计特征的实际值与预测值,分析该时间片数值是否存在异常,从而判断云系统是否存在故障。
在研究中,本发明使用了多个日志统计特征并且对不同的组件分别进行了模型训练。因此,为充分分析、利用特征的时间关联性,本发明采用LSTM模型学习和刻画这一特点,其过程如图2所示,从图中可以看出,输入为Wt-k+1,…,Wt-1,Wt共k个时间片的特征向量,每个特征向量包括f1,f2,…,fn共n个统计特征,根据本发明的一个实施例,包括f1到f5共5个特征,分别对应于时间片的频率、周期性、突发性、日志类型以及变量个数。每一个特征的时间序列对应一个LSTM网络模型。每个LSTM网络包含h层,每层具有k个LSTM单元,k为模型中需要输入的特征的历史数据个数。根据本发明的一个实施例,h设定为2,k设定为3。根据本发明的其他实施例,h和k可以根据具体的输入数据作具体的调整。
每个LSTM单元对应于与某一个具体的历史特征输入,例如,对于某一个特征fi,从历史每个时间片中提取fi构成时间序列S={ft,i,ft-1,i,…,f1,i},其中,t表示第t个时间片。LSTM模型根据输入的历史时间序列的k个值{fk,i,fk-1,i,…,f1,i},可预测下一时间片的可能数值。将LSTM的预测值与真实值比较,当其差异超过固定阈值时则判定组件存在异常,图2虚线框中的部分表示计算LSTM的预测值与真实值,以特征f1为例,真实值101与预测值102的比较结果103可用于判定组件是否存在异常。
根据本发明的另一个实施例,为了进一步提高故障诊断的准确性,本发明将预测值与真实值的差输入到BP神经网络模型中进行训练,以达到较好的故障诊断效果。
步骤H2,训练BP神经网络模型。
发明人在研究中发现,BP神经网络模型可以一次性输入多个特征,并且可以根据输入的数据对模型进行动态的调整。本发明使用BP神经网络模型作为异常的判定。根据本发明的一个实施例,包括步骤:
步骤H20,构建BP神经网络模型;
BP神经网络模型的结构如图2所示,从图中可以看出,BP神经网络的网络结构由输入层,隐含层,输出层组成,隐含层的个数与输出层的个数之和为该神经网络的层数,图2中的BP神经网络是一个两层的神经网络模型,其中包含一个隐含层104和一个输出层105。BP神经网络的层数可以根据具体的实验数据集(OpenStack,Hadoop日志)进行多组实验寻求最优值。每一层包含n个节点,n为提取的日志统计特征的个数。某一层的任意节点与下一层的每个节点均有边相连接。每条边被赋予初始权值-0.5到0.5。神经网络的激活函数设定为在训练过程中,BP神经网络模型会动态的调整各个边的权值大小,使得输出值不断的接近真实值,从而不断提升诊断的准确性。
步骤H21,采用步骤H2训练的LSTM模型,获得待诊断时间片的各特征的预测值;
步骤H22,计算时间片中各特征预测值与实际值的均方误差;
步骤H33,将所述均方误差值作为输入,对BP神经网络模型进行训练。
以上描述了线下阶段的日志处理和模型训练过程。
以下描述线上阶段的故障诊断和在线更新。
线上阶段的故障诊断包括如下步骤:
步骤D1,对于需要诊断的当前时间片的数据,按照上述步骤L1至L3提取相应的日志统计特征;
步骤D2,将提取的统计特征输入到训练好的模型中进行诊断;
步骤D3,如果诊断结果与云系统实际存在的运行故障相符,则报告故障的诊断结果,所述诊断结果包括故障的位置和时间;否则进行线上的模型更新。
模型诊断的准确率受训练数据丰富程度的影响,训练集可能会缺失某种特定场景下的数据造成模型诊断错误。根据本发明的一个实施例,为减少训练数据集缺失对诊断结果的影响,本发明提出一种线上模型更新方法。
模型更新的技术方案如图3所示。线上阶段的模型更新方法包括如下步骤:
步骤U1,控制器301将故障诊断模型302和故障诊断模型副本303同步;
步骤U2,控制器设定故障诊断模型302为活跃状态,用于诊断故障;将故障诊断模型副本303设定为挂起状态,用于更新模型;
步骤U3,当模型需要更新,控制器将所述挂起状态的模型设为更新状态,对处于更新状态的模型进行更新;
步骤U4,更新完成后,控制器将更新后的模型设定为活跃状态,将原来活跃状态的模型设定为更新状态,并将更新状态的诊断模型与活跃状态的模型同步,同步完成后,将处于更新状态的模型设定为挂起状态。
该方法在进行诊断的同时可以实现模型的更新,从而降低了模型更新对系统吞吐率的影响。图9示出了本发明的一个实施例的系统与DeepLog吞吐率对比。从图中可以看出,本发明在线上诊断的同时可以进行模型的动态更新,使得诊断的吞吐率不受模型更新的影响。
根据本发明的其他实施例,发明人对日志时间间隔对性能的影响进行了评估,图7示出了本发明的系统和DeepLog在采用HDFS数据集时性能随时间间隔大小变化趋势。从图中可以看出,当采用HDFS数据集时,时间间隔设为2s,本发明可获得较佳的准确率和召回率。图8示出了本发明的系统和DeepLog采用OpenStack数据集时的性能随时间间隔大小变化趋势,从图中可以看出,当采用OpenStack数据集时,时间间隔设为5s,本发明可获得较佳的准确率和召回率。
根据本发明的其他实施例,发明人对LSTM网络层数对性能的影响进行了评估,结果如图10所示,当LSTM网络层数为2时,所训练的模型具有较佳的准确率和召回率。
根据本发明的其他实施例,发明人对LSTM网络每层的单元数对性能的影响进行了评估,结果如图11所示,当LSTM网络每层的单元数为3时,所训练的模型具有较佳的准确率和召回率。
根据本发明的其他实施例,发明人对BP神经网络层数对性能的影响进行了评估,图12示出了本发明的一个实施例中BP神经网络层数对性能的影响,从图中可以看出,当层数为2时,所训练的模型可获得较高的准确率和召回率。
根据本发明的一个实施例,提供一种云系统故障诊断系统。系统包括故障诊断模块和在线更新模块,其中,所述故障诊断模块采用上述方法训练的诊断模型,所述在线更新模块包括控制器、故障诊断模块副本。所述控制器采用上述的模型更新方法控制故障诊断模块和故障诊断模块副本的工作状态。
为了更好地展示本发明的效果,发明人将本发明与现有技术的三种故障诊断方法(DeepLog、CloudSeer和PCA)进行实验对比,图4至图6示出了本发明的系统、DeepLog、CloudSeer和PCA在采用不同数据集时的性能对比。图4示出了本发明的系统、DeepLog、CloudSeer和PCA在采用HDFS数据集时的性能对比。图5示出了本发明的系统、DeepLog、CloudSeer和PCA在采用OpenStack I数据集时的性能对比。图6示出了本发明的系统、DeepLog、CloudSeer和PCA在采用OpenStatck Ⅱ数据集时的性能对比。从图中可以看出,本发明的系统在多个数据集中均能保持高准确率和高召回率。
本发明能够为复杂的云系统提供高速、精确的故障诊断和定位。本发明首先将日志按照产生的组件进行划分,对于每个组件的日志分别提取日志的统计特征,训练差异性的模型进行故障诊断。在模型训练中,本发明使用深度学习(LSTM)方法,学习统计特征的时间关联性,并使用BP神经网络模型进行动态的故障判定。为解决训练数据集覆盖不全面的问题,本发明设计实现了线上模型更新方法以保证模型更新时的诊断吞吐率。
应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。
Claims (10)
1.一种云系统故障诊断方法,包括步骤:
步骤1,获取所述云系统当前时间片的日志数据;
步骤2,获取每个组件的日志的统计特征数据;
步骤3,基于所述组件的日志的统计特征数据利用云系统故障诊断模型进行进行当前时间片的故障检测,其中所述云系统故障诊断模型包括LSTM神经网络,其通过将历史日志按照组件和时间片划分成多个日志部分,分别获取每个组件在每个时间片的所述统计特征数据,以及利用所述统计特征数据对LSTM神经网络进行训练获得。
2.根据权利要求1所述的方法,所述步骤3包括:比较所述统计特征的实际值与所述LSTM神经网络计算的统计特征的预测值,进行故障检测。
3.根据权利要求1所述的方法,所述统计特征包括:频率、周期性、突发性、日志类型、变量数量。
4.根据权利要求1-3之一所述的方法,所述云系统故障诊断模型还包括BP神经网络,对所述BP神经网络的训练包括:
步骤3-1,根据所述LSTM神经网络模型,获得时间片的各特征的预测值;
步骤3-2,计算所述时间片的各特征的预测值与实际值的均方误差;
步骤3-3,将所述均方误差值作为输入,对BP神经网络模型进行训练。
5.根据权利要求1-3之一所述的方法,所述时间片按照一个固定时间间隔划分。
6.根据权利要求1-3之一所述的方法,所述LSTM神经网络的层数为2,每层单元数为3。
7.根据权利要求4所述的训练方法,所述BP神经网络模型为2层。
8.一种云系统故障诊断系统,包括:故障诊断模块和在线更新模块;所述故障诊断模块采用根据权利要求1所述的方法进行云系统故障诊断,所述在线更新模块包括控制器以及所述故障诊断模块的副本,所述控制器用于控制所述故障诊断模块和所述故障诊断模块的副本在更新模型时的工作状态。
9.一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现根据权利要求1至7中任一项所述方法的步骤。
10.一种计算机设备,包括存储器和处理器,在所述存储器上存储有能够在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010529320.1A CN111769974B (zh) | 2020-06-11 | 2020-06-11 | 一种云系统故障诊断方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010529320.1A CN111769974B (zh) | 2020-06-11 | 2020-06-11 | 一种云系统故障诊断方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111769974A true CN111769974A (zh) | 2020-10-13 |
CN111769974B CN111769974B (zh) | 2021-10-15 |
Family
ID=72720811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010529320.1A Active CN111769974B (zh) | 2020-06-11 | 2020-06-11 | 一种云系统故障诊断方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111769974B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112395167A (zh) * | 2020-11-27 | 2021-02-23 | 新华三技术有限公司 | 一种作业故障预测方法、装置及电子设备 |
CN115617953A (zh) * | 2022-11-15 | 2023-01-17 | 成都九洲电子信息系统股份有限公司 | 一种网络业务链路故障智能诊断方法及系统 |
CN116755910A (zh) * | 2023-08-16 | 2023-09-15 | 中移(苏州)软件技术有限公司 | 基于冷启动的宿主机高可用预测方法、装置和电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108427720A (zh) * | 2018-02-08 | 2018-08-21 | 中国科学院计算技术研究所 | 系统日志分类方法 |
CN108536123A (zh) * | 2018-03-26 | 2018-09-14 | 北京交通大学 | 长短时记忆网络结合神经网络的列控车载设备的故障诊断方法 |
CN109343990A (zh) * | 2018-09-25 | 2019-02-15 | 江苏润和软件股份有限公司 | 一种基于深度学习的云计算系统异常检测方法 |
US20190129829A1 (en) * | 2017-11-02 | 2019-05-02 | International Business Machines Corporation | Log-based diagnosis for declarative-deployed applications |
CN109861844A (zh) * | 2018-12-07 | 2019-06-07 | 中国人民大学 | 一种基于日志的云服务问题细粒度智能溯源方法 |
CN110489317A (zh) * | 2019-08-14 | 2019-11-22 | 中国科学院计算技术研究所 | 基于工作流的云系统任务运行故障诊断方法与系统 |
CN110750455A (zh) * | 2019-10-18 | 2020-02-04 | 北京大学 | 基于系统日志分析的智能在线自更新故障诊断方法和系统 |
-
2020
- 2020-06-11 CN CN202010529320.1A patent/CN111769974B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190129829A1 (en) * | 2017-11-02 | 2019-05-02 | International Business Machines Corporation | Log-based diagnosis for declarative-deployed applications |
CN108427720A (zh) * | 2018-02-08 | 2018-08-21 | 中国科学院计算技术研究所 | 系统日志分类方法 |
CN108536123A (zh) * | 2018-03-26 | 2018-09-14 | 北京交通大学 | 长短时记忆网络结合神经网络的列控车载设备的故障诊断方法 |
CN109343990A (zh) * | 2018-09-25 | 2019-02-15 | 江苏润和软件股份有限公司 | 一种基于深度学习的云计算系统异常检测方法 |
CN109861844A (zh) * | 2018-12-07 | 2019-06-07 | 中国人民大学 | 一种基于日志的云服务问题细粒度智能溯源方法 |
CN110489317A (zh) * | 2019-08-14 | 2019-11-22 | 中国科学院计算技术研究所 | 基于工作流的云系统任务运行故障诊断方法与系统 |
CN110750455A (zh) * | 2019-10-18 | 2020-02-04 | 北京大学 | 基于系统日志分析的智能在线自更新故障诊断方法和系统 |
Non-Patent Citations (4)
Title |
---|
SASHO NEDELKOSKI,JORGE CARDOSO,ODEJ KAO: "Anomaly Detection from System Tracing Data Using Multimodal Deep Learning", 《2019 IEEE 12TH INTERNATIONAL CONFERENCE ON CLOUD COMPUTING (CLOUD)》 * |
武佳琪,李珂,檀亚宁: "基于LSTM-BP神经网络的道路拥堵时间智能预测", 《数字技术与应用》 * |
田斐,吴恒,张文博: "基于日志分析的虚拟化环境故障定位系统", 《计算机系统应用》 * |
章永来,周耀鉴: "聚类算法综述", 《计算机应用》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112395167A (zh) * | 2020-11-27 | 2021-02-23 | 新华三技术有限公司 | 一种作业故障预测方法、装置及电子设备 |
CN115617953A (zh) * | 2022-11-15 | 2023-01-17 | 成都九洲电子信息系统股份有限公司 | 一种网络业务链路故障智能诊断方法及系统 |
CN116755910A (zh) * | 2023-08-16 | 2023-09-15 | 中移(苏州)软件技术有限公司 | 基于冷启动的宿主机高可用预测方法、装置和电子设备 |
CN116755910B (zh) * | 2023-08-16 | 2023-11-03 | 中移(苏州)软件技术有限公司 | 基于冷启动的宿主机高可用预测方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111769974B (zh) | 2021-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gao et al. | Task failure prediction in cloud data centers using deep learning | |
CN111769974B (zh) | 一种云系统故障诊断方法 | |
Tuncer et al. | Online diagnosis of performance variation in HPC systems using machine learning | |
US10296443B2 (en) | Automatically predicting faults that caused software failures using a Markov logic network | |
Zou et al. | Uilog: Improving log-based fault diagnosis by log analysis | |
Lan et al. | Toward automated anomaly identification in large-scale systems | |
Fu | Performance metric selection for autonomic anomaly detection on cloud computing systems | |
US7590513B2 (en) | Automated modeling and tracking of transaction flow dynamics for fault detection in complex systems | |
Lou et al. | Mining dependency in distributed systems through unstructured logs analysis | |
Lou et al. | Software analytics for incident management of online services: An experience report | |
Chen et al. | CauseInfer: Automated end-to-end performance diagnosis with hierarchical causality graph in cloud environment | |
EP3323046A1 (en) | Apparatus and method of leveraging machine learning principals for root cause analysis and remediation in computer environments | |
US20120054554A1 (en) | Problem isolation in a virtual environment | |
US20140372347A1 (en) | Methods and systems for identifying action for responding to anomaly in cloud computing system | |
US8019584B2 (en) | Method and system for modeling likely invariants in distributed systems | |
CN109144813B (zh) | 一种云计算系统服务器节点故障监控系统及方法 | |
Kavulya et al. | Failure diagnosis of complex systems | |
US11037033B2 (en) | Multivariate clustering-based anomaly detection | |
Bogatinovski et al. | Self-supervised anomaly detection from distributed traces | |
Gaikwad et al. | Anomaly detection for scientific workflow applications on networked clouds | |
Duan et al. | Guided problem diagnosis through active learning | |
WO2021109874A1 (zh) | 拓扑图生成方法、异常检测方法、装置、设备及存储介质 | |
US20230362071A1 (en) | Impact predictions based on incident-related data | |
Wu et al. | Causal inference techniques for microservice performance diagnosis: Evaluation and guiding recommendations | |
CN114201326A (zh) | 一种基于属性关系图的微服务异常诊断方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |