一种基于聚类的系统日志解析算法

发布日期:2020年1月17日
一种基于聚类的系统日志解析算法 一种基于聚类的系统日志解析算法

本内容试读结束

下载后可阅读完整内容,立即下载

系统日志是软件系统中检查系统状态的重要来源,系统日志中包含的运行时状态报告以及错误信息被广泛地用于系统运维中。随着现阶段软件系统变得日益庞大和复杂,大型软件系统通常会使用日志分析挖掘技术来自动地从系统日志中发掘系统关键信息,日志数据被用于异常检测、根因分析、行为分析等等应用中。日志数据通常是无结构化的文本数据,在使用数据挖掘算法对日志数据进行训练之前,需要使用日志解析算法对原始日志数据进行结构化处理,本文根据日志数据分析挖掘技术的特点和需求,提出一种基于聚类算法的日志解析算法,可以从原始日志数据中提取消息模板和事件序列,同时提出了一种固定深度的树结构模型对消息模板进行存储以实现新日志消息的快速结构化和异常日志消息的检测。通过在特定系统日志数据上的实验证明本文的日志解析算法具有较高的准确性和通用性。

系统日志是在系统实时运行时记录软硬件问题的文本信息,系统日志可以被用来监视系统运行时发生的事件信息,比方说事件的时间戳、一个请求的IP 地址或者一个异常任务的状态[1]。系统日志蕴含的丰富信息可以帮助系统开发人员和维护人员更好地理解系统行为并在生产过程中检测和定位系统异常[2]。

除此以外,对系统日志的分析和挖掘技术也被应用于金融和政府机构中,比方说,交易系统日志被用来进行异常交易的检测,电力系统日志被用来进行安全隐患的查找。

随着现阶段软件系统规模和复杂度的日益增加,系统日志规模也变得更加庞大,大型软件系统会按照每小时10 gb 的速度产生日志。传统的人工方式对这些日志信息进行分析是非常不切实际的,因此, 全自动的基于日志数据的分析挖掘技术是迫切需要的。

比较典型的日志挖掘技术包括异常检测[3] [4] [5]、行为分析、程序验证[6]、根因分析[7] [8]等等。另外,由于现阶段算法和算力的发展,越来越多的开发人员选择使用机器学习和深度学习技术进行日志挖掘[9] [10]。然而,由于开发人员在记录系统日志为了简单和方便会使用简单文本,因此系统日志通常是无结构的文本数据,在使用数据挖掘算法对系统日志建立模型训练之前,需要使用日志解析算法将原始的日志数据结构化[11]。

Figure 1. A typical log 图1. 一条典型的日志 一条典型的日志,如图1 所示,记录了一件特定的系统事件,包括多个部分:时间戳(记录了事件发生的具体时间),源IP 地址和目的IP 地址,以及原始的消息内容[4]。日志解析技术一般是针对日志事件中的消息部分, 即图1 中的“GET/api/saved_objects/…200 6 ms -9.0B src: 172.23.2.176 dest: 111.187.17.115”。

Dec 27, 2019 @ 15:19:08.000 GET /api/saved_objects/_find?type=index-pattern&per_page=10000&page=1&default_search_operator=OR 200 6ms - 9.0B src: 172.23.2.176 dest: 111.187.17.115



相关标签