CN108427720B - 系统日志分类方法 - Google Patents
系统日志分类方法 Download PDFInfo
- Publication number
- CN108427720B CN108427720B CN201810127088.1A CN201810127088A CN108427720B CN 108427720 B CN108427720 B CN 108427720B CN 201810127088 A CN201810127088 A CN 201810127088A CN 108427720 B CN108427720 B CN 108427720B
- Authority
- CN
- China
- Prior art keywords
- system log
- category
- feature vector
- data set
- log
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 239000013598 vector Substances 0.000 claims abstract description 95
- 238000012549 training Methods 0.000 claims abstract description 47
- 238000013145 classification model Methods 0.000 claims abstract description 42
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 25
- 238000012545 processing Methods 0.000 claims description 6
- 238000001914 filtration Methods 0.000 claims description 5
- 238000010606 normalization Methods 0.000 claims description 5
- 238000011176 pooling Methods 0.000 description 18
- 238000012360 testing method Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 230000006854 communication Effects 0.000 description 8
- 210000002569 neuron Anatomy 0.000 description 8
- 210000002364 input neuron Anatomy 0.000 description 7
- 210000004205 output neuron Anatomy 0.000 description 7
- 230000004913 activation Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000000605 extraction Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000009897 systematic effect Effects 0.000 description 4
- 238000012550 audit Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007621 cluster analysis Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- 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/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供从系统日志中提取特征向量的方法,构建系统日志分类模型的方法以及系统日志分类方法。提取特征向量的方法包括:对每个类别,计算该类别关键字与系统日志的语义相似度,选取一些相似度作为系统日志在该类别下的特征向量;组合系统日志在所有类别下的特征向量以得到该系统日志的特征向量。构建模型的方法利用上述方法来提取训练数据集的特征向量,并将其作为卷积神经网络的输入以训练模型。系统日志分类方法利用上述方法来提取系统日志的特征向量,并通过模型得到分类结果。本发明可以实现高准确率和高时效的系统日志分类。
Description
技术领域
本发明涉及日志处理和分析领域,尤其涉及系统日志分类技术。
背景技术
系统日志用于记录计算机系统中硬件、软件及系统问题,同时监视系统中发生的事件。广义的系统日志包括系统RAS日志和系统安全审计日志等,管理者可以通过查看系统日志随时掌握系统状况,检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。
当系统日志的数量日渐增多时,就很有必要将不同类别的系统日志分门别类进行整理。通过对系统日志进行分类,有助于系统管理员不断观察系统的健康状况,定位根本故障,从而进行任务调度和性能优化等。现有的系统日志分类方法包括基于密度的方法、基于聚类分析的方法、基于概率的方法以及基于模型的方法等。然而,这些分类方法的准确率和时间效率普遍不高,尤其是在对大数据集的系统日志进行分类时,这些方法在分类准确率和时间效率上都有明显地下降。
发明内容
因此,为克服上述现有技术的缺陷,本发明引入卷积神经网络(ConvolutionalNeural Network,CNN)技术来构建系统日志分类模型,以达到提升分类的准确率和时间效率的目的。
本发明的目的是通过以下技术方案实现的:
在一个方面,提供一种从系统日志中提取特征向量的方法,包括:步骤1)针对预先设定的每个类别,计算该类别下的关键字与所述系统日志的语义相似度,并且按预定规则选取预定数量的语义相似度作为所述系统日志在该类别下的特征向量;步骤2)组合所述系统日志在所有类别下的特征向量,得到所述系统日志的特征向量。
上述方法中,按预定规则选取预定数量的语义相似度作为所述系统日志在该类别下的特征向量包括:按从大到小的顺序选择预定数量的语义相似度,将所选择的语义相似度组合为所述系统日志在该类别下的特征向量;其中,所述预定数量小于或等于每个类别下的关键字的数量。
上述方法中,步骤2)可以包括:将所述系统日志在每个类别下的特征向量作为行向量或列向量,组合所述系统日志在所有类别下的特征向量,得到所述系统日志的二维的特征向量。
上述方法中,可以通过计算所述系统日志中的msg信息与关键字的编辑距离,来获得所述系统日志与所述关键字的语义相似度。
上述方法还可以包括:在步骤1)之前过滤所述系统日志中的msg信息中的噪声。上述方法还可以包括:对所述系统日志的特征向量做归一化处理。
在另一个方面,提供一种构建系统日志分类模型的方法,包括:步骤a)收集系统日志,从所收集的系统日志中获得训练数据集;步骤b)根据上述从系统日志中提取特征向量的方法对所述训练数据集中的每个系统日志提取特征向量,得到所述训练数据集中的每个系统日志的特征向量;步骤c)将所述训练数据集中的每个系统日志的特征向量作为卷积神经网络的输入,经训练得到系统日志分类模型。
上述方法还可以包括:在步骤b)之前根据所述训练数据集预先设定系统日志的类别,并且获得每个类别下的关键字。
在又一个方面,提供一种系统日志分类方法,包括:步骤i)根据上述构建系统日志分类模型的方法来构建系统日志分类模型;步骤ii)根据上述从系统日志中提取特征向量的方法对待分类的系统日志提取特征向量;步骤iii)将所提取的特征向量输入所述系统日志分类模型,由所述系统日志分类模型输出分类结果。
与现有技术相比,本发明的优点在于:
1.实现了高准确率和高时效的系统日志分类,尤其适用于大数据集的系统日志的分类;
2.通过数值化的特征向量来表示系统日志的语义,有助于有效地学习系统中的事件,同时也可以保护系统操作中的敏感信息;
3.方便管理员有效定位或预测系统组件或服务的失效事件类别。
另外,本领域技术人员应理解,本文提供的特征向量提取方法、分类模型构建方法以及分类方法不仅适用于系统日志,其同样适用于格式与系统日志类似的数据。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1是根据本发明一个实施例的构建系统日志分类模型的方法流程图;
图2是根据本发明一个实施例的从系统日志中提取特征向量的方法流程图;
图3是根据本发明另一个实施例的从系统日志中提取特征向量的方法流程图;
图4是对一个系统日志实例进行特征向量提取的方法示意图;
图5是根据本发明一个实施例的系统日志分类方法的流程图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
针对当前系统日志分类方法中存在的低时效和低准确率的问题,本发明引入卷积神经网络技术来构建系统日志分类模型,并且利用该模型进行系统日志的分类。采用卷积神经网络技术的原因在于其适合处理复杂的高维数据(即适用于大数据场景),下面将首先描述卷积神经网络的基本原理及训练过程。
卷积神经网络是由一个输入层、一个输出层以及多个隐藏层组成的,卷积神经网络的隐藏层主要包括卷积层(Convolutional layer)、池化层(Pooling layer)和完全连接层(Full Connected layer)。其中,卷积层利用一个或多个滤波器(或称卷积核)进行特征提取,例如提取边缘、线条和角等层级,或者提取一些更为复杂的特征;池化层通过降采样的方式,减小特征表示的空间大小;完全连接层通常在卷积神经网络尾部,起衔接的作用。卷积神经网络中可以有多个卷积层、池化层和完全连接层,另外,也可以将激活函数引入卷积神经网络以加入非线性因素。
卷积神经网络的训练包括前向传播和反向传播。
1.在前向传播阶段,从训练样本集中抽取样本作为输入;在卷积层利用滤波器进行特征提取(输入层中的多个神经元连接至卷积层中的一个神经元),得到特征图;池化层通常紧随卷积层之后,用于简化卷积层的输出,其中经常使用最大池化(Max-pooling)方法,该方法简单地将前一层特定区域内的神经元取最大值(除了Max-pooling方法,池化层也可以使用L2-pooling等方法);完全连接层将前面提取的特征综合起来,输出样本的分类结果,例如,完全连接层的每个神经元与前面Max-pooling层的每个神经元连接。应注意,这些隐藏层可以重复使用多次。
为避免模型的表达能力不够,可以在卷积神经网络中使用激活函数,以加入非线性因素。其中,非线性激活函数包括但不限于ReLU、Sigmoid、Tanh等。另外,还可以加入丢包层(Dropout layer)以解决卷积神经网络的过拟合问题。
2.在反向传播阶段,计算实际输出和理想输出之间的差,按极小化误差的方法反向传播,调整权重参数,从而完成训练(得到权重、偏置等参数)。
在本发明的一个方面,提供一种构建系统日志分类模型的方法。
图1示出根据本发明一个实施例的构建系统日志分类模型的方法步骤,包括:步骤11、收集系统日志,从中获取训练数据集;步骤12、划分系统日志的类别,并且针对每一类别给出相应的关键字;步骤13、利用所划分的类别及其对应的关键字,对训练数据集中的每个系统日志提取特征向量,得到训练数据集中每个系统日志的特征向量;步骤14、将训练数据集中每个系统日志的特征向量作为卷积神经网络的输入,训练得到系统日志分类模型。
在步骤11中,从计算机系统中收集系统日志,例如,从集群中的所有目标节点收集系统日志,随后将收集到的系统日志存储到系统日志数据库中,该系统日志数据库可以设置在集群的分析节点上,接着,可以从收集到的系统日志中获得训练数据集。在实际操作中,可以利用现有的收集工具来进行系统日志的收集,这种工具包括但不限于:Linkedin的Kafka、开源工具Rsyslog(其广泛应用于Linux系统)、Facebook的Scribe、Cloudera的Flume等。所收集到的系统日志的格式如表1所示,系统日志通常包括域和相应描述这两部分,其中msg域及其描述(后文称为msg信息)对该日志对应的事件进行了概括总结,其语义可用于表示系统日志是否与数据库故障相关,与网络通信故障相关,以及是否与输入输出故障相关等。可见,系统日志中的msg信息可以用于区分系统日志的类别。
表1
域 | 描述 |
ID | 日志中事件记录的序列号(代表一个事件) |
timeStamp | 事件的发生时间 |
node | 该事件发生在哪个节点 |
facility | 设备标号 |
severity | 事件的严重性等级标号 |
msg | 事件的简略总结 |
在步骤12中,人工标记系统日志的类别,并且针对每一类别给出相应的关键字,构建类别字典库。其中,参照表1中系统日志的格式和内容,基于训练数据集中系统日志的msg信息来人工划分类别,即,将语义相似的多条msg信息划分为同一类别。例如,可以将msg信息“WARNING:Unable to determine session”划分到类别“Communication”(即通信类别),同时将其他与访问控制故障有关的msg信息也划分到该类别“Communication”。在划分好系统日志的类别之后,可针对每个类别给出该类别下的关键字。在实际操作中,可以针对每个类别,对属于该类别的多个msg信息(例如来自训练数据集)进行关键字抽取,随后,使用所有类别及每个类别下的关键字构建类别字典库。抽取关键字的方法包括但不限于:TF-IDF、Topic-model、Textrank等。应理解,这里也可以使用现有的类别字典库。
举例来说,可以将系统日志的类别标记为m种,表2示出了所有m个类别(m=13,其标签分别为0-12)、每个类别所对应的msg信息(在表2中,对于每个类别仅示例性地列举一条msg信息,但应理解,每个类别可对应多条msg信息)以及相应的描述。针对表2列举的系统日志类别,表3给出了由这些类别和对应关键字构成的类别字典库,其中,每个类别可以包括z个关键字,如10个。
表2
msg | 类别 | 描述 | 标签 |
Could not find keytab file:/etc/libvirt/krb5 | Filesystem | 文件系统或读写故障 | 0 |
No DHCPOFFERS received | Network | 网络通信相关故障 | 1 |
Wake up new task 0xd3/0x120 | Service | 网页或者web引擎故障 | 2 |
Error dropping database(cant rmdirtestdb) | Database | 数据库相关故障 | 3 |
WARNING:Unable to determinesession | Communication | 访问控制相关故障 | 4 |
Read-error on swap-device(253:1.16968112) | Memory | 内存相关故障 | 5 |
No CSI structure available | Driver | 驱动相关故障 | 6 |
Respawning too fast:disabled for5minutes | System | 系统相关故障 | 7 |
Application load error | Application | 与应用相关的故障 | 8 |
Buffer I/O error on device dev sda | I/O | 输入输出错误 | 9 |
Security real capable no audit | Security | 安全相关故障 | 10 |
FAILED SMART self-check.Back upnow | Disk | 与SCSI磁盘或块相关故障 | 11 |
Selected processor does notsupport’strexb’ | Processor | 处理器CPU故障 | 12 |
表3
类别 | 关键字 |
Filesystem | File,filesystem,dir,Fido_file... |
Network | Remote,network,packet,address... |
Service | Service,rsyslod,invok... |
Database | Database,db,statestored... |
Communication | Communiction,rpc... |
Memory | Memory,mem,pagecsche,cache,shared... |
Driver | Driver... |
System | Kernel,system,lib... |
Application | Application,app,client,Loop... |
I/O | Input,output,i/o,interface... |
Security | Uditd,audit,unsafeb... |
Disk | Device,disk,/dev/sda,/dev/sdc,sectors,smart... |
Processor | Processor,cpu,cpuset... |
在步骤13中,利用所划分的类别及其对应的关键字,对训练数据集中的每个系统日志进行预处理,即提取其特征向量,以生成适用于输入卷积神经网络进行训练的数值化特征向量(后文简称为特征向量)。对系统日志进行预处理的原因在于:原始的系统日志(具体来说,系统日志中的msg信息)无法作为数值化计算的卷积神经网络的输入。
为解决这一问题,本发明提供一种从系统日志中提取特征向量的方法。图2示出了根据本发明一个实施例的从系统日志中提取特征向量的方法步骤,包括:步骤131、对于划分的每个类别(即在步骤12中预先设定好的每个类别),计算该类别下的所有关键字与系统日志的语义相似度,并且按一定的规则选取其中的一些语义相似度,以得到系统日志在该类别下的特征向量;步骤132、组合系统日志在所有类别下的特征向量,得到该系统日志的特征向量。
在步骤131中,首先利用系统日志中的msg信息来计算该系统日志与每个类别下所有关键字的语义相似度。例如,参照表3所示的类别字典库,计算msg信息与每个类别中的z个关键字的语义相似度。计算语义相似度有多种方法,包括但不限于:欧几里得距离(Euclidean Distance)、余弦相似度(Cosine Similarity)和皮尔逊相关系数(PearsonCorrelation Coefficient)等。对于系统日志而言,由于其包含的单词量较大,采用上述方法可能需要占用大量空间并且消耗大量计算资源,因此,本发明优选利用编辑距离(即Levenshtein距离)来测量语义相似度,计算公式如下:
其中,MSGi表示训练数据集中第i个系统日志中的msg信息,表示在类别字母表中类别Ck中的第j个关键字(j为整数且0≤j≤z-1,z表示每个类别下的关键字数量),k表示第k个类别(k为整数且0≤k≤m-1,m表示类别的数量),表示MSGi和之间的语义相似度,表示MSGi和之间的Levenshtein距离。
其次,针对每个类别,从系统日志与该类别下所有关键字的语义相似度中按一定规则选择一定数量的语义相似度并排列,从而得到系统日志与该类别对应的特征向量。具体而言,对于第k个类别(k为整数且0≤k≤m-1,m为类别的数量)来说,系统日志与该类别下的关键字进行语义相似度计算后会产生z个语义相似度(z表示每个类别对应的关键字数量),由于z的值可能较大,为避免生成的特征向量的维度过大进而导致后面的训练时间过长,本发明从z个语义相似度中按照预定方式选取一部分语义相似度并以预定顺序来组合这些语义相似度。例如,按语义相似度的大小进行选取并排序。优选地,本发明从计算得到的z个语义相似度中选择前n个最大的语义相似度(n为整数且n≤z)并且按从大到小的顺序排列,得到系统日志在该类别下的特征向量,表示如下:
其中,表示系统日志在第k个类别下的特征向量,表示该系统日志与第k个类别下的关键字的最大语义相似度,表示该系统日志与第k个类别下的关键字的第n大的语义相似度,其中k为整数且0≤k≤m-1,n为整数且n≤z。
在步骤132中,将系统日志在所有类别下的特征向量作为行向量或列向量,按一定的顺序进行组合,从而得到该系统日志的特征向量,该特征向量是二维的特征向量。例如,可以根据表2中类别的标签(即类别的编号)进行组合,得到的系统日志的特征向量表示如下:
其中,m表示类别的数量,n表示系统日志在每个类别下的特征向量的维度。这样的特征向量不仅能够保留原始系统日志中的某些文本结构,而且保留了各种类别之间的差异性,有益于构建系统日志分类模型;另外,通过数值化的特征向量来表示系统日志,既有助于有效学习系统日志,又可以保护系统操作中的敏感信息。
在另一个实施例中,在生成系统日志的特征向量后,为便于后续计算,还可以对生成的数值化特征向量进行归一化处理,如图3所示。例如,利用min-max归一化方法将特征向量中的每个元素归一化到0~1之间。
进一步地,在计算语义相似度(参见步骤131)之前,还可以对训练数据集执行冗余过滤操作,从而降低训练数据集的噪声,如图3所示。例如,过滤msg信息中的停用词以及标点符号等无用的信息,关于停用词可以参考停用词库http://www.ranks.nl/stopwords/。执行冗余过滤操作的意义在于:由于训练数据集中的无关信息或冗余信息通常会给模型训练中的特征提取任务带来很大的噪声,导致分类性能下降,因此去除这些噪声能够有助于提高分类的准确率。
为便于理解,下面依据图3所示的方法对系统日志提取特征向量,该系统日志包括msg信息“smartd[3044]:Device:/dev/sdc,FAILED SMART...”。如图4所示,首先,对msg信息执行冗余过滤操作得到MSGi=smartd Device/dev/sdc FAILED SMART;接着,利用公式(1)计算该msg信息与表3所示的类别字典库中每个类别下所有关键字的语义相似度,从中选取前10个语义相似度并按从大到小的顺序组合,得到随后,组合得到系统日志的特征向量最后,对生成的特征向量进行归一化处理。
在步骤14中,将训练数据集中每个系统日志的特征向量作为输入,输入到卷积神经网络中进行离线训练,从而构建出系统日志分类模型。如上文所述,可以采用包括多个卷积层、池化层、完全连接层等的卷积神经网络。
为了训练出较为精确的系统日志分类模型,发明人进行了一系列的研究来设置卷积神经网络的超参数,最终决定采用具有5个卷积层(卷积层1-5)、3个完全连接层(完全连接层1-3)、64个卷积滤波器、学习率=0.0001以及丢包=0.5的卷积神经网络。
下面以10×13的二维特征向量作为输入,描述训练的前向传播阶段。其中,在卷积层和池化层的操作完成后,输出尺寸的公式表示如下:
输出尺寸=(输入尺寸-滤波器尺寸+2×填充)/步幅+1(4)
在卷积层1,采用32个滤波器,该滤波器的尺寸为3×4,卷积步幅为2并且左右填充各为2,代入公式(4)得到:(10-3+2×2)/2+1=6(卷积向下取整),(13-4+2×2)/2+1=7,因此经过卷积层1得到32个6×7的矩阵;然后,采用一个池化大小为2×2的滤波器,进行最大池化操作,这里的步幅为2,左右填充各为2,从卷积层1得到的特征图中提取主要特征,代入公式(4)得到(6-2+2×2)/2+1=5,(7-2+2×2)/2+1=6(池化向上取整),因此得到32个5×6的矩阵。
在卷积层2(其中,滤波器尺寸为3×4,数目为64,步幅为2,左右填充为2),得到64个4×4的矩阵;然后进行最大池化操作(步幅为2,左右填充为2),得到64个4×4的矩阵。
在卷积层3(其中,滤波器尺寸为3×4,数目为64,步幅为2,左右填充为2),得到64个3×3的矩阵。
在卷积层4(其中,滤波器尺寸为3×4,数目为32,步幅为2,左右填充为2),得到32个3×2的矩阵。
在卷积层5(其中,滤波器尺寸为3×4,数目为64,步幅为2,左右填充为2),得到64个3×2的矩阵;然后进行最大池化(步幅为2,左右填充为2),得到64个4×3的矩阵(即4×3×64=768)。
在全连接层1,首先通过点乘768×1024的参数矩阵来转换,其次利用ReLU函数激活,然后再根据丢包=0.5丢弃一半全连接层神经元数目,即1024丢包后剩余512。
接着,通过点乘1024×512参数矩阵进入全连接层2,再利用ReLU激活,然后再次丢包丢弃一半全连接层神经元数目,512剩余256。
最后点乘512×13(表示13个类别)进入全连接层3,得到系统日志的分类结果。
经过验证,重复三次全连接层的精度最高。
以上属于前向传播阶段的输出结果,而每一层运算对应的反向传播输出结果如下(其中,mean表示均值,stddev表示方差):
权重1(32个[3,4]正态分布矩阵,mean=0.0,stddev=1.0),输入神经元数目1,输出神经元数目32;
权重2(64个[3,4]正态分布矩阵,mean=0.0,stddev=1.0),输入神经元数目32,输出神经元数目64;
权重3(64个[3,4]正态分布矩阵,mean=0.0,stddev=1.0),输入神经元数目64,输出神经元数目64;
权重4(32个[3,4]正态分布矩阵,mean=0.0,stddev=1.0),输入神经元数目64,输出神经元数目32;
权重5(64个[3,4]正态分布矩阵,mean=0.0,stddev=1.0),输入神经元数目32,输出神经元数目64;
权重6([3×3*64,1024]正态分布矩阵,mean=0.0,stddev=1.0),输入神经元数目576,输出神经元数目1024;
权重7([1024,512]正态分布矩阵,mean=0.0,stddev=1.0),输入神经元数目1024,输出神经元数目512;
权重8([512,13]正态分布矩阵,mean=0.0,stddev=1.0),输入神经元数目512,输出分类数目13(表示13个事件类别)。同时产生偏置如下:
偏置1(正态分布向量,mean=0.0,stddev=1.0),长度32;
偏置2(正态分布向量,mean=0.0,stddev=1.0),长度64;
偏置3(正态分布向量,mean=0.0,stddev=1.0),长度64;
偏置4(正态分布向量,mean=0.0,stddev=1.0),长度32;
偏置5(正态分布向量,mean=0.0,stddev=1.0),长度64;
偏置6(正态分布向量,mean=0.0,stddev=1.0),长度1024;
偏置7(正态分布向量,mean=0.0,stddev=1.0),长度512;
偏置8(正态分布向量,mean=0.0,stddev=1.0),长度13(表示13个事件类别)。
综上,经过前向传播(即,5次卷积操作和3次全连接操作,以及池化、ReLU激活、丢包等操作)以及反向传播,最终得到系统日志分类模型。
在上文描述的构建系统日志分类模型的方法中,利用训练数据集来划分类别并且从训练数据集中抽取每个类别对应的关键字。而在其他实施例中,可以在构建系统日志分类模型之前利用先前收集好的系统日志集合来划分类别以及抽取关键字。
在本发明的另一方面,还提供一种日志分类方法。
根据本发明的一个实施例,该日志分类方法可以包括:离线构建系统日志分类模型;对待分类的系统日志提取特征向量,然后将该特征向量输入构建好的系统日志分类模型,由该模型输出该系统日志的类别。
其中,可以通过上文描述的方法来提取待分类系统日志的特征向量以及构建系统日志分类模型。在构建系统日志分类模型的过程中,首先(例如从集群的所有节点)收集系统日志,从中获取训练数据集;接着,划分系统日志的类别并且针对每一类别给出相应的关键字;随后对训练数据集中的每个系统日志提取特征向量,并且将特征向量作为卷积神经网络的输入,经过训练生成系统日志分类模型。而在另一种情况下,可以在收集系统日志之后,将所收集的系统日志分成训练数据集和测试数据集两个部分。其中,训练数据集用于离线构建系统日志分类模型,而测试数据集用于在线测试该系统日志分类模型以评估其精度。
有鉴于此,在另一个实施例中,系统日志分类方法还包括在线测试构建好的系统日志分类模型,图5示出了该系统日志分类方法的详细流程。其中,在离线训练阶段,收集系统日志并且从所收集的系统日志中得到训练数据集和测试数据集(这两个集合没有交集),并且利用训练数据集构建出系统日志分类模型;在构建好系统日志分类模型之后,可以利用该模型对待分类的系统日志进行分类,也可以利用测试数据集在线测试该分类模型。在线测试分类模型可以包括:对测试数据集中的每个系统日志提取特征向量,将所提取的特征向量输入系统日志分类模型,以得到分类结果。根据测试数据集的分类结果以及实际的类别可以计算该系统日志分类模型的精度。
为验证本发明提供的方法在系统日志分类方面的性能,发明人使用Rsyslog工具从现有的分布式集群系统中收集了总共100,000个系统日志以进行实验,收集的时间为2016年5月至2017年5月。其中,将80%的原始数据作为训练数据集,其余的20%作为测试数据集。实验环境配置如下:
CPU:Intel Xeon E5-2630,2.4GHz;
GPU:Nvidia Tesla M40;
内存:64GB;
操作系统:Ubuntu 16.04。
为了公平体现本发明的性能,通过以下指标对通过本发明得到的系统日志分类模型进行有效评估:精确度(Precision)、召回率(Recall)以及F1值(F1_Score),公式(5)-(7)分别示出其计算方式:
其中,TP表示正确预测正例的个数,FP表示错误预测正例的个数,并且FN表示错误预测负例的个数。基于上述指标,针对13个系统日志类别的分类结果的有效评估值如表4所示,其中,Support表示该类别的记录总数。
表4
类别 | Precision | Recall | F1_score | Support |
Filesystem | 0.23 | 0.28 | 0.25 | 18 |
Network | 0.84 | 0.91 | 0.87 | 911 |
Service | 1.0 | 1.0 | 1.0 | 213 |
Database | 0.0 | 0.0 | 0.0 | 2 |
Communication | 0.98 | 0.98 | 0.98 | 2891 |
Memory | 0.89 | 0.86 | 0.87 | 348 |
Driver | 1.0 | 1.0 | 1.0 | 14,495 |
System | 0.91 | 0.77 | 0.84 | 535 |
Application | 1.0 | 1.0 | 1.0 | 132 |
I/O | 1.0 | 0.50 | 0.67 | 4 |
Security | 1.0 | 1.0 | 1.0 | 8 |
Disk | 0.88 | 0.96 | 0.92 | 433 |
Processor | 0.0 | 0.0 | 0.0 | 10 |
Avg/Total | 0.98 | 0.98 | 0.98 | 20,000 |
本发明与现有技术在精确度、召回率和F1值上的性能对比如表5所示:
表5
算法 | Precision | Recall | F1-score |
AdaBoost | 64.59 | 73.54 | 68.25 |
Decision Tree | 96.92 | 96.90 | 96.62 |
MLP | 94.99 | 94.87 | 94.43 |
Naive Bayes | 87.48 | 89.07 | 87.60 |
Random Forest | 95.59 | 94.37 | 94.30 |
SVM-Linear | 94.79 | 94.25 | 93.18 |
SVM-RBF | 86.15 | 89.47 | 87.45 |
SVM-Poly | 56.92 | 73.70 | 63.47 |
本发明 | 98.14 | 98.14 | 98.11 |
从表4和表5可以看出,本发明提供的方法的有效评估值最高,可见性能最好,因此能更为有效地提升系统日志分类的准确率。
另外,本发明利用卷积神经网络来训练得到系统日志分类模型,而卷积神经网络可实现自动降维,其在分类大量数据时也较为明显地缩短了分类所占用的时间,因此,本发明与现有技术相比还提高了时间效率。
应理解,尽管一些示例实施例被描述为处理器或者方法被描绘为流程图。虽然流程图将操作表述为顺序处理,但是许多操作可以并行、同时或同步地执行。此外,操作的顺序可以重新排列。处理可以在它们的操作完成时终止,但是也可以具有并未包括在图中的另外的步骤。该处理可以对应于方法、功能、过程、子例程、子程序等。
上述方法可以由硬件、软件、固件、中间件、伪代码、硬件描述语言或者它们的任意组合来实施。当以软件、固件、中间件或伪代码实施时,用来执行任务的程序代码或代码分段可以被存储在机器或计算机可读介质中,诸如存储介质,诸如非瞬态存储介质,处理器可以执行该任务。
还应注意到,软件实施的示例实施例的方面通常在一些形式的程序存储介质上进行编码或者在一些类型的传输介质上实施。程序存储介质可以是任意的非瞬态存储介质,诸如磁性(例如,软盘或硬盘)或光学(例如,紧凑盘只读存储器或“CD ROM”),并且可以是只读的或随机访问的。类似地,传输介质可以是双绞线、同轴线缆、光纤,或者本领域已知的一些其它适当传输介质。示例实施例并不被任何给定实施方式的这些方面所限制。
虽然本发明已经通过优选实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所做出的各种改变以及变化。
Claims (9)
1.一种从系统日志中提取特征向量的方法,包括:
步骤1)针对预先设定的每个类别,计算该类别下的关键字与所述系统日志的语义相似度,并且按预定规则选取预定数量的多个语义相似度组合为所述系统日志在该类别下的特征向量;
步骤2)将所述系统日志在每个类别下的特征向量作为行向量或列向量,组合所述系统日志在所有类别下的特征向量,得到所述系统日志的二维的特征向量。
2.根据权利要求1所述的方法,在步骤1)中,按预定规则选取预定数量的多个语义相似度组合为所述系统日志在该类别下的特征向量包括:
按从大到小的顺序选择预定数量的语义相似度,将所选择的语义相似度组合为所述系统日志在该类别下的特征向量;
其中,所述预定数量小于或等于每个类别下的关键字的数量。
3.根据权利要求1或2所述的方法,其中,通过计算所述系统日志中的msg信息与关键字的编辑距离,来获得所述系统日志与所述关键字的语义相似度。
4.根据权利要求3所述的方法,在步骤1)之前,还包括:
过滤所述系统日志中的msg信息中的噪声。
5.根据权利要求1或2所述的方法,还包括:
对所述系统日志的特征向量做归一化处理。
6.一种构建系统日志分类模型的方法,包括:
步骤a)收集系统日志,从所收集的系统日志中获得训练数据集;
步骤b)根据权利要求1-5中任一项所述的方法对所述训练数据集中的每个系统日志提取特征向量,得到所述训练数据集中的每个系统日志的特征向量;
步骤c)将所述训练数据集中的每个系统日志的特征向量作为卷积神经网络的输入,经训练得到系统日志分类模型。
7.根据权利要求6所述的方法,其中,在步骤b)之前还包括:
根据所述训练数据集预先设定系统日志的类别,并且获得每个类别下的关键字。
8.一种系统日志分类方法,包括:
步骤i)根据权利要求6或7所述的方法,构建系统日志分类模型;
步骤ii)根据权利要求1-5中任一项所述的方法对待分类的系统日志提取特征向量;
步骤iii)将所提取的特征向量输入所述系统日志分类模型,由所述系统日志分类模型输出分类结果。
9.一种计算机设备,包括存储器和处理器,在所述存储器上存储有能够被所述处理器执行的指令,其特征在于,当所述指令被所述处理器执行时使得所述计算机设备实现如权利要求1-5中任一项所述的方法或者权利要求6或7所述的方法或者权利要求8所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810127088.1A CN108427720B (zh) | 2018-02-08 | 2018-02-08 | 系统日志分类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810127088.1A CN108427720B (zh) | 2018-02-08 | 2018-02-08 | 系统日志分类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108427720A CN108427720A (zh) | 2018-08-21 |
CN108427720B true CN108427720B (zh) | 2020-12-29 |
Family
ID=63156852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810127088.1A Active CN108427720B (zh) | 2018-02-08 | 2018-02-08 | 系统日志分类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108427720B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109558384B (zh) * | 2018-09-29 | 2023-07-18 | 中国平安人寿保险股份有限公司 | 日志分类方法、装置、电子设备和存储介质 |
CN109669837A (zh) * | 2018-10-31 | 2019-04-23 | 平安科技(深圳)有限公司 | 设备状态预警方法、系统、计算机装置及可读存储介质 |
CN109361546B (zh) * | 2018-11-05 | 2022-03-29 | 视联动力信息技术股份有限公司 | 一种基于视联网的程序预警方法和装置 |
CN109462599B (zh) * | 2018-12-13 | 2021-05-11 | 烽台科技(北京)有限公司 | 一种蜜罐管理系统 |
CN110048827B (zh) * | 2019-04-15 | 2021-05-14 | 电子科技大学 | 一种基于深度学习卷积神经网络的类模板攻击方法 |
CN110210512B (zh) * | 2019-04-19 | 2024-03-26 | 北京亿阳信通科技有限公司 | 一种自动化日志异常检测方法及系统 |
CN110516034A (zh) * | 2019-06-28 | 2019-11-29 | 中兴通讯股份有限公司 | 日志管理方法、装置、网络设备和可读存储介质 |
CN111552802A (zh) * | 2020-03-09 | 2020-08-18 | 北京达佳互联信息技术有限公司 | 文本分类模型训练方法和装置 |
CN113449099B (zh) * | 2020-03-25 | 2024-02-23 | 瑞典爱立信有限公司 | 文本分类方法和文本分类设备 |
CN113743096A (zh) * | 2020-05-27 | 2021-12-03 | 南京大学 | 一种基于自然语言处理的众包测试报告相似度检测的方法 |
CN111769974B (zh) * | 2020-06-11 | 2021-10-15 | 中国科学院计算技术研究所 | 一种云系统故障诊断方法 |
CN112269803B (zh) * | 2020-10-21 | 2024-04-30 | 中国商用飞机有限责任公司北京民用飞机技术研究中心 | 数据集填充方法及系统 |
CN112613309A (zh) * | 2020-12-24 | 2021-04-06 | 北京浪潮数据技术有限公司 | 一种日志归类分析方法、装置、设备及可读存储介质 |
CN112738092A (zh) * | 2020-12-29 | 2021-04-30 | 北京天融信网络安全技术有限公司 | 一种日志数据增强方法、分类检测方法及系统 |
CN112800016A (zh) * | 2020-12-31 | 2021-05-14 | 武汉思普崚技术有限公司 | 一种日志数据分类排序方法及装置 |
CN113176977A (zh) * | 2021-04-27 | 2021-07-27 | 南开大学 | 一种构建物联网工作流的交错日志分析方法 |
CN113515625A (zh) * | 2021-05-18 | 2021-10-19 | 中国工商银行股份有限公司 | 测试结果分类模型训练方法、分类方法及装置 |
CN113590556A (zh) * | 2021-07-30 | 2021-11-02 | 中国工商银行股份有限公司 | 一种基于数据库的日志处理方法、装置及设备 |
CN113887749A (zh) * | 2021-08-23 | 2022-01-04 | 国网江苏省电力有限公司信息通信分公司 | 基于云边协同的电力物联网多维度监控处置方法、设备及平台 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902752A (zh) * | 2012-09-20 | 2013-01-30 | 新浪网技术(中国)有限公司 | 一种日志监控方法及系统 |
CN103605702A (zh) * | 2013-11-08 | 2014-02-26 | 北京邮电大学 | 一种基于词相似度的网络文本分类方法 |
CN104199822A (zh) * | 2014-07-11 | 2014-12-10 | 五八同城信息技术有限公司 | 一种识别搜索对应的需求分类的方法和系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7260568B2 (en) * | 2004-04-15 | 2007-08-21 | Microsoft Corporation | Verifying relevance between keywords and web site contents |
CN104750844B (zh) * | 2015-04-09 | 2016-03-02 | 中南大学 | 基于tf-igm的文本特征向量生成方法和装置及文本分类方法和装置 |
CN106095996B (zh) * | 2016-06-22 | 2020-02-21 | 量子云未来(北京)信息科技有限公司 | 用于文本分类的方法 |
-
2018
- 2018-02-08 CN CN201810127088.1A patent/CN108427720B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902752A (zh) * | 2012-09-20 | 2013-01-30 | 新浪网技术(中国)有限公司 | 一种日志监控方法及系统 |
CN103605702A (zh) * | 2013-11-08 | 2014-02-26 | 北京邮电大学 | 一种基于词相似度的网络文本分类方法 |
CN104199822A (zh) * | 2014-07-11 | 2014-12-10 | 五八同城信息技术有限公司 | 一种识别搜索对应的需求分类的方法和系统 |
Non-Patent Citations (1)
Title |
---|
基于卷积神经网络的电力设备缺陷文本分类模型研究;刘梓权等;《电网技术》;20170725;第1-8页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108427720A (zh) | 2018-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108427720B (zh) | 系统日志分类方法 | |
CN111881983B (zh) | 基于分类模型的数据处理方法、装置、电子设备及介质 | |
CN105518656A (zh) | 用于多传感器数据融合的认知神经语言学行为辨识系统 | |
CN103761173A (zh) | 一种基于日志的计算机系统故障诊断方法及装置 | |
US20240264890A1 (en) | Method and system for analyzing cloud platform logs, device and medium | |
KR20180054992A (ko) | 스마트 컴퓨팅을 위한 시스템 자원의 장애 예측 방법 | |
CN112951311A (zh) | 一种基于变权重随机森林的硬盘故障预测方法及系统 | |
CN112767106B (zh) | 自动化审计方法、系统、计算机可读存储介质及审计设备 | |
CN110516034A (zh) | 日志管理方法、装置、网络设备和可读存储介质 | |
CN110633371A (zh) | 一种日志分类方法及系统 | |
CN113407721A (zh) | 检测日志序列异常的方法、装置及计算机存储介质 | |
CN116795977A (zh) | 数据处理方法、装置、设备和计算机可读存储介质 | |
CN114969334B (zh) | 异常日志检测方法、装置、电子设备及可读存储介质 | |
CN112306820A (zh) | 一种日志运维根因分析方法、装置、电子设备及存储介质 | |
CN115577701A (zh) | 针对大数据安全的风险行为识别方法、装置、设备及介质 | |
CN117807481B (zh) | 故障识别方法、模型的训练方法、装置、设备以及介质 | |
Itkin et al. | User-assisted log analysis for quality control of distributed fintech applications | |
CN116167370A (zh) | 基于日志时空特征分析的分布式系统异常检测方法 | |
CN118193274A (zh) | 分布式系统的异常处理方法、装置、设备及可读介质 | |
US20220284045A1 (en) | Matching machine generated data entries to pattern clusters | |
CN118035757A (zh) | 一种基于大语言模型的电驱总成故障诊断方法及装置 | |
CN115757062A (zh) | 一种基于句嵌入以及Transformer-XL的日志异常检测方法 | |
CN115659189A (zh) | 基于生成对抗网络的大规模软件系统的异常检测方法 | |
Wang et al. | FastTransLog: A Log-based Anomaly Detection Method based on Fastformer | |
Li et al. | Accelerating system log processing by semi-supervised learning: A technical report |
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 |