一种日志分析方法和装置制造方法及图纸

技术编号:20842205 阅读:21 留言:0更新日期:2019-04-13 08:42
本发明专利技术提供了一种日志分析方法,包括以下步骤:建立并维护用于故障分析的关键词规则库,其中的每条规则包括故障名称、关键词、日志名称以及诊断逻辑;以及获取日志,并根据所述日志访问所述关键词数据库以遍历所述规则,包括:将获取的所述日志的日志名称与所述规则中的日志名称进行匹配;匹配成功后,读取所述日志的内容以查找是否存在所述规则中包含的关键词;以及查找到所述关键词后,调用所述规则中的诊断逻辑代码以判断故障是否成立。利用本发明专利技术,用户通过增加关键词数据库中的故障关键词和相应判断逻辑,无需修改主程序代码,即可实现检测故障种类的扩充,提高了日志分析程序的易用性及可扩展性。

【技术实现步骤摘要】
一种日志分析方法和装置
本专利技术总体上涉及计算机领域,并且更具体地,涉及一种日志分析方法和装置。
技术介绍
服务器日志记录了服务器的正常运行和异常状态,是定位服务器故障的依据,现场支持或运维工程师通过查看日志记录来诊断服务器发生的故障,并确定维修方案。各大服务器厂商都有配套的机器巡检工具,帮助工程师分析日志,确定故障。现有日志分析工具大多依赖日志中的报错关键词来定位报错信息,通过读取日志信息来确定服务器发生了何种故障,因此关键词的积累是日志分析的关键。服务器发生不同的故障,日志中记录信息也不一样,关键词即不一样,对故障的分析方法也异同。因此,随着发现的故障种类增多,关键词也需要不断扩充,对应故障的检测方法也需要补充相应的代码逻辑。如何在不修改日志分析工具代码的基础上,增加可检索故障的关键词,并且扩充可诊断的故障种类,是本专利技术的关键。
技术实现思路
鉴于此,本专利技术实施例的目的在于提出一种根据关键词分析日志的架构,用户可自定义故障分析规则,通过增加故障关键词和相应判断逻辑,无需修改工具代码,即可实现可检测故障种类的扩充。基于上述目的,本专利技术实施例的一方面提供了一种日志分析方法,包括以下步骤:建立并维护用于故障分析的关键词规则库,其中的每条规则包括故障名称、关键词、日志名称以及诊断逻辑;获取日志,并根据所述日志访问所述关键词数据库以遍历所述规则,包括:将获取的所述日志的日志名称与所述规则中的日志名称进行匹配;匹配成功后,读取所述日志的内容以查找是否存在所述规则中包含的关键词;以及查找到所述关键词后,调用所述规则中的诊断逻辑的代码以判断故障是否成立。在一些实施方式中,所述方法还包括:如果所述故障成立,则输出所述规则中对应的故障名称。在一些实施方式中,所述建立并维护用于故障分析的关键词规则库,其中的每条规则包括故障名称、关键词、日志名称以及诊断逻辑包括:通过增加关键词和修改对应的诊断逻辑来更新所述关键词规则库。在一些实施方式中,所述诊断逻辑由动态库程序实现。在一些实施方式中,所述查找到所述关键词后,调用所述规则中的诊断逻辑的代码以判断故障是否成立包括:通过采用动态加载动态链接库的方法实现对诊断逻辑的调用。在一些实施方式中,所述诊断逻辑可以由脚本程序或shell命令实现。在一些实施方式中,所述脚本程序可以是python脚本。在一些实施方式中,所述方法可由基于C语言的程序实现。在一些实施方式中,所述方法适用于服务器日志的分析。本专利技术实施例的另一方面提供了一种日志分析装置,包括:至少一个处理器;和存储器,所述存储器存储有处理器可运行的程序代码,所述程序代码在被处理器运行时实施如上所述的方法。本专利技术具有以下有益技术效果:本专利技术实施例提供的一种服务器日志分析方法和装置利用构建的故障关键词规则库结构特性,通过用户可配置的故障规则诊断逻辑,可以实现对服务器日志的分析,并且随着发现的故障种类增多、需要补充关键词时,用户通过增加关键词数据库中的故障关键词和相应判断逻辑,无需修改主程序代码,即可实现检测故障种类的扩充,提高了日志分析程序的易用性及可扩展性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。图1是利用本专利技术方法实现日志分析的实施例的逻辑示意图;图2是根据本专利技术实施例的一种服务器日志分析装置的硬件结构示意图。具体实施方式以下描述了本公开的实施例。然而,应该理解,所公开的实施例仅仅是示例,并且其他实施例可以采取各种替代形式。附图不一定按比例绘制;某些功能可能被夸大或最小化以显示特定部件的细节。因此,本文公开的具体结构和功能细节不应被解释为限制性的,而仅仅是作为用于教导本领域技术人员以各种方式使用本专利技术的代表性基础。如本领域普通技术人员将理解的,参考任何一个附图所示出和描述的各种特征可以与一个或多个其他附图中所示的特征组合以产生没有明确示出或描述的实施例。所示特征的组合为典型应用提供了代表性实施例。然而,与本公开的教导相一致的特征的各种组合和修改对于某些特定应用或实施方式可能是期望的。为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术实施例进一步详细说明。日常编程中,常有一些函数不需要进行编译或者可以在多个文件中使用(如数据库输入/输出操作或屏幕控制等标准任务函数)。可以事先对这些函数进行编译,然后将它们放置在一些特殊的目标代码文件中,这些目标代码文件就称为库。库文件中的函数可以通过连接程序与应用程序进行链接,这样就不必在每次开发程序时都对这些通用的函数进行编译了。动态库是一种在已经编译完毕的程序开始启动运行时,才被加载来调用其中函数的库,其加载方式与静态库截然不同。Linux系统下,动态库通常以.so(shareobject)结尾,Windows系统下,动态库常以.dll结尾。基于上述目的,本专利技术实施例提供了一种日志分析方法,如图1所示,包括以下步骤:建立并维护用于故障分析的关键词规则库,其中的每条规则包括故障名称、关键词、日志名称以及诊断逻辑;获取日志,并根据所述日志访问所述关键词数据库以遍历所述规则,包括:将获取的所述日志的日志名称与所述规则中的日志名称进行匹配;匹配成功后,读取所述日志的内容以查找是否存在所述规则中包含的关键词;以及查找到所述关键词后,调用所述规则中的诊断逻辑的代码以判断故障是否成立。其中,如果所述故障成立,则输出所述规则中对应的故障名称。本专利技术首先需要建立并维护用于日志分析的关键词规则库,其中的关键词规则库主要包括故障名称、故障关键词、日志名称、诊断逻辑,如表1所示,表1中示出了两组规则A和B。其中诊断逻辑实现了每条故障的分析过程,是对某日志出现某关键词后来判断该故障是否成立的判定逻辑,由用户自定义编写。在一些实施例中,用户可通过增加关键词和修改对应的诊断逻辑来更新所述关键词规则库。用户若要通过日志分析扩充可检测的故障种类,只需扩充关键词规则库即可。故障名称关键词日志名称诊断逻辑A[A1,A2,…]logAanalysisAB[B1,B2,…]logBanalysisB表1在一些实施例中,诊断逻辑的实现可以是动态库程序。主程序对诊断逻辑的调用可以采用动态加载动态链接库的方法,即使用dlopen、dlsym、dlclose函数。在一些实施例中,所述诊断逻辑可以是脚本程序、shell命令等,例如python脚本、shell脚本等。在根据本专利技术的一个实施例中,根据上文架构设计,填充故障关键词规则库,使用动态库程序的方法实现诊断逻辑,实现日志分析工具,对服务器进行故障诊断。首先,填充关键词规则库,加入硬盘介质错误判断规则,如表2所示;然后,编写诊断逻辑libdisk.so,该诊断逻辑通过对关键词后跟的数据大小来判断是否故障,即实现对日志MegaCliLDPDInfo.txt中出现的“MediaErrorCount”关键词后跟的数值大小判断,若数值大于0,则表示硬盘发生介质错误,若等于0,则表示硬盘没有发生介质错误;运行日志分析的主程序,主程序通过动态本文档来自技高网...

【技术保护点】
1.一种日志分析方法,其特征在于,包括以下步骤:建立并维护用于故障分析的关键词规则库,其中的每条规则包括故障名称、关键词、日志名称以及诊断逻辑;获取日志,并根据所述日志访问所述关键词数据库以遍历所述规则,包括:将获取的所述日志的日志名称与所述规则中的日志名称进行匹配;匹配成功后,读取所述日志的内容以查找是否存在所述规则中包含的关键词;以及查找到所述关键词后,调用所述规则中的诊断逻辑的代码以判断故障是否成立。

【技术特征摘要】
1.一种日志分析方法,其特征在于,包括以下步骤:建立并维护用于故障分析的关键词规则库,其中的每条规则包括故障名称、关键词、日志名称以及诊断逻辑;获取日志,并根据所述日志访问所述关键词数据库以遍历所述规则,包括:将获取的所述日志的日志名称与所述规则中的日志名称进行匹配;匹配成功后,读取所述日志的内容以查找是否存在所述规则中包含的关键词;以及查找到所述关键词后,调用所述规则中的诊断逻辑的代码以判断故障是否成立。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:如果所述故障成立,则输出所述规则中对应的故障名称。3.根据权利要求1所述的方法,其特征在于,所述建立并维护用于故障分析的关键词规则库,其中的每条规则包括故障名称、关键词、日志名称以及诊断逻辑包括:通过增加关键词和修改对应的诊断逻辑来更新所述关键词规则库。4.根据...

【专利技术属性】
技术研发人员:徐亚洲
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1