CN112348041A - 日志分类、日志分类训练方法及装置、设备、存储介质 - Google Patents
日志分类、日志分类训练方法及装置、设备、存储介质 Download PDFInfo
- Publication number
- CN112348041A CN112348041A CN201910726839.6A CN201910726839A CN112348041A CN 112348041 A CN112348041 A CN 112348041A CN 201910726839 A CN201910726839 A CN 201910726839A CN 112348041 A CN112348041 A CN 112348041A
- Authority
- CN
- China
- Prior art keywords
- log
- training
- array
- classification
- feature
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- 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
- 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/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种日志分类、日志分类训练方法及装置、设备、存储介质,日志分类方法包括:接收待分类日志;从所述待分类日志中提取第一数组;其中,第一数组中包含的信息可以用于所述待分类日志的分类;根据互斥特征捆绑规则,对所述第一数组降维,得到第二数组;根据所述第二数组对所述待分类日志进行分类,得到所述待分类日志的分类标签。本申请实施例中,通过对从待分类日志提取的第一数组进行降维,得到第二数组,可以降低分类器的输入的维数,减小分类器的运算压力,提高运算速度。
Description
技术领域
本发明实施例涉及大数据技术领域,涉及但不限于一种日志分类、日志分类训练方法及装置、设备、存储介质。
背景技术
Hadoop(海杜普)是一个由Apache(阿帕奇)基金会所开发的分布式***基础架构。审计是Hadoop安全模型中的一个关键组件,审计又称审核,是追踪集群中用户和服务行为的机制。日志审计在Hadoop中故障排查、性能分析方面有着非常重要的作用。日志审计工作的目的是分析Hadoop中组件的日志,实现日志内容审计后的分类,因此该问题可以归纳总结为分类问题。
Hadoop的组件处理审计的方法各有不同,这取决于组件的功能。HDFS(HadoopDistributed File System,Hadoop分布式文件***)和HBase(Hadoop Database,Hadoop数据库)这类组件是数据存储***,因此它们的可审计事件主要集中于读、写和访问数据。MapReduce(映射规约)、Hive(数据仓库)和Impala(查询***)这类组件是查询引擎和处理框架,可审计事件主要集中于终端用户的查询和作业。基于这种功能上的差异,不同组件日志包括不同的日志特征,现有技术中,通过针对不同组件的日志分别设计审计方案,来实现不同种类日志的分类。
发明内容
有鉴于此,本发明实施例提供一种日志分类、日志分类训练方法及装置、设备、存储介质。
本申请实施例提供一种日志分类方法,所述方法包括:
接收待分类日志;
从所述待分类日志中提取第一数组;其中,第一数组中包含的信息可以用于所述待分类日志的分类;
根据互斥特征捆绑规则,对所述第一数组降维,得到第二数组;
根据所述第二数组对所述待分类日志进行分类,得到所述待分类日志的分类标签。
本申请实施例再提供一种日志分类训练方法,所述方法包括:
提取训练样本集合中每个训练日志的分类标签;其中,所述训练样本集合中训练日志的种类相同;
从所述训练日志中提取第一数组;其中,第一数组中包含的信息可以用于所述训练日志的分类;
根据互斥特征捆绑规则,对所述第一数组降维,得到第二数组;
根据每个所述训练日志的分类标签和对应的第二数组,生成用于日志分类的分类器。
本申请实施例还提供一种日志分类装置,所述装置包括:
日志接收模块,用于接收待分类日志;
第一数组提取模块,用于从所述待分类日志中提取第一数组;其中,第一数组中包含的信息可以用于所述待分类日志的分类;
数组降维模块,用于根据互斥特征捆绑规则,对所述第一数组降维,得到第二数组;
分类标签确定模块,用于根据所述第二数组对所述待分类日志进行分类,得到所述待分类日志的分类标签。
本申请实施例还提供一种日志分类训练装置,所述装置包括:
分类标签提取模块,用于提取训练样本集合中每个训练日志的分类标签;其中,所述训练样本集合中训练日志的种类相同;
第一数组提取模块,用于从所述训练日志中提取第一数组;其中,第一数组中包含的信息可以用于所述训练日志的分类;
数组降维模块,用于根据互斥特征捆绑规则,对所述第一数组降维,得到第二数组;
分类器训练模块,用于根据每个所述训练日志的分类标签和对应的第二数组,生成用于日志分类的分类器。
本申请实施例又提供一种计算机设备,所述设备包括:存储器、处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述日志分类方法,或者,实现上述日志分类训练方法。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令配置为执行上述日志分类方法,或者,执行上述日志分类训练方法。
本申请实施例提供的日志分类方法中,通过对从待分类日志提取的第一数组进行降维,得到第二数组,可以降低分类器的输入的维数,减小分类器的运算压力,提高运算速度。
本申请实施例提供的日志分类训练方法中,通过改变训练样本集合中训练样本的种类,即可改变所生成的用于日志分类的分类器的种类,而不需要针对不同组件的日志分别设计审计方案,极大地提高了日志分类的处理效率。
附图说明
图1为本申请实施例的日志分类方法的实现流程示意图;
图2为本申请实施例的日志分类训练方法的实现流程示意图;
图3为本申请实施例的日志特征判别树的分类流程示意图;
图4为本申请实施例的日志分析***的组成结构示意图;
图5为本申请实施例的日志分类装置的组成结构示意图;
图6为本申请实施例的日志分类训练装置的组成结构示意图;
图7为本申请实施例中计算机设备的一种硬件实体示意图。
具体实施方式
下面结合附图和实施例对本发明的技术方案进一步详细阐述。
实施例一
本申请实施例提供一种日志分类方法,如图1所示,该日志分类方法包括:
S110,接收待分类日志。
在实施的过程中,该方法应用于计算机设备,例如,笔记本电脑、平板电脑、台式计算机、手机等具有信息处理能力的电子设备。
该方法在实施时,可以采用客户端软件来实现,例如用户通过在计算机设备上安装并运行客户端软件来实现该方法中的各个步骤。这里,客户端软件可以安装在企业的计算机设备上,企业管理员可以通过该客户端软件了解企业的计算机***的运行情况,及时监测***中的异常日志,发现***的异常事件。
待分类日志来自Hadoop中的某一组件,从同一组件导出的待分类日志的种类相同。比如,如果待分类日志为来自Hadoop的HDFS(Hadoop Distributed File System,Hadoop分布式文件***)组件的日志,这里将由Hadoop的HDFS组件导出的待分类日志称为HDFS组件日志,HDFS组件日志的种类为HDFS。
S120,从所述待分类日志中提取第一数组;其中,第一数组中包含的信息可以用于所述待分类日志的分类。
从Hadoop的不同组件中导出的待分类日志可能采用不同的格式对信息进行记录。一些组件导出的待分类日志采用JSON(JavaScript Object Notation,Java脚本对象简谱)格式记录信息,也有一些组件导出的待分类日志采用类似自然语言的形式记录信息。以HDFS组件日志为例,如果HDFS组件日志采用JSON(JavaScript Object Notation,Java脚本对象简谱)格式记录信息,包括如下内容:
allowed:true;ugi:user1;cmd:getfileinfo;perm:true。
那么该待分类日志中,包含的信息为:键allowed(被允许)对应的值为true,键ugi(user group information,用户组信息)对应的值为user1,键cmd(command,命令)对应的值为getfileinfo(获取文件信息),键perm perm(permission,权限)对应的值为true。
如果HDFS组件日志采用类似自然语言的形式记录信息,包括如下内容:
User user1issued a getfileinfo command.The user was correctlypermitted.The command was correctly allowed.
那么该待分类日志中,包含的信息为,ugi为user1的用户发起了一个getfileinfo操作,这个用户具有相应的权限,这个操作是被允许的。
根据待分类日志包含的上述信息,就可以对待分类日志进行分类。比如:某个HDFS组件日志中allowed对应的值是true,那么这个待分类日志有可能是正常日志;另一个HDFS组件日志中allowed对应的值是false,那么这个待分类日志有可能是异常日志。
为了方便分类器进行运算,本申请实施例从待分类日志包含的信息中提取数值化的信息,形成第一数组。比如,例如,某个HDFS组件日志中,如果allowed对应的值是true,则表明该用户是合法的,这个待分类日志可能是正常日志;如果allowed对应的值是false,则表明该用户是非法的,这个待分类日志可能是异常日志。如果perm对应的值是true,则表明该用户具有相应的权限,这个待分类日志可能是正常日志;如果perm对应的值是false,则表明该用户没有相应的权限,这个待分类日志可能是异常日志。由此可见,一般情况下,只需要将待分类日志中的信息抽象为正反两个结果即可满足日志分类的需求。本申请实施例中,将待分类日志包含的信息抽象为1和0来表征正反两个结果。
S130,根据互斥特征捆绑规则,对所述第一数组降维,得到第二数组。
互斥特征捆绑规则体现了特征之间的相关系数,如果两个特征之间的相关系数为零,即可对这两个特征进行捆绑,形成一个新的特征,以减少特征个数。本申请实施例中,根据互斥特征捆绑规则,将第一数组中相关系数为零的两个数值进行捆绑,以实现对第一数组的降维,得到第二数组。
S140,根据所述第二数组对所述待分类日志进行分类,得到所述待分类日志的分类标签。
本申请实施例中,通过对从待分类日志中提取得到的第一数组进行降维,得到第二数组,从而降低分类器的输入的维数,减小分类器的运算压力,提高运算速度。
实施例二
本申请实施例提供一种日志分类方法,该日志分类方法包括:
S210,接收待分类日志。
S220,获取所述待分类日志中的特征值,得到第一特征值组;其中,第一数组中包含的信息可以用于所述待分类日志的分类。
S230,根据每个特征值对应的数值化映射表,将所述第一特征值组中的特征值映射为数值,得到由数值组成的第一数组。
本申请实施例中利用统一的日志分析模块从待分类日志中提取第一特征值组。在一些实施例中,统一的日志分析模块从同一种类的大量待分类日志中提取最长公共子序列,这些最长公共子序列即为待分类日志中的模板信息。这里,如果待分类日志以JSON格式对信息进行记录,那么模板信息即为JSON键值对中的键,即上文所述的allowed、ugi、cmd、perm;如果待分类日志以类似自然语言的方式对信息进行记录,那么模板信息即为不同的待分类日志中包含的相同语句,即上文所述的“User【ugi】issued a【cmd】command.Theuser was【perm】permitted.The command was【allowed】allowed”中除去括号里的内容后剩下的部分。从每个待分类日志中删除模板信息后剩下的信息即为该待分类日志的第一特征值组。
在一些实施例中,第一特征值组对应的模板信息即为这个种类的待分类日志中包含的日志特征,即上文的allowed、ugi、cmd、perm。在其他实施例中,第一特征值组对应的模板信息可以用于确定这个种类的待分类日志中包含的日志特征。
本申请实施例的日志分类方法中的分类器用于对待分类日志的异常状况进行判断,该分类器可以处理的输入为若干个数值组成的数组,根据输入的数组得到待分类日志的分类标签。上文中得到的第一特征值组中的特征值为字符串,为了与分类器对输入的要求相适应,需要将这些字符串转换为由数值组成的数组,将第一特征值组转换为第一数组。
由于分类器只需要得出待分类日志是正常还是异常的分类结果,因此,在将第一特征值组中的特征值数值化时,保留下来的信息只要能够使得分类器可以判断该待分类日志是正常还是异常即可。比如,对于一个表示发起网络访问的用户的日志特征,该日志特征对应的特征值用于表征该用户的身份,通常而言,不合法的用户发起的网络访问会被视为异常访问,那么记录了该异常访问信息的日志即为异常日志。因此,为了判断该日志是否为正常日志,分类器并不需要了解该用户的具体身份,而只需要知道该用户的身份是否合法。这样,在将该特征值数值化时,只需要将该特征值转换为1或者0,其中1表示该用户的身份合法,0表示该用户的身份不合法。当分类器接收到输入的第一数组,判断该日志特征对应的数值是1还是0,即可得到该用户的身份是否合法的信息。
由此可见,对于一般的日志特征,设置的数值化映射表只需要将对应的特征值映射为正反两个结果即可满足日志分类的需求。本申请实施例中,将特征值数值化为1和0来表征正反两个结果。
对于需要从特征值中获取更多的信息才能对日志正常与否进行分类的日志特征,本申请实施例中也设置这些日志特征与对应数值的数值化映射表,此类数值化映射表中映射得到的数值可以取自包括多个自然数的集合,以使数值化后的特征值保留更多的信息。比如,cmd表征用户的操作类型,而用户有可能进行多种操作,将这些操作类型粗略地划分为正常和异常两种将影响分类结果的准确性。因此,可以设置数值化映射表,将cmd对应的特征值数值化为1到4中的一个正整数,来表征一个操作的风险程度。
S240,根据互斥特征捆绑规则,对所述第一数组降维,得到第二数组。
S250,根据所述第二数组对所述待分类日志进行分类,得到所述待分类日志的分类标签。
在一些实施例中,S240包括以下步骤:
S241,根据互斥特征捆绑规则,确定所述第一数组中需要互相捆绑的第一数值。
S242,将所述需要互相捆绑的第一数值两两绑定,得到第一数值对。
S243,根据数值映射表,将所述第一数值对映射为第二数值。
S244,根据所述第一数组中未捆绑的第一数值和所述第二数值确定第二数组。
这里,根据互斥特征捆绑规则,确定第一数组中需要互相捆绑的第一数值之后,即可将需要互相捆绑的第一数值两两绑定,得到第一数值对。此时,第一数组中包括至少一个第一数值和至少一个第一数值对,为了方便分类器进行分类运算,需要将第一数值对映射为第二数值。
一般而言,一个第一数值对的取值可能为<1,1>、<1,0>、<0,1>或<0,0>。在一些实施例中,可以针对该第一数值对设置一个对应的数值映射表。将<1,1>映射到0,将<1,0>映射到1,将<0,1>映射到2,将<0,0>映射到3,以将二维数组映射到一维的数值。由于这个数值映射表中,二维数组与一维数值一一对应,因此不仅可以实现从二维数组到一维数值的映射,也可以实现从一维数值到二维数组的反映射,从而保证第一数组中包含的信息不会丢失。在其他实施例中,在保证二维数组与一维数值一一对应的前提下,也可以采用其他的映射规则来将二维数组映射到一维数值。
映射完成之后,至少一个第一数值对将变成至少一个第二数值,那么,未经过映射的至少一个第一数值和映射得到的至少一个第二数值就可以形成第二数组。
在一些实施例中,S241包括以下步骤:
S241a,获取所述待分类日志的种类。
S241b,根据所述待分类日志的种类与日志特征组的映射关系,确定所述待分类日志包含的第一日志特征组;其中,所述第一日志特征组中日志特征的排列顺序为所述日志特征在所述待分类日志中的出现顺序。
S241c,根据互斥特征捆绑规则,确定所述第一日志特征组中互相捆绑的日志特征。
S241d,确定所述第一数组中的各个数值在所述待分类日志中的出现顺序。
S241e,根据出现顺序的对应关系,确定所述第一数组中的各个数值与所述第一日志特征组中的各个日志特征的对应关系。
S241f,将所述第一数组中、与所述互相捆绑的日志特征对应的数值确定为需要互相捆绑的第一数值。
本申请实施例中,统一的日志分析模块中存储了每个种类的日志对应的日志特征组。统一的日志分析模块中存储的日志特征组可以是人为确定的,也可以是统一的日志分析模块从大量训练日志中统计得到的。为了提取待分类日志的第一日志特征组,统一的日志分析模块首先确定待分类日志的种类,再获取该种类对应的第一日志特征组。这里,待分类日志的种类可以根据待分类日志的后缀确定,也可以由用户输入,或者由统一的日志分析模块根据统计分析得到。比如,统一的日志分析模块可以确定HDFS组件日志的种类为HDFS,从而获取种类为HDFS的待分类日志对应的日志特征组【allowed,ugi,cmd,perm】,并将获取的日志特征组确定为HDFS组件日志的第一日志特征组。
一般而言,Hadoop中,一个日志包含的日志特征之间的耦合性很低,日志特征空间为稀疏空间。在稀疏的日志特征空间中,有些日志特征对应的数值的相关系数很低。这里,日志特征对应的数值,即由日志特征对应的特征值进行数值化之后得到。基于稀疏空间的这种特性,可以将数值之间的相关系数为零的日志特征进行捆绑,记为互斥特征对。这里,日志特征对应的数值之间的相关系数可以通过统计的方法得到,例如<cmd,ip(InternetProtocol Address,网际协议地址)>、<src(source,资源),ugi>、<ThreadName(线程名称),Socket(进程)>都属于互斥特征对。将这些互斥特征对记录在表格中,即形成互斥特征对表。
互斥特征对表的每一条记录中,不仅包括两个互斥的日志特征,还定义了将这两个互斥的日志特征绑定之后形成的新的日志特征。比如,在互斥特征对表中可以定义,互斥特征对<src,ugi>经过捆绑后,形成的日志特征为ugi。显然,这里的ugi并不是日志中原始的日志特征ugi,而是互斥特征对<src,ugi>捆绑后形成的新的日志特征。在其他实施例中,为了避免混淆,也可以使得新的日志特征与原始日志特征的名字不冲突。比如,在互斥特征对表中可以定义,互斥特征对<src,ugi>经过捆绑后,形成的新的日志特征为src/ugi。这样,就可以清晰地知道这一日志特征由src和ugi捆绑后生成。这里,本领域技术人员可以理解,由Hadoop的同一组件导出的种类相同的日志可以共用一个互斥特征对表。
为了捆绑第一日志特征组中包含的互斥特征对,可以将第一日志特征组中包含的日志特征与互斥特征对表中的日志特征进行对比,如果在第一日志特征组中存在互斥特征对表中的互斥特征对,就可以根据互斥特征对表中的定义,将这个互斥特征对捆绑形成新的日志特征。将第一日志特征组中包含的互斥特征对捆绑完毕之后,即可得到第二日志特征组。比如,第一日志特征组中包含k1个日志特征,其中有k2个互斥特征对,这k2个互斥特征对会根据互斥特征对表中的定义,被捆绑形成k2个新的日志特征。这个互斥特征对捆绑过程将k2个互斥特征对(即2*k2个日志特征)捆绑形成k2个新的日志特征,那么,得到的第二日志特征组中,即包括k3=k1-k2个日志特征。
这里,统一的日志分析模块从待分类日志中提取的第一特征值组中,特征值的排列顺序即为每个特征值在待分类日志中出现的顺序。统一的日志分析模块中存储的每个种类的日志对应的日志特征组中,日志特征的排列顺序也是每个日志特征在待分类日志中出现的顺序。根据出现顺序的对应关系,即可确定第一特征值组中各个特征值与第一日志特征组中的各个日志特征的对应关系。
因为第一数组中各个数值的排列顺序与第一特征值组中各个特征值的排列顺序相同,因此也可以确定第一数组中的各个数值与第一日志特征组中的各个日志特征的对应关系。从而根据第一日志特征组中互相捆绑的日志特征确定第一数组中需要互相捆绑的第一数值。
实施例三
本申请实施例提供一种日志分类训练方法,如图2所示,该日志分类训练方法包括:
S310,提取训练样本集合中每个训练日志的分类标签;其中,所述训练样本集合中训练日志的种类相同.
S320,从所述训练日志中提取第一数组;其中,第一数组中包含的信息可以用于所述训练日志的分类。
S330,根据互斥特征捆绑规则,对所述第一数组降维,得到第二数组。
这里,从训练日志中得到第二数组的方法与上述实施例中记载的相似。
S340,根据每个所述训练日志的分类标签和对应的第二数组,生成用于日志分类的分类器。
这里,可以利用若干个训练日志中、每一个训练日志的第二数组和该训练日志对应的分类标签,采用现有的机器学习算法来训练生成用于日志分类的分类器。本领域技术人员可以理解,为了生成准确率较高的分类器,训练分类器所用的训练日志需要超过一定数量。
如果S320中提取的第一数组的维数为k1,将第一数组降维之后,得到的第二数组的维数为k3=k1-k2。这一种类的日志对应的分类器的输入的维数即为k3,如果采用该分类器对N个日志进行分类,那么该分类器需要处理的数据个数为N*k3,而在降维之前,分类器需要处理的数据个数为N*k1。由此可见,通过对互斥特征对捆绑,实现输入数据的降维,一方面可以显著减少分类器需要处理的数据量,实现良好的降噪效果,减轻分类器的运算压力,提高分类器的运算速度,另一方面还可以如实施例二中所记载的防止信息丢失。
实施例四
本申请实施例提供一种日志分类训练方法,该日志分类训练方法包括:
S410,提取训练样本集合中每个训练日志的分类标签;其中,所述训练样本集合中训练日志的种类相同。
S420,获取所述训练日志中的特征值,得到第一特征值组;其中,第一数组中包含的信息可以用于所述训练日志的分类。
S430,根据每个特征值对应的数值化映射表,将所述第一特征值组中的特征值映射为数值,得到由数值组成的第一数组。
这里,从训练日志中得到第一数组的方法与上述实施例中所记载的类似。
S440,根据互斥特征捆绑规则,对所述第一数组降维,得到第二数组。
S450,根据每个所述训练日志的分类标签和对应的第二数组,生成用于日志分类的分类器。
在一些实施例中,S420包括:
S421,获取所述训练日志的模板信息。
S422,去除每个所述训练日志中包含的模板信息,确定每个所述训练日志中的特征值,得到第一特征值组。
这里,从训练日志中得到第一特征值组的方法与上述实施例中所记载的类似。
在一些实施例中,S421包括:
S421a,确定所述训练样本集合中所有训练日志的最大公共子序列;
S421b,将所述最大公共子序列确定为所述训练日志的模板信息。
这里,从训练日志中得到模板信息的方法与上述实施例中所记载的类似。
在一些实施例中,S450包括:
S451,根据所述训练日志的个数,平均分配每个所述训练日志的第一评价权重。
S452,根据每个所述训练日志的分类标签、第一评价权重和对应的第二数组,生成M个弱分类器和每个弱分类器对应的分类权重;其中,M个弱分类器包括第一弱分类器、……、第m弱分类器、……、第M弱分类器,1≤m≤M,m、M为正整数。
S453,根据M个弱分类器和每个所述弱分类器的分类权重,生成用于日志分类的分类器;其中,所述用于日志分类的分类器的分类结果由所述M个弱分类器的分类结果的线性组合决定。
本申请实施例中,基于机器学习中的提高方法和分类决策树算法形成优化的GBDT(Gradient Boosting Decision Tree,梯度提升决策树)算法,利用优化的GBDT算法来训练生成用于日志分类的分类器。其中,分类决策树算法用于构造分类决策树,形成弱分类器。利用提高方法重新分类训练日志的评价权重,经过多轮迭代形成多个弱分类器,再将各个弱分类器的分类结果加权,用于确定分类器的分类结果。在一些实施例中,分类决策树算法可以是C4.5算法。这里,S452中可以采用提高方法来迭代生成M个弱分类器和每个弱分类器对应的分类权重。
在一些实施例中,S452包括如下步骤:
S452a,根据每个所述训练日志的分类标签、第一评价权重和对应的第二数组,生成第一弱分类器和所述第一弱分类器对应的第一分类权重。
S452b,当1<m≤M时,根据第m-1弱分类器对每个所述训练日志的第m-1分类结果和每个所述训练日志的第m-1评价权重,确定每个所述训练日志的第m评价权重。
S452c,根据每个所述训练日志的分类标签、第m评价权重和对应的第二数组,生成第m弱分类器和所述第m弱分类器的第m分类权重。
这里,S452a到S452c体现的是提高算法。
在一些实施例中,S452c包括如下步骤:
根据每个所述训练日志的分类标签、第m评价权重和对应的第二数组,确定所述第二数组对应的日志特征组中每个日志特征的信息增益值。
按照对应的信息增益值由大到小的顺序确定第二数组对应的日志特征组中日志特征的排列顺序。
将排列顺序之后的日志特征确定为日志特征判别树中按顺序排列的各个节点,生成所述日志特征判别树对应的第m弱分类器。
根据所述训练日志的第m评价权重和所述第m弱分类器对所述训练日志的第m分类结果,确定所述第m弱分类器的第m分类权重。
本申请实施例中,弱分类器是一个日志特征判别树,弱分类器的输入为日志的第二数组。第二数组中数值的排列顺序与日志特征判别树中日志特征的排列顺序相同。分类器接收到第二数组之后,首先根据排列在第一位的日志特征判断输入的日志是正常日志还是异常日志,如果得到的分类结果为异常日志,则输出分类结果;如果得到的分类结果是正常日志,则继续根据排列在第二位的日志特征判断输入的日志是正常日志还是异常日志。如此递推,直到得到的分类结果是异常日志、或者遍历日志特征判别树中的所有日志特征后结束分类运算。因此,为了生成弱分类器,需要确定日志特征判别树中按顺序排列的各个节点分别对应哪个日志特征。本申请实施例中,按照信息增益值由大到小的顺序排列日志特征,将日志特征与日志特征判别树中的节点相对应。
实施例五
本申请实施例还提供一种日志分类训练方法,该方法包括:
S510,统一的日志分析模块提取训练样本集合中每一训练日志的分类标签。
这里,训练样本集合中的训练日志种类相同,来自Hadoop中的某一组件,保存在训练样本集合中,用于生成该组件对应的分类器。从同一组件导出的训练日志的种类相同。生成某一组件对应的分类器时,采用的训练样本集合中包含的训练日志即为从该组件中导出的日志。每个训练日志都有一个对应的分类标签。分类标签包括两种:正常日志分类标签和异常日志分类标签,用于表征该训练日志是正常日志还是异常日志。添加分类标签的工作由人工进行,人工标引时,根据经验来判断一个训练日志是否属于正常访问的日志。
每个训练日志和它的分类标签对应存储在训练样本集合中。在一些实施例中,训练日志和分类标签存储在数据库中,训练日志的内容和分类标签在数据库中具有相同的数据ID。根据数据库中每条数据ID即可提取训练日志对应的分类标签。
S520,统一的日志分析模块提取训练日志的第一日志特征组和每一训练日志的第一特征值组。
来自同一组件的训练日志具有相同的日志特征,从这些训练日志中提取的日志特征形成的第一日志特征组即为这一种类的训练日志的日志特征的集合。比如,训练样本集合中包括的训练日志为来自Hadoop的HDFS组件的日志,这里将由Hadoop的HDFS组件导出的训练日志称为HDFS组件训练日志,HDFS组件训练日志的种类为HDFS,。
统一的日志分析模块中存储了每个种类的日志对应的日志特征组。统一的日志分析模块中存储的日志特征组可以是人为确定的,也可以是统一的日志分析模块从大量训练日志中统计得到的。为了提取训练日志的第一日志特征组,统一的日志分析模块首先确定训练日志的种类,再获取该种类对应的第一日志特征组。这里,训练日志的种类可以根据训练日志的后缀确定,也可以由用户输入,或者由统一的日志分析模块根据统计分析得到。比如,统一的日志分析模块可以确定HDFS组件训练日志的种类为HDFS,从而获取种类为HDFS的训练日志对应的日志特征组【allowed,ugi,cmd,perm】,并将获取的日志特征组确定为HDFS组件日志的第一日志特征组。
训练样本集合的任意一个训练日志中,每个日志特征均对应一个特征值,该训练日志中所有特征值形成第一特征值组。举例来说,如果HDFS组件训练日志采用JSON(JavaScript Object Notation,Java脚本对象简谱)格式记录信息,包括如下内容:
allowed:true;ugi:user1;cmd:getfileinfo;perm:true。
那么该训练日志中,日志特征allowed对应的特征值为true,日志特征ugi对应的特征值为user1,日志特征cmd对应的特征值为getfileinfo(获取文件信息),日志特征perm对应的特征值为true,从该训练日志中提取的第一特征值组为【true,user1,getfileinfo,true】。
如果HDFS组件训练日志采用类似自然语言的形式记录信息,包括如下内容:
User user1issued a getfileinfo command.The user was correctlypermitted.The command was correctly allowed.
那么该训练日志中,日志特征allowed对应的特征值为correctly,日志特征ugi对应的特征值为user1,日志特征cmd对应的特征值为getfileinfo,日志特征perm对应的特征值为correctly,从该训练日志中提取的第一特征值组为【user1,getfileinfo,correctly,correctly】。
本领域技术人员可以了解,相同种类的日志会采用同样的格式记录信息。举例来说,HDFS组件训练日志中所有的训练日志可能全部采用JSON格式记录信息,也可能全部采用类似自然语言的形式记录信息,但不可能一部分采用JSON格式记录信息,另一部分采用类似自然语言的形式记录信息。
如果HDFS组件训练日志采用JSON格式记录信息,那么所有HDFS组件训练日志中都会同样包括allowed、ugi、cmd、perm这四个键,不同的HDFS组件训练日志中allowed、ugi、cmd、perm分别对应的特征值有可能不同。比如,某个HDFS组件训练日志中allowed对应的特征值是true,那么这个训练日志有可能是正常日志;另一个HDFS组件训练日志中allowed对应的特征值是false,那么这个训练日志有可能是异常日志。
如果HDFS组件训练日志采用类似自然语言的形式记录信息,那么所有HDFS组件训练日志中都会包括相同的语句模板:User【ugi】issued a【cmd】command.The user was【perm】permitted.The command was【allowed】allowed.这里,括号以外的字符即为HDFS组件训练日志中的模板信息。所有HDFS组件训练日志中的模板信息相同,每个HDFS组件训练日志中括号内的内容有可能不同。比如,某个HDFS组件训练日志中记载了The command wascorrectly allowed,那么该训练日志中对应日志特征allowed的字符串为correctly,allowed对应的特征值为correctly,这个训练日志有可能是正常日志;另一个HDFS组件训练日志中记载了The command was not allowed,那么该训练日志中对应日志特征allowed的字符串为not,allowed对应的特征值为not,这个训练日志有可能是异常日志。
对于每个训练日志,第一特征值组对应该训练日志的分类标签。利用训练日志生成分类器时,分类器的种类与训练日志的种类相对应。理想情况下,将任意一个训练日志的第一特征值组中记录的信息输入生成的分类器,分类器得到的分类结果都会与该训练日志的分类标签相同。这里,由于分类器种类与训练日志的种类相对应,因此,需要针对Hadoop中的不同组件分别训练生成各个组件对应的分类器。
Hadoop中,不同组件生成的日志种类不同,这些日志记录信息采用的结构也不同。例如,MapReduce的作业运行日志采用JSON(JavaScript Object Notation,Java脚本对象简谱)格式记录了作业启动时间、运行时间。类似地,Hadoop的审计日志也是采用类似JSON格式的结构化语句对信息进行记录。而Hadoop的其他业务日志会采用不同的模板,以类似自然语言的方式对相应的信息进行记录。
统一的日志分析模块用于从Hadoop导出的每个训练日志中提取第一特征值组。在一些实施例中,统一的日志分析模块从训练日志的内容中提取最长公共子序列,这些最长公共子序列即为训练日志中的模板信息。这里,如果训练日志以JSON格式对信息进行记录,那么模板信息即为JSON键值对中的键,即上文所述的allowed、ugi、cmd、perm;如果训练日志以类似自然语言的方式对信息进行记录,那么模板信息即为不同的训练日志中包含的相同语句,即上文所述的“User【ugi】issued a【cmd】command.The user was【perm】permitted.The command was【allowed】allowed”中括号外的部分。从每个训练日志中删除模板信息后剩下的信息即为该训练日志的第一特征值组。
这里,统一的日志分析模块从训练日志中提取的第一特征值组中,特征值的排列顺序即为每个特征值在训练日志中出现的顺序。比如,当HDFS组件训练日志采用JSON格式记录信息时,上述HDFS组件训练日志中提取得到的第一特征值组为【true,user1,getfileinfo,true】;当HDFS组件训练日志采用类似自然语言的方式记录信息时,上述HDFS组件训练日志中提取得到的第一特征值组为【user1,getfileinfo,correctly,correctly】。
统一的日志分析模块在对特征值进行提取时,删除了训练日志中的模板信息,只保留训练日志中的特征值,这些被删除的模板信息即对应着训练日志的日志特征。利用训练样本集合中的训练日志训练生成分类器时,需要对第一特征值组进行降维处理,降维处理需要依赖日志特征之间的关系。因此,为了方便对第一特征值组进行降维处理,有必要将第一特征值组中的特征值与第一日志特征组中的日志特征一一对应起来。本申请实施例中,第一特征值组中的特征值与第一日志特征组中的日志特征的匹配过程在统一的日志分析模块中进行。
通常,统一的日志分析模块中存储的日志特征组中,日志特征的排列顺序即为日志特征在日志中出现的顺序。以上述HDFS组件训练日志为例,如果采用JSON格式记录信息,那么HDFS组件训练日志对应的第一日志特征组为【allowed,ugi,cmd,perm】;如果采用类似自然语言的形式记录信息,那么HDFS组件训练日志对应的第一日志特征组为【ugi,cmd,perm,allowed】。
由此可见,统一的日志分析模块从训练日志中提取的第一特征值组中,特征值的排列顺序即为每个特征值在训练日志中出现的顺序;统一的日志分析模块根据训练日志的种类获取的第一日志特征组中,日志特征的排列顺序也为每个特征值在训练日志中出现的顺序。这样,统一的日志分析模块就可以按照顺序依次将特征值与对应的日志特征相匹配。
在一些实施例中,可以采用如下方法学习得到日志中包括的日志特征:
对于采用结构化语句记录信息的组件,从这些组件中导出日志,从这一种类的日志中提取数据标签,将这些数据标签作为日志特征,并将这些日志特征保存在数据库中。这里,日志的种类与导出该日志的组件相对应,作为日志特征的数据标签可以是JSON格式中的键,或者是其他类型的结构化语句中用于区分数据类型的关键词。
对于采用类似自然语言的方式记录信息的组件,从某一组件中导出足够数量的日志,从这些日志中提取最长公共子序列,将这些最长公共子序列与数据库中现有的日志特征进行匹配,能够与其中的某个最长公共子序列成功匹配的日志特征即为这一种类日志的一个日志特征。比如,上文中,采用JSON格式记录信息的HDFS组件训练日志中提取得到的最长公共子序列为“allowed:”、“ugi:”、“cmd:”、“perm:”。在一些实施例中,可以采用字符串模糊匹配的方式进行日志特征的匹配。比如,如果数据库中已经存在allowed,ugi,cmd,perm这四个日志特征,最长公共子序列“allowed:”、“ugi:”、“cmd:”、“perm:”就可以分别与这四个日志特征成功匹配。
如果这些最长公共子序列中,存在无法与数据库中现有的日志特征成功匹配的最长公共子序列,可以采用人工的方式,根据这些最长公共子序列中记载的信息类型,为这些最长公共子序列定义对应的日志特征,并在数据库中保存与这些最长公共子序列对应的日志特征。比如,采用类似自然语言的形式记录信息的HDFS组件训练日志中提取得到的最长公共子序列为“User”、“issued a”、“command.The user was”、“permitted.The commandwas”、“allowed”。这些最长公共子序列无法通过字符串匹配的方式与数据库中现有的ugi,cmd,perm,allowed等日志特征匹配成功,但是可以采用人工的方式将HDFS组件训练日志的最长公共子序列对应的日志特征定义为ugi,cmd,perm,allowed,并将最长公共子序列与日志特征的对应关系保存在数据库中。
S530,统一的日志分析模块分别数值化每一训练日志的第一特征值组中的特征值,得到第一数组。
这里,本申请实施例中的日志分类训练方法训练得到的分类器用于对待分类日志的异常状况进行判断,该分类器可以处理的输入为若干个数值组成的数组,根据输入的数组得到日志的分类标签。第一特征值组中的特征值为字符串,为了与分类器对输入的要求相适应,需要将这些字符串转换为由数值组成的数组,将第一特征值组转换为第一数组。
由于分类器只需要得出日志是正常还是异常的分类结果,因此,在将第一特征值组中的特征值数值化时,保留下来的信息只要能够使得分类器可以判断该日志是正常还是异常即可。比如,对于一个表示发起网络访问的用户的日志特征,该日志特征对应的特征值用于表征该用户的身份,通常而言,不合法的用户发起的网络访问会被视为异常访问,那么记录了该异常访问信息的日志即为异常日志。因此,为了判断该日志是否为正常日志,分类器并不需要了解该用户的具体身份,而只需要知道该用户的身份是否合法。这样,在将该特征值数值化时,只需要将该特征值转换为1或者0,其中1表示该用户的身份合法,0表示该用户的身份不合法。当分类器接收到输入的第一数组,判断该日志特征对应的数值是1还是0,即可得到该用户的身份是否合法的信息。
由此可见,对于一般的日志特征,只需要将其特征值抽象为正反两个结果即可满足日志分类的需求。本申请实施例中,将特征值数值化为1和0来表征正反两个结果。
对于需要从特征值中获取更多的信息才能对日志正常与否进行分类的日志特征,本申请实施例中设置这些日志特征与对应数值的映射规则,以使数值化后的特征值保留更多的信息。比如,cmd表征用户的操作类型,而用户有可能进行多种操作,将这些操作类型粗略地划分为正常和异常两种将影响分类结果的准确性。因此,可以设置映射规则,将cmd对应的特征值数值化为1到4中的一个正整数,来表征一个操作的风险程度,表1示出了cmd对应的特征值数值化的映射规则。对应地,设定分类器中风险程度的阈值,比如,若一个日志中cmd的风险程度大于2,则表示该日志可能是异常日志;若一个日志中cmd的风险程度小于等于2,则表示该日志可能正常日志。分类器可以通过调整风险程度的阈值来提高分类的准确率。
表1日志特征cmd的数值化映射表
特征值 | 数值 | 特征值 | 数值 | 特征值 | 数值 |
getfileinfo | 1 | listStatus | 2 | setReplication | 4 |
mkdirs | 2 | open | 3 | setOwner | 4 |
create | 2 | setTimes | 3 | setPermission | 4 |
rename | 2 | delete | 4 |
表1中,如果日志特征cmd对应的特征值是getfileinfo,该命令用于获取文件的信息,是一个风险级别不高的操作命令,因此其数值化后对应的数值为1。相应的,如果日志特征cmd对应的特征值是setPermission,该命令用于设置权限,是一个风险级别很高的操作命令,因此其数值化后对应的数值为4。
S540,统一的日志分析模块根据互斥特征对表,捆绑第一日志特征组中包含的互斥特征对,生成第二日志特征组。
一般而言,Hadoop中,一个日志包含的日志特征之间的耦合性很低,日志特征空间为稀疏空间。在稀疏的日志特征空间中,有些日志特征对应的数值的相关系数很低。这里,日志特征对应的数值,即由日志特征对应的特征值进行数值化之后得到。基于稀疏空间的这种特性,可以将数值之间的相关系数为零的日志特征进行捆绑,记为互斥特征对。这里,日志特征对应的数值之间的相关系数可以通过统计的方法得到,例如<cmd,ip(InternetProtocol Address,网际协议地址)>、<src(source,资源),ugi>、<ThreadName(线程名称),Socket(进程)>都属于互斥特征对。将这些互斥特征对记录在表格中,即形成互斥特征对表。
互斥特征对表的每一条记录中,不仅包括两个互斥的日志特征,还定义了将这两个互斥的日志特征绑定之后形成的新的日志特征。比如,在互斥特征对表中可以定义,互斥特征对<src,ugi>经过捆绑后,形成的日志特征为ugi。显然,这里的ugi并不是日志中原始的日志特征ugi,而是互斥特征对<src,ugi>捆绑后形成的新的日志特征。在其他实施例中,为了避免混淆,也可以使得新的日志特征与原始日志特征的名字不冲突。比如,在互斥特征对表中可以定义,互斥特征对<src,ugi>经过捆绑后,形成的新的日志特征为src/ugi。这样,就可以清晰地知道这一日志特征由src和ugi捆绑后生成。这里,本领域技术人员可以理解,由Hadoop的同一组件导出的种类相同的日志可以共用一个互斥特征对表。
为了捆绑第一日志特征组中包含的互斥特征对,可以将第一日志特征组中包含的日志特征与互斥特征对表中的日志特征进行对比,如果在第一日志特征组中存在互斥特征对表中的互斥特征对,则根据互斥特征对表中的定义,将这个互斥特征对捆绑形成新的日志特征。将第一日志特征组中包含的互斥特征对捆绑完毕之后,即可得到第二日志特征组。比如,第一日志特征组中包含k1个日志特征,其中有k2个互斥特征对,这k2个互斥特征对会根据互斥特征对表中的定义,捆绑形成k2个新的日志特征。这个互斥特征对捆绑过程将k2个互斥特征对(即2*k2个日志特征)捆绑形成k2个新的日志特征,那么,得到的第二日志特征组中,即包括k3=k1-k2个日志特征。
S550,根据第二日志特征组对应的数值映射规则,分别将每一训练日志的第一数组降维,得到第二数组。
日志特征的特征值中包含的信息在S520中转换为数值,为了将第一数组降维,在一些实施例中,对于每一对互斥的日志特征,可以设置一个数值映射规则,将这一对互斥的日志特征对应的二维数组映射到一维的数值。在一些实施例中,这个数值映射规则可以与S540中形成的新的日志特征绑定,在将第一日志特征组中的互斥特征对进行绑定后,即可以提取该互斥特征对对应的数值映射规则。
比如,对于<src,ugi>这个互斥特征对,其取值可能为<1,1>、<1,0>、<0,1>或<0,0>,可以针对该互斥特征对设置一个对应的数值映射表,将<1,1>映射到0,将<1,0>映射到1,将<0,1>映射到2,将<0,0>映射到3,实现将二维数组映射到一维的数值。由于这个数值映射表中,二维数组与一维数值一一对应,因此不仅可以实现二维数组到一维数值的映射,也可以实现从一维数值到二维数组的反映射,从而保证第一数组中包含的信息不会丢失。在其他实施例中,在保证二维数组与一维数值一一对应的前提下,也可以采用其他的映射规则来将二维数组映射到一维数值。
由以上的互斥特征对捆绑和数值映射规则可知,第二数组中的数值与第二日志特征组中的日志特征存在对应关系。第二日志特征组中每个未经过处理的日志特征在第二数组中均存在一个对应的数值,第二日志特征组中通过互斥特征对捆绑生成的新的日志特征在第二数组中也存在对应的数值,该数值由上述数值映射规则得到。
通过执行以上的互斥特征对捆绑和数值映射,如果第一数组的维数为k1,第一日志特征组中包含k2对互斥的日志特征,那么将第一数组降维之后,得到的第二数组的维数即为k3=k1-k2。这一种类的日志对应的分类器的输入的维数即为k3,如果采用该分类器对N个日志进行分类,那么该分类器需要处理的数据个数为N*k3,而在降维之前,该分类器需要处理的数据个数为N*k1。由此可见,通过对互斥特征对进行捆绑,实现输入数据的降维,一方面可以显著减少分类器需要处理的数据量,实现良好的降噪效果,减轻分类器的运算压力,提高分类器的运算速度,另一方面还可以防止信息遗失。
S560,机器学习训练模块利用训练日志的第二数组和分类标签进行训练,生成用于日志分类的分类器。
这里,为了训练分类器,需要利用若干个训练日志中、每一个训练日志的第二数组和该训练日志对应的分类标签。为了生成准确率较高的分类器,训练分类器所用的训练日志需要超过一定数量。本申请实施例中,训练日志集合中训练日志的数量为N。
本申请实施例中,基于机器学习中的提高方法和分类决策树算法形成优化的GBDT(Gradient Boosting Decision Tree,梯度提升决策树)算法,利用优化的GBDT算法来训练生成用于日志分类的分类器。其中,分类决策树算法用于构造分类决策树,形成弱分类器。利用提高方法重新分类训练日志的评价权重,经过多轮迭代形成多个弱分类器,再将各个弱分类器的分类结果加权,用于确定分类器的分类结果。在一些实施例中,分类决策树算法可以是C4.5算法。
经过以上步骤生成的分类器的分类结果由M个弱分类器的分类结果线性组合确定,如公式(1)所示:
其中,G(x)为用于日志分类的分类器的分类结果,Gm(x)的值为M个弱分类器中、第m弱分类器的分类结果,将某个训练样本的第二数组x作为第m弱分类器的输入即可得到第m弱分类器的分类结果。αm为第m弱分类器的第m分类权重。Sign()为符号函数,符号函数的输入为正数时,输出为1;输入为0时,输出为0;输入为负数时,输出为-1。弱分类器的个数M由基于大量数据的实验得到的经验值确定。每个弱分类器的分类结果在最终分类结果中所占的分类权重与其分类的准确度成正比。本申请实施例采用以下步骤来得到弱分类器和各个弱分类器的分类权重:
S561,基于训练样本集合中的每个训练日志对应的分类标签、第一评价权重和对应的第二数组,生成第一弱分类器和第一弱分类器的第一分类权重。
本申请实施例中,弱分类器是一个日志特征判别树,日志特征判别树中的每个节点对应第二日志特征组中的一个日志特征。不同种类的日志对应的第二日志特征组不同,基于第二日志特征组生成的第一弱分类器也不同。图3为第一弱分类器对应的日志特征判别树的一个示例,该日志特征判别树中一共包含四个节点,也即,该日志特征判别树对应的第二日志特征组中包括四个日志特征:allowed、ugi、cmd和perm。日志特征判别树中,节点依次排列的顺序是allowed、ugi、cmd和perm。如图3所示,对于训练样本集合中的第i训练日志,如果第i训练日志对应的第二数组xi中,allowed对应的值为假,那么第一弱分类器对第i训练日志的分类结果为异常日志,G1(xi)的值为-1。
在一些实施例中,可以应用信息增益准则对日志特征的顺序进行排列。对于给定的训练数据集D和特征A,经验熵H(D)表示对训练数据集D进行分类的不确定性,而经验条件熵H(D|A)表示在特征A给定的条件下对训练数据集D进行分类的不确定性。经验熵H(D)与经验条件熵H(D|A)的差即为信息增益,信息增益用于表示由于特征A而使得训练数据集D的分类不确定性减少的程度。显然,对于训练数据集D而言,信息增益随着特征的不同而发生变化,信息增益大的特征具有更强的分类能力。其中,经验熵H(D)根据以下公式(2)确定:
这里,|D|为训练数据集D的样本个数,k为训练数据集D中样本的种类数。按照样本的种类,可以将训练数据集D中的样本分为k个子集合C1、C2、……、Ck,|Ck|为子集合Ck的样本个数。比如,本申请实施例中,训练日志的种类数为2,包括正常日志和异常日志,那么可以将训练样本集合分为2个子集合C1、C2,C1为正常日志的集合,C2为异常日志的集合。
本申请实施例中,在生成第m弱分类器时,每个集合中总的样本个数等于该集合中所有训练日志的第m评价权重之和与N的乘积,其中,N为训练样本集合中训练日志的个数,第i训练日志的第m评价权重为wmi。生成第一弱分类器时,m=1,w1i=1/N。也即,生成第一弱分类器时,训练样本集合中每个训练日志的第一评价权重均为1/N,集合中的样本个数即为训练日志的个数。比如,对于训练样本集合这一整体,其中一共包括N个训练日志,对应地,|D|的数值即为N。
经验条件熵H(D|A)根据以下公式(3)确定:
这里,如果日志特征A有n个不同的取值{a1,a2,……,an},即可根据日志特征A的取值将训练样本集合D中的样本分为n个子集合D1、D2、……、Dn,|Di|为子集合Ck的样本个数。子集合Di中,属于子集合Ck的样本的集合为Dik。|Di|为子集合Di的样本个数,|Dik|为子集合Dik的样本个数。比如,本申请实施例中,技术特征allowed有两个取值1和0,子集合D1中包含的训练日志的技术特征allowed的取值均为1,子集合D2中包含的训练日志的技术特征allowed的取值均为0。子集合D1中,属于子集合C1的样本的集合为D11,集合D11中,所有的训练日志均为正常日志,且D11中训练日志的日志特征allowed的取值均为1。
特征A的信息增益根据以下公式(4)确定:
g(D,A)=H(D)-H(D|A) (4);
根据以上信息增益准则,可以对训练样本集合中的每个日志特征计算该日志特征对应的信息增益,选择信息增益最大的日志特征作为根节点,并按照信息增益从大到小的顺序排列剩余的日志特征,从而生成第一弱分类器。
生成第一弱分类器后,将训练样本集合中第i训练日志对应的第二数组xi输入到第一弱分类器,得到的G1(xi)即为第一弱分类器对第i训练日志的第一分类结果。如果G1(xi)的取值为1,则表示第i训练日志为正常日志;如果G1(xi)的取值为-1,则表示第i训练日志为异常日志。yi是人工标引时确定的第i训练日志的分类结果,对应第i训练日志的分类标签。如果人工标引时,给第i训练日志添加的分类标签为正常日志,那么yi的取值为1;如果人工标引时,给第i训练日志添加的分类标签为异常日志,那么yi的取值为-1。如果G1(xi)与yi的数值相等,则表示第一弱分类器对第i训练日志进行了正确分类;如果G1(xi)与yi的数值不相等,则表示第一弱分类器对第i训练日志进行了错误分类。
本申请实施例中,根据第m弱分类器对训练样本集合中每个训练日志的第m分类结果和每个训练日志的第m评价权重来确定第m弱分类器的分类误差率em,em由以下公式(5)确定:
公式(5)中,如果Gm(xi)与yi的取值相等,那么I(Gm(xi)≠yi)输出的值为0;如果Gm(xi)与yi的取值不相等,那么I(Gm(xi)≠yi)输出的值为1。由此可见,训练样本集合中,被第m弱分类器进行了错误分类的训练样本个数越多,第m弱分类器的分类误差率越高。
第m弱分类器的第m分类权重αm的取值取决于第m弱分类器的分类误差率em,由公式(6)确定:
上述公式(6)中的对数是自然对数。将公式(6)中m的取值设为1,即可得到第一弱分类器的分类误差率和第一弱分类器的第一分类权重。
由上述公式(6)可知,当em大于0.5时,αm为负数;当em小于0.5时,αm为正数。也即,如果第m弱分类器对训练样本集合中超过半数的训练日志进行了错误分类,那么第m弱分类器不是一个表现良好的分类器,其分类结果在公式(1)中将体现为减数,作为最终分类结果的修正值。
S562,根据第m弱分类器对每个训练日志的第m分类结果和每个训练日志的第m评价权重,确定每个训练日志的第m+1评价权重。
本申请实施例中采用以下公式(7)来确定第i训练日志的第m+1评价权重:
其中,Zm是规范化因子,Zm的取值取决于样本训练集合中每个训练日志的第m评价权重、αm、人工标引的每个训练日志的分类标签和第m弱分类器对每个训练日志的第m分类结果,具体可以表示为公式(8):
结合公式(7)和公式(8)可知,N个训练日志的第m+1评价权重之和为1,每个训练日志的第m评价权重和第m+1评价权重不同。比如,如果第i训练日志被第m弱分类器进行了错误分类,yiGm(xi)的值将等于-1,-αmyiGm(xi)的值将等于αm,如果αm大于0,exp(-αmyiGm(xi))将大于1,的值将大于如果αm小于0,exp(-αmyiGm(xi))将小于1,的值将小于相对地,如果第i+1训练日志被第m弱分类器进行了正确分类,yi+1Gm(xi+1)的值将等于1,-αmyi+1Gm(xi+1)的值将等于-αm,如果αm大于0,exp(-αmyi+1Gm(xi+1))将小于1,的值将小于如果αm小于0,exp(-αmyi+1Gm(xi+1))将大于1,的值将大于
根据以上分析可见,当αm大于0时,表明第m弱分类器是一个表现良好的分类器,其对第i训练日志和对第i+1训练日志的分类结果值得信任。在这种前提下,如果第i训练日志被进行了错误分类,第i+1训练日志被进行了正确分类,那么在训练第m+1弱分类器时,第i训练日志相对于第i+1训练日志需要得到更多关注,也即的值将大于 的值将小于第i训练日志的评价权重相对于第i+1训练日志得到了升高。
当αm小于0时,表明第m弱分类器不是一个表现良好的分类器,其对第i训练日志和对第i+1训练日志的分类结果不值得信任。在这种前提下,如果第i训练日志被进行了错误分类,第i+1训练日志被进行了正确分类,那么在训练第m+1弱分类器时,第i+1训练日志相对于第i训练日志需要得到更多关注,也即的值将小于 的值将大于第i训练日志的评价权重相对于第i+1训练日志得到了降低。
如前文所述,生成第m+1弱分类器时,集合中总的样本个数等于集合中所有训练日志的第m+1评价权重之和与N的乘积,当训练日志的评价权重发生变化时,即使集合中的训练日志没有发生变化,集合中总的样本个数也会跟随评价权重的变化而发生变化,从而影响日志特征的信息增益,进而在生成第m+1弱分类器时,影响各个日志特征的排列顺序。
S563,根据每个训练日志的第m+1评价权重、训练样本集合中的每个训练日志对应的第二数组和分类标签,生成第m+1弱分类器,并确定第m+1弱分类器的第m+1分类权重。
将上述公式(7)和公式(8)中m的取值设为1,即可得到每个训练日志的第二评价权重。根据每个训练日志的第二评价权重,可以重新确定每个日志特征的信息增益,从而采用S561中的方法生成第二弱分类器和第二分类权重。如此迭代,即可生成M个弱分类器和M个弱分类器的分类权重,从而生成用于日志分类的分类器。
审计工作的目的是分析Hadoop***中组件的日志,实现日志内容审计后的分类,因此该问题可以归纳总结为分类问题。现有的日志审计方案都没有很好的针对日志特征的泛化分析能力,例如Eagle在用户当前实时行为模式与其对应的历史模型模式存在一定程度的差异时识别用户行为是否为异常。但是因此带来的问题就是基于线下日志数据训练出的模型不能针对日志进行精确的分类。
为了完善日志审计中对于日志的分类算法,本申请实施例中针对日志分类中的日志特征选择,采用互斥特征对捆绑(Exclusive Feature Bundling,EFB)的降维方法实现日志特征的选择,采用GBDT算法对特征的权重进行调整和优化。GBDT算法是通过采用加法模型,即弱分类器对应的基函数的线性组合、以及不断减小训练过程产生的残差来达到将数据分类或回归。针对高维特征的场景,本申请实施例使用互斥特征对捆绑的降维方法、和优化后的GBDT算法,可以实现Hadoop日志审计***的性能优化。
本申请实施例还提供一种日志分析***,如图4所示,该***包括统一的日志分析模块401、日志处理模块402、数据存储模块403、仪表盘404、机器学习训练模块405、用户控制台406和管理模块407。
统一的日志分析模块401除了可以处理Hadoop中导出的日志的日志特征,还可用于查看站点所有的Hadoop组件产生的日志的汇总分析;亦可根据时间段进行分类。这里,通过对日志中的时间信息进行限定,统一的日志分析模块401可以根据日志中记录的时间对待分类日志进行筛选,只对特定的时间段内的待分类日志进行特征提取,从而对这些日志进行分类或者分析。比如,从Hadoop中导出的日志中都记录了各个操作发生的时间,如果需要分析凌晨一点到两点的用户操作,就可以通过统一的日志分析模块筛选日志中记录的时间为凌晨一点到两点的日志,对这些日志进行统计分析。
日志处理模块402包括分类器408,分类器408根据提取得到的特征值对待分类日志进行分类,得到待分类日志的分类结果,为待分类日志添加分类标签,确定待分类日志是正常日志还是异常日志。
这里,统一的日志分析模块401对待分类日志进行处理,提取第一日志特征组和第一特征值组,并对第一特征值组进行数值化和互斥特征对捆绑,这些步骤与分类器训练过程中对训练日志进行处理的步骤相同。然后,统一的日志分析模块401将待分类日志的第二数组输出到日志处理模块402的分类器408。分类器408接收到第二数组后,对待分类日志进行分类,为每个待分类日志添加分类标签。
日志处理模块402还包括可以用于日志信息分析的日志分析单元。统一的日志分析模块401对日志中的日志特征进行归类,将表征用户的请求的日志特征归类为request_uri(request uniform resource identifier,请求的统一资源标识符),将表征***响应于用户请求的日志特征归类为response_code(响应码),对日志的IP地址也单独归类。如此,日志处理模块402可以针对这些日志特征对应的特征值,基于请求数、响应大小、响应时间三个大维度对日志进行分析,得到有用的分析结果。
比如,request_uri分析能直观展示哪类请求数量多、哪类请求耗时多、哪类请求占流量;另外可展示某一类请求在不同粒度(每分钟,每十分钟,每小时,或者每天)里各指标随时间的分布变化;也可以针对某一IP地址分析其不同的请求各指标的分布。
IP分析中,可以将所有请求分为两种来源(来自服务器或者直接来自用户),两种来源可以各自展示其访问量前N的IP地址,并且可展示来自某一IP的访问请求的各指标随时间的分布;也可针对某一特定的IP地址分析其产生的不同请求各指标的分布。
对应于request_uri,response_code中包含了响应的信息,对response_code进行分析可以直观展示哪类响应的数量多、哪类响应耗时多,以及某一类响应在不同粒度里随时间的分布变化等。
本申请实施例中,可以通过统一的日志分析模块401和日志处理模块402,在指定时间段内或指定IP端口提供细粒度的异常定位和性能分析。如果经过分类器处理的待分类日志都属于同一个特定的时间段,日志分析单元可以根据这些待分类日志的分类结果,统计得到该时间段内异常日志的比例,从而判断组件是否产生了值得注意的异常情况。
对于以上分析需求,统一的日志分析模块401支持定制抽象规则,可灵活指定请求中的某些部分是否要抽象处理。通过定制的抽象规则,对request_uri或response_code进行抽象归类,将其中变化的部分以“*”表示,这样留下不变的部分就能代表具体的一类请求。这种抽象规则实际上是换一种方式看待日志,从“以具体的一行日志文本作为最小分析单位”抽象上升到“以某一功能点、某一接口或某一模块最为最小分析单位”。
数据存储模块403用于存储经过了分类器408分类处理的已分类日志,已分类日志的日志内容也与分类标签一起对应地存储在数据存储模块403中。
此外,数据存储模块403中还存储了分类器408的训练样本集合,机器学习训练模块405可以利用训练样本集合中的数据对分类器408进行训练。这些训练样本集合可以定期进行更新,从而方便机器学习训练模块405对分类器408进行更新。在一些实施例中,数据存储模块403采用mongoDB数据库进行数据存储。
在一些实施例中,经过分类器408分类的日志可以推送到用户侧,用户对分类结果的正确性进行判断,改正不正确的分类结果。经过了用户验证的分类结果和对应的日志内容可以被存储到训练样本集合,用于重新训练分类器408。
仪表盘404用于展示以上的分类结果和分析结果,使用户可以通过仪表盘404查看不同日志特征的分布情况。
用户控制台406可以通过管理模块407从外部输入超参数,比如弱分类器的个数、日志分析的抽象规则等,调整日志分析的策略。
本申请实施例中日志处理模块402的日志分析脚本log_analyse对资源的要求低,且处理效率高。经测试,在千兆局域网中,具有三块7200rpm(revolutions per minute,转每分)磁盘组建的RAID5(Redundant Array of Independent Disks5,第5代独立磁盘冗余阵列)服务器上,对于不同的日志文件,该日志分析脚本的处理速度在20000行/秒~30000行/秒之间。
实施例六
基于前述的实施例,本申请实施例提供一种日志分类装置,该装置所包括的各模块,以及各模块所包括的各单元,都可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。
图5为本申请实施例日志分类装置的组成结构示意图,如图5所示,日志分类装置500包括日志接收模块501、第一数组提取模块502、数组降维模块503和分类标签确定模块504,其中:
日志接收模块501,用于接收待分类日志;
第一数组提取模块502,用于从所述待分类日志中提取第一数组;其中,第一数组中包含的信息可以用于所述待分类日志的分类;
数组降维模块503,用于根据互斥特征捆绑规则,对所述第一数组降维,得到第二数组;
分类标签确定模块504,用于根据所述第二数组对所述待分类日志进行分类,得到所述待分类日志的分类标签。
在一些实施例中,所述第一数组提取模块502,包括:
特征值获取单元,用于获取所述待分类日志中的特征值,得到第一特征值组;
数值化单元,用于根据每个特征值对应的数值化映射表,将所述第一特征值组中的特征值映射为数值,得到由数值组成的第一数组。
在一些实施例中,所述数组降维模块503,包括:
捆绑数值确定单元,用于根据互斥特征捆绑规则,确定所述第一数组中需要互相捆绑的第一数值;
数值绑定单元,用于将所述需要互相捆绑的第一数值两两绑定,得到第一数值对;
数值映射单元,用于根据数值映射表,将所述第一数值对映射为第二数值;
第二数组确定单元,用于根据所述第一数组中未捆绑的第一数值和所述第二数值确定第二数组。
在一些实施例中,所述捆绑数值确定单元,包括:
日志种类获取子单元,用于获取所述待分类日志的种类;
日志特征组确定子单元,用于根据所述待分类日志的种类与日志特征组的映射关系,确定所述待分类日志包含的第一日志特征组;其中,所述第一日志特征组中日志特征的排列顺序为所述日志特征在所述待分类日志中的出现顺序;
捆绑日志确定子单元,用于根据互斥特征捆绑规则,确定所述第一日志特征组中互相捆绑的日志特征;
数值顺序确定子单元,用于确定所述第一数组中的各个数值在所述待分类日志中的出现顺序;
对应关系确定子单元,用于根据出现顺序的对应关系,确定所述第一数组中的各个数值与所述第一日志特征组中的各个日志特征的对应关系;
捆绑数值确定子单元,用于将所述第一数组中、与所述互相捆绑的日志特征对应的数值确定为需要互相捆绑的第一数值。
实施例七
本申请实施例提供一种日志分类训练装置,该装置所包括的各模块,以及各模块所包括的各单元,都可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。
图6为本申请实施例日志分类训练装置的组成结构示意图,如图6所示,日志分类训练装置600包括分类标签提取模块601、第一数组提取模块602、数组降维模块603和分类器训练模块604,其中:
分类标签提取模块601,用于提取训练样本集合中每个训练日志的分类标签;其中,所述训练样本集合中训练日志的种类相同;
第一数组提取模块602,用于从所述训练日志中提取第一数组;其中,第一数组中包含的信息可以用于所述训练日志的分类;
数组降维模块603,用于根据互斥特征捆绑规则,对所述第一数组降维,得到第二数组;
分类器训练模块604,用于根据每个所述训练日志的分类标签和对应的第二数组,生成用于日志分类的分类器。
在一些实施例中,所述第一数组提取模块602,包括:
特征值获取单元,用于获取所述训练日志中的特征值,得到第一特征值组;
数值化单元,用于根据每个特征值对应的数值化映射表,将所述第一特征值组中的特征值映射为数值,得到由数值组成的第一数组。
在一些实施例中,所述特征值获取单元,包括:
模板信息获取子单元,用于获取所述训练日志的模板信息;
特征值获取子单元,用于去除每个所述训练日志中包含的模板信息,确定每个所述训练日志中的特征值,得到第一特征值组。
在一些实施例中,所述模板信息获取子单元,具体用于:
确定所述训练样本集合中所有训练日志的最大公共子序列;
将所述最大公共子序列确定为所述训练日志的模板信息。
在一些实施例中,所述分类器训练模块,包括:
第一评价权重确定单元,用于根据所述训练日志的个数,平均分配每个所述训练日志的第一评价权重;
弱分类器生成单元,用于根据每个所述训练日志的分类标签、第一评价权重和对应的第二数组,生成M个弱分类器和每个弱分类器对应的分类权重;其中,M个弱分类器包括第一弱分类器、……、第m弱分类器、……、第M弱分类器,1≤m≤M,m、M为正整数;
日志分类器生成单元,用于根据M个弱分类器和每个所述弱分类器的分类权重,生成用于日志分类的分类器;其中,所述用于日志分类的分类器的分类结果由所述M个弱分类器的分类结果的线性组合决定。
在一些实施例中,所述弱分类器生成单元,包括:
第一弱分类器生成子单元,用于根据每个所述训练日志的分类标签、第一评价权重和对应的第二数组,生成第一弱分类器和所述第一弱分类器对应的第一分类权重;
其他弱分类器生成子单元,用于当1<m≤M时,根据第m-1弱分类器对每个所述训练日志的第m-1分类结果和每个所述训练日志的第m-1评价权重,确定每个所述训练日志的第m评价权重;
分类权重生成子单元,用于根据每个所述训练日志的分类标签、第m评价权重和对应的第二数组,生成第m弱分类器和所述第m弱分类器的第m分类权重。
在一些实施例中,所述其他弱分类器生成子单元,具体用于:
根据每个所述训练日志的分类标签、第m评价权重和对应的第二数组,确定所述第二数组对应的日志特征组中每个日志特征的信息增益值;
按照对应的信息增益值由大到小的顺序确定第二数组对应的日志特征组中日志特征的排列顺序;
将排列顺序之后的日志特征确定为日志特征判别树中按顺序排列的各个节点,生成所述日志特征判别树对应的第m弱分类器;
根据所述训练日志的第m评价权重和所述第m弱分类器对所述训练日志的第m分类结果,确定所述第m弱分类器的第m分类权重。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的数据缓存方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read OnlyMemory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
对应地,本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例中提供的日志分类方法,或者,实现上述实施例中提供的日志分类训练方法中的步骤。
对应地,本申请实施例提供一种计算机可读存储介质,其上存储有计算机可执行指令,该计算机可执行指令配置为执行上述实施例中提供的日志分类方法,或者,执行上述实施例中提供的日志分类训练方法。
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
图7为本申请实施例中计算机设备的一种硬件实体示意图,如图7所示,该计算机设备700的硬件实体包括:处理器701、通信接口702和存储器703,其中:
处理器701通常控制计算机设备700的总体操作。
通信接口702可以使计算机设备700通过网络与其他设备通信。
存储器703配置为存储由处理器701可执行的指令和应用,还可以缓存待处理器701以及计算机设备700中各模块待处理或已经处理的数据,可以通过闪存(FLASH)或随机访问存储器(Random Access Memory,RAM)实现。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台云编程文件管理方法设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种日志分类方法,其特征在于,包括:
接收待分类日志;
从所述待分类日志中提取第一数组;其中,第一数组中包含的信息可以用于所述待分类日志的分类;
根据互斥特征捆绑规则,对所述第一数组降维,得到第二数组;
根据所述第二数组对所述待分类日志进行分类,得到所述待分类日志的分类标签。
2.根据权利要求1所述的方法,其特征在于,所述从所述待分类日志中提取第一数组,包括:
获取所述待分类日志中的特征值,得到第一特征值组;
根据每个特征值对应的数值化映射表,将所述第一特征值组中的特征值映射为数值,得到由数值组成的第一数组。
3.根据权利要求1或2所述的方法,其特征在于,所述根据互斥特征捆绑规则,对所述第一数组降维,得到第二数组,包括:
根据互斥特征捆绑规则,确定所述第一数组中需要互相捆绑的第一数值;
将所述需要互相捆绑的第一数值两两绑定,得到第一数值对;
根据数值映射表,将所述第一数值对映射为第二数值;
根据所述第一数组中未捆绑的第一数值和所述第二数值确定第二数组。
4.根据权利要求3所述的方法,其特征在于,所述根据互斥特征捆绑规则,确定所述第一数组中需要互相捆绑的第一数值,包括:
获取所述待分类日志的种类;
根据所述待分类日志的种类与日志特征组的映射关系,确定所述待分类日志包含的第一日志特征组;其中,所述第一日志特征组中日志特征的排列顺序为所述日志特征在所述待分类日志中的出现顺序;
根据互斥特征捆绑规则,确定所述第一日志特征组中互相捆绑的日志特征;
确定所述第一数组中的各个数值在所述待分类日志中的出现顺序;
根据出现顺序的对应关系,确定所述第一数组中的各个数值与所述第一日志特征组中的各个日志特征的对应关系;
将所述第一数组中、与所述互相捆绑的日志特征对应的数值确定为需要互相捆绑的第一数值。
5.一种日志分类训练方法,其特征在于,包括:
提取训练样本集合中每个训练日志的分类标签;其中,所述训练样本集合中训练日志的种类相同;
从所述训练日志中提取第一数组;其中,第一数组中包含的信息可以用于所述训练日志的分类;
根据互斥特征捆绑规则,对所述第一数组降维,得到第二数组;
根据每个所述训练日志的分类标签和对应的第二数组,生成用于日志分类的分类器。
6.根据权利要求5所述的方法,其特征在于,所述从所述训练日志中提取第一数组,包括:
获取所述训练日志中的特征值,得到第一特征值组;
根据每个特征值对应的数值化映射表,将所述第一特征值组中的特征值映射为数值,得到由数值组成的第一数组。
7.根据权利要求6所述的方法,其特征在于,所述获取所述训练日志中的特征值,得到第一特征值组,包括:
获取所述训练日志的模板信息;
去除每个所述训练日志中包含的模板信息,确定每个所述训练日志中的特征值,得到第一特征值组。
8.根据权利要求7所述的方法,其特征在于,所述获取所述训练日志的模板信息,包括:
确定所述训练样本集合中所有训练日志的最大公共子序列;
将所述最大公共子序列确定为所述训练日志的模板信息。
9.根据权利要求5至8中任一项所述的方法,其特征在于,所述根据每个所述训练日志的分类标签和对应的第二数组,生成用于日志分类的分类器,包括:
根据所述训练日志的个数,平均分配每个所述训练日志的第一评价权重;
根据每个所述训练日志的分类标签、第一评价权重和对应的第二数组,生成M个弱分类器和每个弱分类器对应的分类权重;其中,M个弱分类器包括第一弱分类器、……、第m弱分类器、……、第M弱分类器,1≤m≤M,m、M为正整数;
根据M个弱分类器和每个所述弱分类器的分类权重,生成用于日志分类的分类器;其中,所述用于日志分类的分类器的分类结果由所述M个弱分类器的分类结果的线性组合决定。
10.根据权利要求9所述的方法,其特征在于,所述根据每个所述训练日志的分类标签、第一评价权重和对应的第二数组,生成M个弱分类器和每个弱分类器对应的分类权重,包括:
根据每个所述训练日志的分类标签、第一评价权重和对应的第二数组,生成第一弱分类器和所述第一弱分类器对应的第一分类权重;
当1<m≤M时,根据第m-1弱分类器对每个所述训练日志的第m-1分类结果和每个所述训练日志的第m-1评价权重,确定每个所述训练日志的第m评价权重;
根据每个所述训练日志的分类标签、第m评价权重和对应的第二数组,生成第m弱分类器和所述第m弱分类器的第m分类权重。
11.根据权利要求10所述的方法,其特征在于,所述根据每个所述训练日志的分类标签、第m评价权重和对应的第二数组,生成第m弱分类器和所述第m弱分类器的第m分类权重,包括:
根据每个所述训练日志的分类标签、第m评价权重和对应的第二数组,确定所述第二数组对应的日志特征组中每个日志特征的信息增益值;
按照对应的信息增益值由大到小的顺序确定第二数组对应的日志特征组中日志特征的排列顺序;
将排列顺序之后的日志特征确定为日志特征判别树中按顺序排列的各个节点,生成所述日志特征判别树对应的第m弱分类器;
根据所述训练日志的第m评价权重和所述第m弱分类器对所述训练日志的第m分类结果,确定所述第m弱分类器的第m分类权重。
12.一种日志分类装置,其特征在于,包括:
日志接收模块,用于接收待分类日志;
第一数组提取模块,用于从所述待分类日志中提取第一数组;其中,第一数组中包含的信息可以用于所述待分类日志的分类;
数组降维模块,用于根据互斥特征捆绑规则,对所述第一数组降维,得到第二数组;
分类标签确定模块,用于根据所述第二数组对所述待分类日志进行分类,得到所述待分类日志的分类标签。
13.一种日志分类训练装置,其特征在于,包括:
分类标签提取模块,用于提取训练样本集合中每个训练日志的分类标签;其中,所述训练样本集合中训练日志的种类相同;
第一数组提取模块,用于从所述训练日志中提取第一数组;其中,第一数组中包含的信息可以用于所述训练日志的分类;
数组降维模块,用于根据互斥特征捆绑规则,对所述第一数组降维,得到第二数组;
分类器训练模块,用于根据每个所述训练日志的分类标签和对应的第二数组,生成用于日志分类的分类器。
14.一种计算机设备,其特征在于,所述设备包括:存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述权利要求1至4任一项所述的日志分类方法,或者,实现上述权利要求5至11中任一项提供的日志分类训练方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令配置为执行上述权利要求1至4任一项所述的日志分类方法,或者,执行上述权利要求5至11中任一项提供的日志分类训练方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910726839.6A CN112348041B (zh) | 2019-08-07 | 2019-08-07 | 日志分类、日志分类训练方法及装置、设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910726839.6A CN112348041B (zh) | 2019-08-07 | 2019-08-07 | 日志分类、日志分类训练方法及装置、设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112348041A true CN112348041A (zh) | 2021-02-09 |
CN112348041B CN112348041B (zh) | 2022-12-13 |
Family
ID=74367279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910726839.6A Active CN112348041B (zh) | 2019-08-07 | 2019-08-07 | 日志分类、日志分类训练方法及装置、设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112348041B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535655A (zh) * | 2021-06-17 | 2021-10-22 | 北京中联国成科技有限公司 | 一种日志分析方法及装置 |
CN113609162A (zh) * | 2021-07-14 | 2021-11-05 | 远景智能国际私人投资有限公司 | 操作记录的查询方法、装置、服务器及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108229564A (zh) * | 2018-01-05 | 2018-06-29 | 阿里巴巴集团控股有限公司 | 一种数据的处理方法、装置及设备 |
CN109284372A (zh) * | 2018-09-03 | 2019-01-29 | 平安证券股份有限公司 | 用户操作行为分析方法、电子装置及计算机可读存储介质 |
-
2019
- 2019-08-07 CN CN201910726839.6A patent/CN112348041B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108229564A (zh) * | 2018-01-05 | 2018-06-29 | 阿里巴巴集团控股有限公司 | 一种数据的处理方法、装置及设备 |
CN109284372A (zh) * | 2018-09-03 | 2019-01-29 | 平安证券股份有限公司 | 用户操作行为分析方法、电子装置及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
GUOLIN KE 等: "LightGBM: A Highly Efficient Gradient Boosting Decision Tree", 《31ST CONFERENCE ON NEURAL INFORMATION PROCESSING SYSTEMS (NIPS 2017)》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535655A (zh) * | 2021-06-17 | 2021-10-22 | 北京中联国成科技有限公司 | 一种日志分析方法及装置 |
CN113609162A (zh) * | 2021-07-14 | 2021-11-05 | 远景智能国际私人投资有限公司 | 操作记录的查询方法、装置、服务器及存储介质 |
CN113609162B (zh) * | 2021-07-14 | 2023-09-26 | 远景智能国际私人投资有限公司 | 操作记录的查询方法、装置、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112348041B (zh) | 2022-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11513869B2 (en) | Systems and methods for synthetic database query generation | |
US10713597B2 (en) | Systems and methods for preparing data for use by machine learning algorithms | |
US10726356B1 (en) | Target variable distribution-based acceptance of machine learning test data sets | |
US11190562B2 (en) | Generic event stream processing for machine learning | |
US10713306B2 (en) | Content pattern based automatic document classification | |
TW202029079A (zh) | 異常群體識別方法及裝置 | |
CN110689368B (zh) | 一种移动应用内广告点击率预测***设计方法 | |
CN105005590B (zh) | 一种信息媒介的专题阶段性摘要的生成方法 | |
US20200394448A1 (en) | Methods for more effectively moderating one or more images and devices thereof | |
CN112348041B (zh) | 日志分类、日志分类训练方法及装置、设备、存储介质 | |
CN114595689A (zh) | 数据处理方法、装置、存储介质和计算机设备 | |
Tang et al. | An automatic source code vulnerability detection approach based on KELM | |
CN110019017B (zh) | 一种基于访问特征的高能物理文件存储方法 | |
CN112639786B (zh) | 智能地标 | |
CN107315807B (zh) | 人才推荐方法和装置 | |
CN112463964B (zh) | 文本分类及模型训练方法、装置、设备及存储介质 | |
Miao et al. | Informative core identification in complex networks | |
CN114090850A (zh) | 日志分类方法、电子设备及计算机可读存储介质 | |
Sun et al. | Analysis of English writing text features based on random forest and Logistic regression classification algorithm | |
CN109522915B (zh) | 病毒文件聚类方法、装置及可读介质 | |
KR20200010679A (ko) | 이질성 학습 기반의 정보 분류 장치 | |
Torres et al. | A similarity study of I/O traces via string kernels | |
Rochim et al. | Discrimination Index Measurement Method as Complementing H-index based on Jain's Fairness Index | |
Albawi et al. | Review Previous Solutions To Query Based Uncertain Object Determining | |
CN117744634A (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 |