一种通用日志解析方法、终端设备及存储介质技术

技术编号:25396068 阅读:24 留言:0更新日期:2020-08-25 23:01
本发明专利技术涉及一种通用日志解析方法、终端设备及存储介质,该方法中包括:采集日志消息并根据编辑距离相似度将采集的日志消息划分为不同的日志组;根据分组后的结果提取日志消息中日志消息内容的结构化信息,与提取的日志头中的结构化信息合并后共同作为该日志消息的结构化信息。本发明专利技术根据编辑距离将日志消息进行分组,从分组中提取得到该组的日志类别模板,可以效率较高地解析各种类型的日志消息,具有较高的准确率、实现简单且支持在线处理。

【技术实现步骤摘要】
一种通用日志解析方法、终端设备及存储介质
本专利技术涉及计算机
,尤其涉及一种通用日志解析方法、终端设备及存储介质。
技术介绍
系统日志是现代信息系统不可或缺的一部分。系统日志作为一个通用的数据源,包含了关于系统的重要信息,如使用模式、执行路径和程序运行状态等,是帮助这些信息系统分析运行状态的宝贵资产,以便获得有助于增强系统健康性、稳定性和可用性的见解。对日志的分析可用于信息系统检测执行异常、监视网络故障、发现安全风险和诊断性能问题,甚至查找软件错误。然而日志消息通常是自然语言文本的非结构化数据,开展上述分析需要一个将非结构化的日志数据转化为结构化的数据的过程,称之为日志解析。每个日志消息都是由日志语句打印,并用其消息头和消息内容记录特定的系统事件。消息头通常由日志框架确定,因此可以相对容易地提取,例如时间戳、详细级别(例如ERROR/INFO/DEBUG)和组件(component)等。相反,开发人员编写的日志消息内容通常很难结构化,因为它是由常量字符串和变量值组成的。结构化日志解析器是大多数自动和智能日志挖掘和数据驱动日志分析解决方案的首要步骤,也是日志管理系统中管理日志的关键步骤。仅当日志解析精度足够高时,日志挖掘和分析才有效;因为日志挖掘可能对某些关键事件敏感,关键事件上的4%解析错误可能导致日志挖掘中性能下降一个数量级。一种可能的解析方法是将日志条目解析为LogKey和参数向量。LogKey是日志输出源代码中的固定字符部分,而可变的部分通常构造成参数向量。传统的日志解析方法依赖于手工构建的正则表达式或grok模式来提取事件模板和关键参数,这是一件容易出错且工作量巨大的工作。也有直接从源代码中提取事件模板的静态分析技术,但是这不通用,很多时候分析者并没有应用程序的源码。也有使用数据驱动的方法开展日志解析的,但是在面对越来越复杂的系统和应用,这些方法通常也难以同时满足高效率、高准确率、通用、及时响应、支持在线处理等要求。
技术实现思路
为了解决上述问题,本专利技术提出了一种通用日志解析方法、终端设备及存储介质。具体方案如下:一种通用日志解析方法,包括以下步骤:采集日志消息并根据编辑距离相似度将采集的日志消息划分为不同的日志组;根据分组后的结果提取日志消息中日志消息内容的结构化信息,与提取的日志头中的结构化信息合并后共同作为该日志消息的结构化信息。进一步的,日志组的划分方法为:当处理第一条日志消息时,新增一个日志组,将第一条日志消息添加至该日志组内,并设定该第一条日志消息为日志组的代表样本;当处理后续的日志消息时,计算该日志消息与各日志组对应的代表样本的日志消息内容之间的编辑距离相似度,如果存在编辑距离相似度大于相似度阈值,则将该日志消息添加至编辑距离相似度最高时对应的日志组内,并更新添加后的日志组的代表样本;否则,新增一个日志组,将该日志消息添加至新增的日志组内,并设定为添加后的日志组的代表样本。进一步的,所述编辑距离相似度通过Levenshtein编辑距离进行计算。进一步的,更新日志组的代表样本的方法为:当该日志组每新增额定数量的不重复日志消息后,取该日志组的所有日志消息中日志消息内容长度为所有日志消息中日志消息内容长度的中位数的日志消息作为该日志组的代表样本。进一步的,提取日志消息中日志消息内容的结构化信息的方法为:针对每个日志组设定对应的结构化存储格式,将每条日志消息的日志消息内容按照其对应的结构化存储格式进行提取。进一步的,结构化存储格式包括事件模板类型ID,事件模板和参数向量列表,其中:事件模板类型ID与日志组的ID相对应;事件模板的设定方法为:针对每一日志组,随机选取该日志组内的至少一百条日志消息,以分隔符对选取的每条日志消息的消息内容进行分割,获得相应数量的分割后的日志消息序列;依次遍历所述日志消息序列的各个位置,如果日志消息序列中每一个序列的第i个位置的词频最高的词的出现频率大于频率阈值,则设定该词为事件模板中第i个位置对应的词;否则,将事件模板中第i个位置的内容设定为代表参数变量的特定符号;参数向量列表为日志消息中与系统运行状态相关的变量。进一步的,对日志消息进行日志组划分之前还包括对日志消息进行预处理,将不同日志消息中的属性相同但内容不同的字符串替换为的相同符号。一种通用日志解析终端设备,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本专利技术实施例上述的方法的步骤。一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现本专利技术实施例上述的方法的步骤。本专利技术采用如上技术方案,根据编辑距离将日志消息进行分组,从分组中提取得到该组的日志类别模板,可以效率较高地解析各种类型的日志消息,具有较高的效率、较高的准确率、实现简单且支持在线处理。附图说明图1所示为本专利技术实施例一的流程图。图2所示为该实施例中日志消息预处理的示意图。图3所示为该实施例中日志消息分组的示意图。具体实施方式为进一步说明各实施例,本专利技术提供有附图。这些附图为本专利技术揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本专利技术的优点。现结合附图和具体实施方式对本专利技术进一步说明。实施例一:本专利技术实施例提供了一种通用日志解析方法,如图1所示,所述方法包括以下步骤:S1:日志消息采集。日志消息是系统或应用在运行时生成的,日志消息可以通过Flume和Kafka等数据流传输管道聚合到一个指定的集中存储的位置,以便于进行解析、查询、分析等深入处理。S2:对采集的日志消息进行预处理。如图2所示,该实施例中对日志消息的预处理为将不同日志消息中的属性相同但内容不同的字符串替换为的相同符号,该实施例中上述字符串包括但不限于:IP、文件路径、URL、HDFS中的blk_id、时间日期、纯数字等,替换方法如:针对含IP或IP:端口号的日志的相应位置替换为<ip>;纯数字相应的位置替换为<num>;时刻替换为<time>;日期替换为<date>;以此类推。该实施例中的日志消息的预处理为可选步骤,通过增加预处理的步骤可以一定程度提高整体的解析准确率,避免极端情况下解析出错。S3:根据编辑距离相似度将采集的日志消息划分为不同的日志组。日志消息是长度相对短的文本,一般是使用空格符号作为分割符号的自然语言。日志消息之间同一打印语句的固定部分,即LogKey相比于可变部分一般占比更大,因此,如果把同一打印语句的输出日志消息视为同一类,不同打印语句的输出日志消息视为不同类,那么不同组之间的日志消息的相似性较低。对于日志消息这种短文本,编辑距离是一种合适的刻画日志之间相似程本文档来自技高网
...

【技术保护点】
1.一种通用日志解析方法,其特征在于,包括以下步骤:/n采集日志消息并根据编辑距离相似度将采集的日志消息划分为不同的日志组;/n根据分组后的结果提取日志消息中日志消息内容的结构化信息,与提取的日志头中的结构化信息合并后共同作为该日志消息的结构化信息。/n

【技术特征摘要】
1.一种通用日志解析方法,其特征在于,包括以下步骤:
采集日志消息并根据编辑距离相似度将采集的日志消息划分为不同的日志组;
根据分组后的结果提取日志消息中日志消息内容的结构化信息,与提取的日志头中的结构化信息合并后共同作为该日志消息的结构化信息。


2.根据权利要求1所述的通用日志解析方法,其特征在于:日志组的划分方法为:当处理第一条日志消息时,新增一个日志组,将第一条日志消息添加至该日志组内,并设定该第一条日志消息为日志组的代表样本;当处理后续的日志消息时,计算该日志消息与各日志组对应的代表样本的日志消息内容之间的编辑距离相似度,如果存在编辑距离相似度大于相似度阈值,则将该日志消息添加至编辑距离相似度最高时对应的日志组内,并更新添加后的日志组的代表样本;否则,新增一个日志组,将该日志消息添加至新增的日志组内,并设定为添加后的日志组的代表样本。


3.根据权利要求2所述的通用日志解析方法,其特征在于:所述编辑距离相似度通过Levenshtein编辑距离进行计算。


4.根据权利要求2所述的通用日志解析方法,其特征在于:更新日志组的代表样本的方法为:当该日志组每新增额定数量的不重复日志消息后,取该日志组的所有日志消息中日志消息内容长度为所有日志消息中日志消息内容长度的中位数的日志消息作为该日志组的代表样本。


5.根据权利要求1所述的通用日志解析方法,其特征在于:提取日志消息中日志消息内容的结构化信息的方法为:针...

【专利技术属性】
技术研发人员:姚鸿富陈奋陈荣有
申请(专利权)人:厦门服云信息科技有限公司
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1