当前位置: 首页 > 专利查询>武汉大学专利>正文

一种分布式日志的自动特征提取方法技术

技术编号:22501875 阅读:17 留言:0更新日期:2019-11-09 02:30
本发明专利技术涉及软件工程及数据挖掘技术,具体涉及一种分布式日志的自动特征提取方法,包括以下步骤:步骤1、根据时序提取和划分日志数据;步骤2、根据划分日志数据,基于频繁序列挖掘序列规则,构建符合频繁要求的日志特征流;步骤3、将特征流中关键信息的字符串转换为正则表达式;步骤4、输出特征流。该方法简化了人工在日志中寻找程序执行的过程的特征项,实现了特征提取的自动化;基于海量日志数据,建立了软件运行中正确的特征流;JSON文件形式的输出和正则表达式生成便于维护人员的人工的检查和理解。减少人工特征定义的失误;降低频繁修改的人力和时间成本。

An automatic feature extraction method of distributed log

The invention relates to software engineering and data mining technology, in particular to an automatic feature extraction method of distributed log, which comprises the following steps: Step 1, extracting and dividing log data according to time sequence; step 2, mining sequence rules based on frequent sequence according to dividing log data, and constructing log feature stream meeting frequent requirements; step 3, mining key information in feature stream String is converted to regular expression; step 4, output characteristic flow. This method simplifies the process of finding the feature items of program execution in the log, and realizes the automation of feature extraction. Based on the massive log data, it establishes the correct feature flow in the software operation. The output in the form of JSON file and the generation of regular expression are convenient for the manual inspection and understanding of maintenance personnel. Reduce the mistakes in defining labor characteristics; reduce the labor and time cost of frequent modification.

【技术实现步骤摘要】
一种分布式日志的自动特征提取方法
本专利技术属于软件工程及数据挖掘
,尤其涉及一种分布式日志的自动特征提取方法。
技术介绍
现代软件日益复杂,规模日益庞大,导致软件维护成本攀升。分布式及异构软件系统的广泛使用,使得人工的监控软件运行状态和发现运行故障变得极为困难。日志是软件运行时不可或缺的输出形式。为了尽早发现分布式系统的故障所在,减少潜在的宕机风险,大量的分布式系统通过实时的日志输出保存运行时软件状态,为维护人员提供数据基础。在现代分布式系统中,维护人员可以基于系统输出的日志,人工检查软件运行时状态,发现和分析故障所在。然而,大量的分布式系统保持全天候运行,每天输出海量的日志数据。这使得人工分析全部日志变为不可能。为了通过日志发现软件运行中出现的故障及潜在风险,维护人员人工定义正确的日志所对应的特征流,并通过将特征流与日志自动匹配的方式,判定日志是否符合特征流。若不符合,则表明软件存在运行故障或潜在风险,可以据此进一步人工分析。然而,维护人员人工定义正确的日志特征是极为耗时和容易出错的,主要的原因是(1)日志本身复杂,人工定义日志特征流容易导致部分细节的丢失;(2)现代软件的持续集成等开发泛型,使得软件版本经常变更,特征流的定义需要频繁更改。基于上面两点原因,人工定义的特征流在实践中仍然会消耗大量的人力和时间成本。
技术实现思路
本专利技术拟解决的核心问题是如何自动化的提取日志特征流,降低人工特征提取造成的成本消耗,并避免人工提取造成的特征流的错误。提出的方法是基于海量的具备正确运行行为的日志,自动划分日志事件中的特征项和值,基于该划分提取频繁子序列,进而组合构建特征流。该方法通过频繁数据挖掘的智能技术,自动处理输入的日志,输出特征流;该方法预期降低人工提取的失误风险,并减低人工频繁修改的成本。本专利技术的方法具有自动化、高效率、高容错、低成本的特点。本专利技术的目的是提供一种通过频繁数据挖掘,自动处理输入的日志,输出特征流的方法。为实现上述目的,本专利技术采用的技术方案是:一种分布式日志的自动特征提取方法,包括以下步骤:步骤1、根据时序提取和划分日志数据;步骤2、根据划分日志数据,基于频繁序列挖掘序列规则,构建符合频繁要求的日志特征流;步骤3、将特征流中关键信息的字符串转换为正则表达式;步骤4、输出特征流。在上述的分布式日志的自动特征提取方法中,步骤1具体实现包括,在原始的日志数据基础上,过滤掉输出程序中的格式化日志部分,并自动划分提取特征项和对应的状态信息,特征项用于后续的序列规则提取。在上述的分布式日志的自动特征提取方法中,步骤2的实现包括,在序列生成阶段,首先挖掘并生成序列长度为1或2的特征流序列,然后根据序列长度为1或2的特征流序列拼接为更长的特征序列,直至无法找到更长的频繁序列。在上述的分布式日志的自动特征提取方法中,步骤3的实现包括,将所有的字符串中的字符转换成正则表达式,所有的正则表达式转变成更短的正则表达式;使用贪心算法将程序同一个状态的状态信息的正则表达式提取出最短的正则表达式。在上述的分布式日志的自动特征提取方法中,步骤4的实现包括,将序列规则输出到JSON文件,JSON文件用于新的日志文件;如果当前的日志信息匹配JSON文件中的某一项,则日志对应的软件处于正常运行状态,否则认为软件出现故障或存在潜在风险。一种分布式日志的自动特征提取的系统,包括分布式系统,日志服务器,系统内的工作站;分布式系统将收集的日志文件利用脚本程序将整个日志文件目录打包成压缩文件发送至日志服务器;日志服务器分析日志数据构建日志特征流,并将特征流转换为正则表达式发送到系统内的工作站;系统内的工作站自动匹配和生成关键信息对应的正则表达式。本专利技术的有益效果:是将原来的人工特征流提取转换为自动特征流提取,降低了人类提取的失误的风险,并减少了频繁修改的人工成本。关键技术点对应的有益效果描述如下:(1)简化了人工在日志中寻找程序执行的过程的特征项,实现了特征提取的自动化;(2)基于海量日志数据,建立了软件运行中正确的特征流;(3)JSON文件形式的输出和正则表达式生成便于维护人员的人工的检查和理解。(4)减少人工特征定义的失误;(5)降低频繁修改的人力和时间成本。附图说明图1为本专利技术一个实施例分布式日志的自动特征提取方法的流程图;图2为本专利技术一个实施例特征流提取方法的部署图;图3为本专利技术一个实施例事件-特征流提取方法。具体实施方式下面结合附图对本专利技术的实施方式进行详细描述。本实施例应用的系统架构或场景:在分布式系统的工作环境下的软件每天会产生大量的日志数据。根据企业架构的不同,分布式系统上的软件产生的日志数据储存的位置也不相同。日志服务器上的日志数据存储着软件的运行状态信息,包括软件的出错信息,软件的正确运行信息,软件的交互信息等。本方法的应用系统场景如图1所示,主要包括分布式系统1,日志服务器2,系统内的工作站3。在分布式数据存储的服务器的基础上,分析系统产生的数据,提取相应的软件工作的模型。维护人员基于本系统来判断之后程序输出的日志信息之中是否包含错误:若程序相应状态日志信息未包含在已经建立的程序的模型中,说明程序出现了运行时的异常。在分布式系统中,分布的各个主机节点有主次之分,次节点(agent)实现具体的应用程序的运行。而主节点(master)的则是资源的统一规划和监控次节点,并且实现次节点程序运行时的资源分配和回收。在分布式系统次节点上,程序执行在一个分布式系统程序运行接口的框架上,并且在执行的过程中,框架上执行的程序会将程序的日志输出打印到为当前框架分配资源的主节点的配置的日志保存目录中的文件中。在日志的收集过程,会利用脚本程序将整个日志文件目录打包成压缩文件,发送至图1中的日志服务器上。在日志服务器上的日志文件会被维护人员查询或处理。本专利技术的应用场景如图1所示,可以将基于本专利技术的软件实现配置在图1的系统中。如图2所示,使用频繁序列挖掘算法对程序在运行时输出的日志进行分析。大致可以分为五个阶段:配置文件设置阶段、数据预处理阶段、序列初步生成阶段、迭代生成阶段、正则表达式转换阶段。(1)配置文件设置阶段。最小支持度和最大支持度:模型认为当特征出现频率大于或等于某个阈值时,特征有效;当出现频率过高时,被认为是多余的特征,并被过滤掉。关键字划分规则:合适的关键字划分不仅可以提高计算速度的,而且不会遗失日志文件的信息。最终序列的长度:程序输出的序列的长度小于等于这个值。应用于模式匹配的正则表达式:包含了所有猜测的日志中可能出现的特定的字符串,及其正则表达式。其它若干配置,在不同场景下优化程序性能的配置项。(2)数据的预处理阶段是截取日志数据中能够表达程序状态信息的特征项。模型对于该特征项的处理是根据日志数据的字符串中的特定符号进行特征项的划分,得到序列计算需要的特征项。(3)序列初步生成阶段是1-频繁项集,2-频繁序列的生成阶段。在此阶段,程序会直接抽取文件中的所有不同的特征项,在文件中出现的次数大于等于最小支持度的特征项作为一个1-频繁序列,1-频繁序列中不存在相同的两个特征项。在2-频繁序列的生成时,会将1-频繁序列进行全联接以生成2-频繁项集。2-频繁序列在文中出现的次数大于等于最小支持度即是当前的所有的2-本文档来自技高网...

【技术保护点】
1.一种分布式日志的自动特征提取方法,其特征是,包括以下步骤:步骤1、根据时序提取和划分日志数据;步骤2、根据划分日志数据,基于频繁序列挖掘序列规则,构建符合频繁要求的日志特征流;步骤3、将特征流中关键信息的字符串转换为正则表达式;步骤4、输出特征流。

【技术特征摘要】
1.一种分布式日志的自动特征提取方法,其特征是,包括以下步骤:步骤1、根据时序提取和划分日志数据;步骤2、根据划分日志数据,基于频繁序列挖掘序列规则,构建符合频繁要求的日志特征流;步骤3、将特征流中关键信息的字符串转换为正则表达式;步骤4、输出特征流。2.如权利要求1所述的分布式日志的自动特征提取方法,其特征是,步骤1具体实现包括,在原始的日志数据基础上,过滤掉输出程序中的格式化日志部分,并自动划分提取特征项和对应的状态信息,特征项用于后续的序列规则提取。3.如权利要求1所述的分布式日志的自动特征提取方法,其特征是,步骤2的实现包括,在序列生成阶段,首先挖掘并生成序列长度为1或2的特征流序列,然后根据序列长度为1或2的特征流序列拼接为更长的特征序列,直至无法找到更长的频繁序列。4.如权利要求1所述的分布式日志的自动特征提取方法,其特征是,...

【专利技术属性】
技术研发人员:玄跻峰张玉虎
申请(专利权)人:武汉大学
类型:发明
国别省市:湖北,42

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

1