CN117033464B - 一种基于聚类的日志并行解析算法及应用 - Google Patents
一种基于聚类的日志并行解析算法及应用 Download PDFInfo
- Publication number
- CN117033464B CN117033464B CN202311008527.4A CN202311008527A CN117033464B CN 117033464 B CN117033464 B CN 117033464B CN 202311008527 A CN202311008527 A CN 202311008527A CN 117033464 B CN117033464 B CN 117033464B
- Authority
- CN
- China
- Prior art keywords
- log
- algorithm
- group
- word
- clustering
- 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
- 238000004458 analytical method Methods 0.000 title claims abstract description 75
- 238000000034 method Methods 0.000 claims abstract description 50
- 230000000750 progressive effect Effects 0.000 claims abstract description 26
- 238000007781 pre-processing Methods 0.000 claims abstract description 14
- 238000012545 processing Methods 0.000 claims abstract description 12
- 239000013598 vector Substances 0.000 claims description 27
- 238000004364 calculation method Methods 0.000 claims description 13
- 230000014509 gene expression Effects 0.000 claims description 10
- 230000011218 segmentation Effects 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 claims description 6
- 229920006395 saturated elastomer Polymers 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 2
- 238000010606 normalization Methods 0.000 claims description 2
- 238000000605 extraction Methods 0.000 abstract description 5
- 238000012423 maintenance Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000011160 research Methods 0.000 description 3
- 210000001072 colon Anatomy 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明具体为一种基于聚类的日志并行解析算法及应用,使用预处理,初始分组和渐进聚类算法提取日志模板,使用并行处理&组内合并算法加快解析效率;使用即插即用的组间合并算法进一步提升模板解析的准确率。本发明的优点在于:提出一种基于聚类的日志并行解析算法及应用,支持快速准确解析大规模日志数据,具有很大的应用前景;在模板提取阶段,本发明提出一种启发式规则和聚类方法相结合的提取算法,在公开数据集上的平均解析准确率达到94.34%,相比现有的最好方法提升了4.8%‑27.3%;本发明提出一种基于聚类的日志并行解析算法及应用,可以在保证解析精度的同时快速提高解析效率,与现有的并行解析算法相比,该框架并行化程度更高,解析效率快2倍以上。
Description
技术领域
本发明涉及智能运维技术领域,特别是一种基于聚类的日志并行解析算法及应用。
背景技术
随着云计算,微服务等技术的飞速发展,现代计算机和软件系统的规模变得越来越庞大,架构也变得更加复杂,以领域知识为核心的手工运维方式正面临巨大的挑战。为了提升运维人员的工作效率,保障系统7*24小时不间断正常运行,结合了人工智能技术和传统运维场景的AIOps(智能运维)解决方案成为了运维领域研究的热点。智能运维,简单来说,是基于已有的运维数据(日志、调用链、指标信息等),通过机器学习的方式来进一步解决传统运维方式无法解决的问题。它不依赖于人为制定的规则,而是从海量数据中不断地学习并提炼规则。
日志作为一种由时间戳和文本信息组成的半结构化时序文本数据,实时记录了软件系统运行的状态信息,是智能运维领域内一个重要的数据源。如图1所示,日志由源代码中的日志打印语句生成,其中每条日志语句由日志头和日志消息2部分组成。日志头包含一组固定字段,一般记录了时间戳、日志级别、组件名称等信息。日志消息可划分为日志模板和参数序列,其中日志模板被显式的记录在源代码中,对应一条描述系统事件的静态文本,参数序列则为一组动态变量,实时反映系统运行的状态。
日志解析,简单来说,就是从原始的日志语句中提取日志模板和对应的参数,将日志序列转换为日志模板序列。解析后的日志模板序列直接反映了程序执行的过程,因此在智能运维领域中常被用于异常检测,故障预测,根因分析等下游任务。目前,大部分日志管理和分析工具使用正则表达式和定制化规则的方法进行日志解析,这不仅要求使用者全面了解系统的内部结构,同时还要针对系统变更进行不间断的维护,导致整个解析过程效率极低。综上所述,如果将机器学习技术应用于日志解析,开发出一套高效准确的自动化日志解析工具,将对智能运维领域的其它研究带来重要的现实意义。
近年来,许多研究使用了不同的数据挖掘算法,尝试从大规模的日志语句中快速准确的提取日志模板。这些算法背后的核心思想是将同一日志模板打印的日志语句聚成一组,提取这些日志语句之间的公共部分作为模板,将变化部分视为参数。典型的日志解析算法,如Drain、SPINE等,在解析精度和解析效率方面均取得了不错的结果,并在科研和实际生产中被广泛使用。尽管如此,这些算法仍然存在一些问题,例如:1、不同日志语句被划分为同一日志模板的标准是这些日志语句中相同词汇的比例达到了一个固定的阈值。然而在实际情况下,不同日志模板中常量词汇的比例是很难确定的,在解析时,无法找到一个合适的阈值将不同的日志模板很好的区分开;2、大部分日志解析算法仅支持单线程运行,缺乏一套适配多线程框架的解析算法,在解析效率上仍有很大的提升空间。
因此,有必要研究一套支持多线程并行处理的日志解析算法,可以有效的提高日志解析精度和解析效率,为日志解析本身乃至后续的异常检测等下游任务产生巨大的应用价值。
发明内容
本发明的目的旨在至少解决所述技术缺陷之一。
本发明的目的在于克服现有技术的缺点,解决背景技术中所提到的问题,提供一种基于聚类的日志并行解析算法及应用。
本发明的目的通过以下技术方案来实现:一种基于聚类的日志并行解析算法及应用,包括以下步骤:
S1预处理:预处理阶段,从原始的日志语句中提取出日志消息,并对日志消息进行分词,将一条日志消息语句转换成一个词序列;
S2初始分组:初始分组阶段,使用“长度+首词”的分组策略,在预处理阶段生成每个日志消息对应的词序列后,将序列长度相同且首部词汇相同的日志消息分成一组,将大批量日志数据划分成多个日志组,不同日志组中包含不同日志模板生成的日志语句;
S3渐进聚类:初始分组后,算法得到一组日志组,其中每个日志组包含若干个日志模板生成的日志消息,然后对每一个日志组执行聚类算法,提取出该日志组中不同的日志模板;
S4并行处理和组内合并:使用多线程技术实现大规模日志数据的并行化处理,并对不同进程生成的日志模板进行合并,生成最终的解析结果。合并时,对相同启发式规则下的日志模板执行组内合并算法,合并其中相似度高的日志模板。
优选的,还包括步骤S5组间合并,具体为针对不同启发式规则对应的日志组可能具有相同的日志模板这一问题,使用组间合并算法,将不同规则下相似度较高的日志模板进一步合并,在渐进聚类完成后,该组间合并将生成新的日志模板作为解析结果。
优选的,所述组间合并算法是在模板字典的基础上增加一层输出层,将模板字典转换为有向无环图结构,用于记录合并后的日志模板,组间合并算法对日志组中每个待合并的日志模板词序列,计算其和输出层中各日志模板词序列间的Jaccard相似度,Jaccard相似度计算方法采用下述公式1:
优选的,所述步骤1中的预处理阶段包括包含3个子步骤:1)日志消息识别,算法根据用户定义的日志格式生成对应的正则表达式,将日志语句中日志头的各个字段和日志消息分离;2)变量替换,为进一步提高日志解析结果的准确率,算法可根据用户定义的正则表达式把日志消息中常见的变量词汇统一替换为变量标识符“<*>”;3)分词,算法采用常见的分词符对日志消息进行分词,得到日志消息对应的词序列。
优选的,所述步骤3中的渐进聚类阶段包含3个子步骤:1)向量表征,将每条日志消息转化为一个日志向量,通过向量间的距离表征不同日志消息的相似性,考虑到同一日志组中每条日志消息对应的词序列长度相同,本算法提出了一种固定长度编码方式;2)渐进聚类,迭代的使用传统的聚类算法将一组日志向量划分成2个子组,每个子组中包含不同的日志模板对应的日志向量;3)终止条件判定,如果不限制渐进聚类过程,最终生成的日志组将只包含一条日志语句,导致提取出的日志模板粒度过细,因此需要设置合适的终止条件使聚类过程提前终止。
优选的,所述步骤3中的聚类算法包括步骤如下:
1、日志消息向量化,向量化的目的将日志消息映射到向量空间中,使得同一日志模板对应的日志向量间的距离小于不同模板对应的日志向量间的距离,确保每个日志模板对应的日志语句能被完整的聚成一类,对日志组来说,其中每条日志消息对应的词序列的长度是相同的,且各列是相互独立的,因此采用固定长度的编码方式,对日志消息中每一列词汇单独编码,编码细节为下述公式2,对于日志消息的每一列词汇token,本算法首先将日志组中该列出现的所有词汇记录在词表token_list中,然后以token在词表中的下标Index(token)作为该词汇的标识符,归一化后得到该词汇在这一列中的向量表示Embedding,对每一列执行相同的操作,即可得到长度等于日志消息词序列长度的向量表示,该编码方式带来的优势是日志模板中常量之间距离较远,变量距离较近,因此可以根据常量的距离区分不同的日志模版;
2、日志聚类,使用K-Means算法将日志组聚类成2个子组,其中每个日志子组包含不同的日志模板,迭代执行上述过程直到每个日志组中只包含一个日志模板对应的日志消息;
3、终止条件判定,对每个日志组来说,当其中每条日志消息的公共部分达到一定的比例,同时其余的每个词在整个日志组中出现的频率较低时,可认为该日志组内的所有日志消息均由一个模板生成,为了定量化表达这一条件,通过混合阈值计算方法,为公式3和4所示,N,M,T分别为日志组中日志消息的条数,日志消息中词汇的数量,以及每列中词表的大小,ωjk为日志消息中第j列第k个词的权重,由词汇在对应列中出现的频率决定,当出现频率为100%时,该词汇为饱和词汇,权重为1,否则为非饱和词汇,权重为频率的相反数,混合阈值Sln本质上是对每条日志消息,计算其中所有词汇权重的平均值,再对所有日志消息求平均;
通过公式可知,混合阈值的值域为[0,1],且随着聚类过程的进行,日志组中饱和词的比例逐渐增大,该公式的计算结果也不断增大。因此当计算结果超过一个固定的阈值st时,聚类过程终止,公式中可以看出,当某个日志组中日志全部相同时Sln为1。
优选的,所述S4并行处理和组内合并包括以下步骤:
1、日志数据划分,根据并行执行的进程数量将大规模日志数据等分成多个小批量的日志数据;
2、并行解析,使用多线程技术并行解析日志数据,其中并行执行的步骤包括预处理,初始分组和渐进聚类;
3、组内合并,针对不同进程生成的模板字典和日志模板,合并其中启发式规则相同且相似度高的日志模板,本步骤中相似度计算方法如公式5、6,即求解两个词汇数量相同的日志模板间相同词汇的比例,当计算出的相似度超过阈值时,提取两个模板的公共部分作为合并后的模板,并对模板字典进行更新;
优选的,所述步骤2的初始分组阶段还可以使用长度或使用长度+尾词的方式替代“长度+首词”的分组策略。
与现有技术相比,本发明具有以下优点:
1、本发明提出一种基于聚类的日志并行解析算法及应用,支持快速准确解析大规模日志数据,具有很大的应用前景;
2、在模板提取阶段,本发明提出一种启发式规则和聚类方法相结合的提取算法,在公开数据集上的平均解析准确率达到94.34%,相比现有的最好方法提升了4.8%-27.3%;
3、本发明提出一种基于聚类的日志并行解析算法及应用,可以在保证解析精度的同时快速提高解析效率。与现有的并行解析算法相比,该框架并行化程度更高,解析效率快2倍以上。
附图说明
图1为背景技术中提到的系统日志结构示意图;
图2为本发明推出的日志解析算法整体流程;
图3为本发明初始分组阶段中模板字典结构示例图;
图4为本发明组内合并阶段中组内合并算法示例图;
图5为本发明实施例中不同解析算法解析精度对比的示意图;
图6为本发明不同解析算法解析时间随日志数量变化图;
图7为本发明不同解析算法解析时间随日志数量变化图;
图8为本发明并行解析下解析时间随进程数量变化曲线图。
具体实施方式
本发明附加的方面和优点将在下面结合附图的描述中进一步给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
如图1-8所示,一种基于聚类的日志并行解析算法及应用,解析算法的整体框架如图2所示,分为预处理,初始分组,渐进聚类,并行处理和组内合并,组间合并5个步骤。
预处理:预处理阶段,本专利需要从原始的日志语句中提取出日志消息,并对日志消息进行分词,将一条日志消息语句转换成一个词序列。该阶段共包含3个子步骤:1)日志消息识别,算法根据用户定义的日志格式生成对应的正则表达式,将日志语句中日志头的各个字段和日志消息分离;2)变量替换,为进一步提高日志解析结果的准确率,算法可根据用户定义的正则表达式把日志消息中常见的变量词汇(如数字,IP地址,文件路径等)统一替换为变量标识符“<*>”;3)分词,算法采用常见的分词符(空格,冒号,等号,括号等)对日志消息进行分词,得到日志消息对应的词序列。
初始分组:初始分组阶段,本专利使用一组启发式规则将大批量日志数据划分成多个日志组,不同日志组中包含不同日志模板生成的日志语句,参考Drain解析算法中使用的启发式规则,算法同样使用“长度+首词”的分组策略,即在预处理阶段生成每个日志消息对应的词序列后,将序列长度相同且首部词汇相同的日志消息分成一组。为保证在每次解析时,根据日志数据生成的启发式规则可重复使用,本算法设计了一个模板字典来存储所有的规则,结构示例如图3所示。总的来说,初始分组的目的是减少后续渐进聚类过程中待聚类的日志数量,提高解析效率。
渐进聚类这一步为本专利的创新点之一。初始分组后,算法得到一组日志组,其中每个日志组包含若干个日志模板生成的日志消息。渐进聚类就是对每一个日志组执行聚类算法,提取出该日志组中不同的日志模板。本步骤共包含3个子步骤:1)向量表征,将每条日志消息转化为一个日志向量,通过向量间的距离表征不同日志消息的相似性。考虑到同一日志组中每条日志消息对应的词序列长度相同,本算法提出了一种固定长度编码方式;2)渐进聚类,迭代的使用传统的聚类算法将一组日志向量划分成2个子组,每个子组中包含不同的日志模板对应的日志向量。本算法使用K-Means算法完成聚类操作;3)终止条件判定,如果不限制渐进聚类过程,最终生成的日志组将只包含一条日志语句,导致提取出的日志模板粒度过细,因此需要设置合适的终止条件使聚类过程提前终止。本算法结合日志组中饱和词和不饱和词的比例,提出一种混合阈值计算公式来更好的判断聚类程度。
并行处理和组内合并:这一步为本专利的另一个创新点。在模板提取过程中,预处理,初始分组和渐进聚类三个步骤都是串行执行的,没有充分利用底层的系统资源。如果直接将大规模的日志数据划分成多个小批量数据,使用不同的进程并行执行,执行结束后对相同的日志模板进行合并,则可能出现同一日志模板生成的日志语句被分到不同进程下,导致解析出的日志模板不充分的问题,影响日志模板的合并。考虑到多进程并行处理只会影响相同启发式规则对应的日志组内部的解析结果,本算法提出了一种组内合并算法,通过计算每个进程下,同一日志组内日志模板间的相似性,对未充分解析的日志模板进行合并,保证了并行化解析结果的合理性。、
组间合并:该步骤为可选步骤。渐进聚类完成后,本专利可直接输出每个日志组中的日志模板作为解析结果,但是当变量词汇出现在日志语句头部时,初始分组使用的启发式规则可能导致同一日志模板生成的日志语句被分到不同的日志组中。因此,本算法设计了一套组间并机制,将不同规则下相似度较高的日志模板合并。
组间合并算法的示例如图4所示,算法在模板字典的基础上增加一层输出层,将模板字典转换为有向无环图结构,用于记录合并后的日志模板。该算法的基本原理为:对日志组中每个待合并的日志模板词序列,计算其和输出层中各日志模板词序列间的Jaccard相似度,Jaccard相似度计算方法如公式1所示。通过计算找出相似度最大的日志模板,如果最大相似度超过阈值mt,就选择两个日志的最长公共子序列作为合并后的日志模板,否则合并失败,使用该日志模板生成新的输出层节点,加入到输出层节点序列中。
本发明是一种基于聚类的日志并行解析算法,包括预处理,初始分组,渐进聚类,并行解析和组内合并,组间合并等模块。
(1)初始分组模块
初始分组阶段采用的启发式规则除了长度+首词的方式外,还可以只使用长度或使用长度+尾词的方式替代。
(2)渐进聚类模块
渐进聚类过程中,日志向量化方法除了固定长度编码外,还可以使用one-hot编码,预训练语言模型编码等方式替代。聚类算法除了K-means算法外,也可以使用高斯混合聚类算法替代。
(3)并行解析和组内合并模块
组内合并算法中使用的相似度计算公式除了计算同位置相同词汇的比例外,还可以使用Jaccard相似度,最长公共子序列算法计算相似度替代。
(4)组间并模块
组内合并算法的相似度计算除了Jaccard相似度外,还可以使用最长公共子序列算法计算相似度替代。
本发明提出一个实施例:
以数据仓库logparser中16个系统的日志数据(2000条),公开的HDFS(Hadoop分布式文件系统)日志数据集(1100w条)和BGL日志数据集(475w条)为例,本实施例的具体实现步骤如下:
第一阶段,日志数据预处理
(1)根据预定义的日志格式将日志语句划分为由多个字段组成的日志头和日志消息。以HDFS日志数据为例,其格式为“<Date><Time><Pid><Level><Component>:<Content>”。
(2)使用正则表达式识别日志消息中常用的变量词汇,使用标识符“<*>”进行替换。以HDFS日志数据为例,对应的正则表达式包括“blk_-?\d+”,“(\d+\.){3}\d+(:\d+)?”。
(3)借助分词符将日志消息划分成词序列。本专利使用的分词符有空格,冒号,等号,和括号。
第二阶段,分组+聚类提取日志模板
(1)使用启发式规则将大规模的日志消息划分成多个小批量的日志组,每个日志组包含不同日志模板生成的日志消息。本专利使用的启发式规则为日志消息词序列的长度和日志消息头部词汇。
(2)将日志消息词序列转换为日志向量。本专利使用固定长度编码方式,对日志消息词序列中每一列词汇单独编码,最终生成维度和词序列长度相等的日志向量。
(3)使用渐进聚类算法将日志组划分为多个子组,每个子组中只包含一个日志模板对应的日志消息。本专利使用K-Means聚类算法将日志组划分为2个子组,迭代执行此过程并使用混合阈值计算公式确定终止时刻。针对HDFS日志数据集,本专利将阈值st设置为0.5。
(4)每个日志组提取一个日志模板,并将解析结果保存到文件中。对每个日志组,提取所有日志消息的公共部分作为模板中的常量词汇,其余部分用标识符“<*>”代替。使用解析的日志模板和人工标注的真实结果进行比较,可以计算出本算法的解析准确率。图5是本算法和其它日志解析算法在相同数据集上的解析准确率,可以看出,相比目前最先进的算法,本算法的解析准确率提升了4.8%-27.3%。
第三阶段,并行化日志解析+日志模板合并
(1)并行化日志解析和日志模板合并是本专利中的两种优化机制,可以有效提升解析精度和解析效率。并行解析时,将日志数据分成多个组,使用多线程技术,令每个进程单独解析一组数据。解析结束时,每个进程生成一个模板字典和一组日志模板,本专利通过调用组内合并机制对不同进程的解析结果进行合并,最终得到与串行解析相同的模板解析结果。图6为串行条件下不同解析算法的解析效率,可以看出,本算法在解析效率方面略低于Drain,但远高于并行解析算法SPINE。同时Drain仅支持流式解析数据,在并行状态下,本算法的解析效率将超过现有的各种解析算法。如图7所示,在4进程状态下,本算法解析效率提升为原来的3倍,在解析大规模日志数据时具有更大的优势。
(2)当同一日志模板生成的日志语句词序列长度不相同时,本专利算法会出现解析错误的情况。通过调用组间日志模板合并机制,本专利可将不同规则下的日志模板进行进一步的合并,提升解析精度。
Claims (6)
1.一种基于聚类的日志并行解析算法,其特征在于:使用预处理,初始分组和渐进聚类算法提取日志模板,使用并行处理&组内合并算法加快解析效率;使用即插即用的组间合并算法进一步提升模板解析的准确率,其包含的流程为:
S1预处理:预处理阶段,从原始的日志语句中提取出日志消息,并对日志消息进行分词,将一条日志消息语句转换成一个词序列,并用正则表达式替换数字、时间等特殊字符;
S2初始分组:初始分组阶段,使用“长度+首词”的分组策略,在预处理阶段生成每个日志消息对应的词序列后,将序列长度相同且首部词汇相同的日志消息分成一组,将大批量日志数据划分成多个日志组,不同日志组中包含不同日志模板生成的日志语句;
S3渐进聚类:初始分组后,算法得到一组日志组,其中每个日志组包含若干个日志模板生成的日志消息,然后对每一个日志组执行聚类算法,提取出该日志组中不同的日志模板;
S4并行处理和组内合并:使用多线程技术实现大规模日志数据的并行化处理,并对不同进程生成的日志模板进行合并,生成最终的解析结果,合并时,对相同启发式规则下的日志模板执行组内合并算法,合并其中相似度高的日志模板;
所述步骤3中的聚类算法的三个子步骤的细节步骤如下:
1、日志消息向量化,向量化的目的将日志消息映射到向量空间中,使得同一日志模板对应的日志向量间的距离小于不同模板对应的日志向量间的距离,确保每个日志模板对应的日志语句能被完整的聚成一类,对日志组来说,其中每条日志消息对应的词序列的长度是相同的,且各列是相互独立的,因此采用固定长度的编码方式,对日志消息中每一列词汇单独编码,编码细节为下述公式2,对于日志消息的每一列词汇token,本算法首先将日志组中该列出现的所有词汇记录在词表token_list中,然后以token在词表中的下标Index(token)作为该词汇的标识符,归一化后得到该词汇在这一列中的向量表示Embedding,对每一列执行相同的操作,即可得到长度等于日志消息词序列长度的向量表示,该编码方式带来的优势是日志模板中常量之间距离较远,变量距离较近,因此可以根据常量的距离区分不同的日志模版;
2、日志聚类,使用K-Means算法将日志组聚类成2个子组,其中每个日志子组包含不同的日志模板,迭代执行上述过程直到每个日志组中只包含一个日志模板对应的日志消息;
3、终止条件判定,对每个日志组来说,当其中每条日志消息的公共部分达到一定的比例,同时其余的每个词在整个日志组中出现的频率较低时,可认为该日志组内的所有日志消息均由一个模板生成,为了定量化表达这一条件,通过混合阈值计算方法,为公式3和4所示,N,M,T分别为日志组中日志消息的条数,日志消息中词汇的数量,以及每列中词表的大小,ωjk为日志消息中第j列第k个词的权重,由词汇在对应列中出现的频率决定,当出现频率为100%时,该词汇为饱和词汇,权重为1,否则为非饱和词汇,权重为频率的相反数,混合阈值Sln本,质上是对每条日志消息,计算其中所有词汇权重的平均值,再对所有日志消息求平均,从公式中可以看出,当某个日志组中日志全部相同时Sln为1;
所述S4并行处理和组内合并包括以下步骤:
1、日志数据划分,根据并行执行的进程数量将大规模日志数据等分成多个小批量的日志数据;
2、并行解析,使用多线程技术并行解析日志数据,其中并行执行的步骤包括预处理,初始分组和渐进聚类;
3、组内合并,针对不同进程生成的模板字典和日志模板,合并其中启发式规则相同且相似度高的日志模板,本步骤中相似度计算方法如公式5、6,即求解两个词汇数量相同的日志模板间相同词汇的比例,当计算出的相似度超过阈值时,提取两个模板的公共部分作为合并后的模板,并对模板字典进行更新;
2.根据权利要求1所述的一种基于聚类的日志并行解析算法,其特征在于:还包括步骤S5组间合并,具体为针对不同启发式规则对应的日志组可能具有相同的日志模板这一问题,使用组间合并算法,将不同规则下相似度较高的日志模板进一步合并,在渐进聚类完成后,该组间合并将生成新的日志模板作为解析结果。
3.根据权利要求1所述的一种基于聚类的日志并行解析算法,其特征在于:所述组间合并算法是在模板字典的基础上增加一层输出层,将模板字典转换为有向无环图结构,用于记录合并后的日志模板,组间合并算法对日志组中每个待合并的日志模板词序列,计算其和输出层中各日志模板词序列间的Jaccard相似度,Jaccard相似度计算方法采用下述公式1:
4.根据权利要求1所述的一种基于聚类的日志并行解析算法,其特征在于:所述步骤1中的预处理阶段包括包含3个子步骤:1)日志消息识别,算法根据用户定义的日志格式生成对应的正则表达式,将日志语句中日志头的各个字段和日志消息分离;2)变量替换,为进一步提高日志解析结果的准确率,算法可根据用户定义的正则表达式把日志消息中常见的变量词汇统一替换为变量标识符“<*>”;3)分词,算法采用常见的分词符对日志消息进行分词,得到日志消息对应的词序列。
5.根据权利要求1所述的一种基于聚类的日志并行解析算法,其特征在于:所述步骤3中的渐进聚类阶段包含3个子步骤:1)向量表征,将每条日志消息转化为一个日志向量,通过向量间的距离表征不同日志消息的相似性,考虑到同一日志组中每条日志消息对应的词序列长度相同,本算法提出了一种固定长度编码方式;2)渐进聚类,迭代的使用传统的聚类算法将一组日志向量划分成2个子组,每个子组中包含不同的日志模板对应的日志向量;3)终止条件判定,如果不限制渐进聚类过程,最终生成的日志组将只包含一条日志语句,导致提取出的日志模板粒度过细,因此需要设置合适的终止条件使聚类过程提前终止。
6.根据权利要求1所述的一种基于聚类的日志并行解析算法,其特征在于:所述步骤2的初始分组阶段还可以使用长度或使用长度+尾词的方式替代“长度+首词”的分组策略。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311008527.4A CN117033464B (zh) | 2023-08-11 | 2023-08-11 | 一种基于聚类的日志并行解析算法及应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311008527.4A CN117033464B (zh) | 2023-08-11 | 2023-08-11 | 一种基于聚类的日志并行解析算法及应用 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117033464A CN117033464A (zh) | 2023-11-10 |
CN117033464B true CN117033464B (zh) | 2024-04-02 |
Family
ID=88631291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311008527.4A Active CN117033464B (zh) | 2023-08-11 | 2023-08-11 | 一种基于聚类的日志并行解析算法及应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117033464B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118568309A (zh) * | 2024-07-31 | 2024-08-30 | 中南大学 | 一种基于日志审计的企业内部数据流通全流程追溯方法 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019070A (zh) * | 2017-11-10 | 2019-07-16 | 北京安码科技有限公司 | 一种基于Hadoop的安全日志聚类方法与追责系统 |
CN110347827A (zh) * | 2019-06-26 | 2019-10-18 | 南京理工大学 | 面向异构文本运维数据的事件提取方法 |
CN112199344A (zh) * | 2020-10-14 | 2021-01-08 | 杭州安恒信息技术股份有限公司 | 一种日志分类的方法和装置 |
CN112231296A (zh) * | 2020-09-30 | 2021-01-15 | 北京金山云网络技术有限公司 | 一种分布式日志处理方法、装置、系统、设备及介质 |
CN112541074A (zh) * | 2019-09-20 | 2021-03-23 | 中兴通讯股份有限公司 | 日志解析方法、装置、服务器和存储介质 |
WO2021088385A1 (zh) * | 2019-11-06 | 2021-05-14 | 国网上海市电力公司 | 一种在线日志解析方法、系统及其电子终端设备 |
CN113468196A (zh) * | 2021-07-19 | 2021-10-01 | 京东科技控股股份有限公司 | 用于处理数据的方法、装置、系统、服务器和介质 |
CN114063922A (zh) * | 2021-11-17 | 2022-02-18 | 上海理想信息产业(集团)有限公司 | 一种主从库流复制加速方法及装置、设备及介质 |
CN114185971A (zh) * | 2021-12-13 | 2022-03-15 | 平安壹账通云科技(深圳)有限公司 | 多节点日志分析处理方法及系统 |
CN114328688A (zh) * | 2021-12-27 | 2022-04-12 | 国网河北省电力有限公司信息通信分公司 | 一种针对电力能源大数据的管控平台 |
CN114490524A (zh) * | 2022-01-20 | 2022-05-13 | 中国科学技术大学 | 一种基于主从副本数据解耦的高性能分布式键值存储方法 |
CN115221012A (zh) * | 2022-09-21 | 2022-10-21 | 云智慧(北京)科技有限公司 | 一种日志的聚类解析方法、装置及设备 |
CN115409115A (zh) * | 2022-08-31 | 2022-11-29 | 企查查科技有限公司 | 基于用户日志的时序聚类异常终端识别方法 |
US11526504B1 (en) * | 2021-04-30 | 2022-12-13 | Splunk Inc. | Search-time field extraction in a data intake and query system |
CN116489005A (zh) * | 2023-04-12 | 2023-07-25 | 杭州迪普科技股份有限公司 | 一种日志服务系统及日志处理方法 |
-
2023
- 2023-08-11 CN CN202311008527.4A patent/CN117033464B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019070A (zh) * | 2017-11-10 | 2019-07-16 | 北京安码科技有限公司 | 一种基于Hadoop的安全日志聚类方法与追责系统 |
CN110347827A (zh) * | 2019-06-26 | 2019-10-18 | 南京理工大学 | 面向异构文本运维数据的事件提取方法 |
CN112541074A (zh) * | 2019-09-20 | 2021-03-23 | 中兴通讯股份有限公司 | 日志解析方法、装置、服务器和存储介质 |
WO2021088385A1 (zh) * | 2019-11-06 | 2021-05-14 | 国网上海市电力公司 | 一种在线日志解析方法、系统及其电子终端设备 |
CN112231296A (zh) * | 2020-09-30 | 2021-01-15 | 北京金山云网络技术有限公司 | 一种分布式日志处理方法、装置、系统、设备及介质 |
CN112199344A (zh) * | 2020-10-14 | 2021-01-08 | 杭州安恒信息技术股份有限公司 | 一种日志分类的方法和装置 |
US11526504B1 (en) * | 2021-04-30 | 2022-12-13 | Splunk Inc. | Search-time field extraction in a data intake and query system |
CN113468196A (zh) * | 2021-07-19 | 2021-10-01 | 京东科技控股股份有限公司 | 用于处理数据的方法、装置、系统、服务器和介质 |
CN114063922A (zh) * | 2021-11-17 | 2022-02-18 | 上海理想信息产业(集团)有限公司 | 一种主从库流复制加速方法及装置、设备及介质 |
CN114185971A (zh) * | 2021-12-13 | 2022-03-15 | 平安壹账通云科技(深圳)有限公司 | 多节点日志分析处理方法及系统 |
CN114328688A (zh) * | 2021-12-27 | 2022-04-12 | 国网河北省电力有限公司信息通信分公司 | 一种针对电力能源大数据的管控平台 |
CN114490524A (zh) * | 2022-01-20 | 2022-05-13 | 中国科学技术大学 | 一种基于主从副本数据解耦的高性能分布式键值存储方法 |
CN115409115A (zh) * | 2022-08-31 | 2022-11-29 | 企查查科技有限公司 | 基于用户日志的时序聚类异常终端识别方法 |
CN115221012A (zh) * | 2022-09-21 | 2022-10-21 | 云智慧(北京)科技有限公司 | 一种日志的聚类解析方法、装置及设备 |
CN116489005A (zh) * | 2023-04-12 | 2023-07-25 | 杭州迪普科技股份有限公司 | 一种日志服务系统及日志处理方法 |
Non-Patent Citations (1)
Title |
---|
分布式系统中的日志分析及应用;陆杰;李丰;李炼;;高技术通讯;20190415(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117033464A (zh) | 2023-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114610515B (zh) | 基于日志全语义的多特征日志异常检测方法及系统 | |
CN107239529B (zh) | 一种基于深度学习的舆情热点类别划分方法 | |
US20230139663A1 (en) | Text Classification Method and Text Classification Device | |
CN117033464B (zh) | 一种基于聚类的日志并行解析算法及应用 | |
CN111124487A (zh) | 代码克隆检测方法、装置以及电子设备 | |
CN114297987B (zh) | 基于文本分类和阅读理解的文档信息抽取方法及系统 | |
CN113360582B (zh) | 基于bert模型融合多元实体信息的关系分类方法及系统 | |
CN110705272A (zh) | 一种面向汽车发动机故障诊断的命名实体识别方法 | |
CN111611788B (zh) | 一种数据处理的方法及装置、电子设备、存储介质 | |
CN114547241A (zh) | 联合字符感知和句子感知的小样本实体识别方法与模型 | |
CN111694961A (zh) | 一种用于敏感数据泄露检测的关键词语义分类方法与系统 | |
CN113127607A (zh) | 文本数据标注方法、装置、电子设备及可读存储介质 | |
CN117407532A (zh) | 一种利用大模型与协同训练进行数据增强的方法 | |
CN115759071A (zh) | 基于大数据的政务敏感信息识别系统和方法 | |
CN113806198B (zh) | 一种基于深度学习的系统状态诊断方法 | |
CN117828024A (zh) | 一种插件检索方法、装置、存储介质及设备 | |
CN117216226A (zh) | 一种知识定位方法、装置、存储介质及设备 | |
CN111723182A (zh) | 一种用于漏洞文本的关键信息抽取方法及装置 | |
CN110083654A (zh) | 一种面向国防科技领域的多源数据融合方法及系统 | |
CN114842301A (zh) | 一种图像注释模型的半监督训练方法 | |
CN114822726A (zh) | 构建方法、分析方法、装置、存储介质和计算机设备 | |
CN117828007B (zh) | 基于自然语言处理的建设征地移民档案管理方法及系统 | |
CN112256838B (zh) | 相似域名查找方法、装置及电子设备 | |
Zhang et al. | Knowledge Aware Embedding for Distantly Supervised Relation Extraction | |
CN117521615A (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 | ||
CB03 | Change of inventor or designer information |
Inventor after: Tian Fulong Inventor after: He Cheng Inventor after: Du Qingfeng Inventor after: Wu Jiaqi Inventor before: Tian Fulong Inventor before: He Cheng Inventor before: Du Qingfeng Inventor before: Wu Jiaqi |
|
CB03 | Change of inventor or designer information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |