日志获取方法、装置、电子设备及计算机可读存储介质与流程

文档序号:17859826发布日期:2019-06-11 22:47阅读:147来源:国知局

本发明涉及信号仿真技术领域,特别涉及一种日志获取方法、装置、电子设备及计算机可读存储介质。



背景技术:

随着信息的发展,数据爆炸式增长,对服务器的处理要求越来越高。为了保证服务器的稳定运行,需要及时可靠的对服务器进行维护和维修。目前,基于日志分析的修护方式也慢慢被维护人员所认可。但是由于服务器一直处于运行状态,因此会产生大量日志,如何在众多日志中快速的分析定位问题,成为了日志分析最大的难题。

目前,日志分析的方式是预先定义日志分析中异常的规则,每个异常对应一个规则,分析日志时会把所有的规则进行匹配;每当对一个规则进行匹配时就要将所有的日志文件进行循环遍历,分析成功后会把定位得到的异常信息提取出来,获取对应的日志信息。也就是说,现在每当分析匹配一条规则就需要遍历所有的日志文件,随着规则和日志文件的增加,分析的效率越来越低。



技术实现要素:

本发明的目的是提供一种日志获取方法、装置、电子设备及计算机可读存储介质,能够避免相关技术中每当分析一条匹配规则就需要遍历所有的日志文件,造成分析的效率低的问题。

为解决上述技术问题,本发明提供一种日志获取方法,包括:

提取匹配规则中的文件名称;

利用所述文件名称生成索引值;

当日志索引信息中存在所述索引值时,获取所述索引值对应的文件路径信息;

利用所述文件路径信息获取对应日志信息。

可选地,利用所述文件名称生成索引值,包括:

利用所述文件名称生成hash索引值。

可选地,获取所述索引值对应的文件路径信息,包括:

获取所述日志索引信息中所述索引值对应的全部元素;其中,每个元素标识一个日志文件;

获取各所述元素的文件路径信息。

可选地,获取各所述元素的文件路径信息,包括:

提取所述匹配规则中的相对路径信息;

利用所述相对路径信息,从各所述文件路径信息筛选出目标文件路径信息作为最终的文件路径信息。

可选地,所述日志索引信息的获取方式,包括:

遍历日志文件,获取各所述日志文件的文件路径信息以及文件名称;

利用所述文件名称生成索引值,并判断所述日志索引信息中是否存在所述索引值;

若不存在,则将所述索引值存入所述日志索引信息中,并将所述文件名称以及所述文件路径信息作为所述索引值对应的元素;

若存在,则将所述文件名称以及所述文件路径信息作为所述索引值对应的元素。

本发明还提供一种日志获取装置,包括:

第一提取模块,用于提取匹配规则中的文件名称;

索引值生成模块,用于利用所述文件名称生成索引值;

路径信息获取模块,用于当日志索引信息中存在所述索引值时,获取所述索引值对应的文件路径信息;

日志获取模块,用于利用所述文件路径信息获取对应日志信息。

可选地,所述路径信息获取模块,包括:

元素获取单元,用于获取所述日志索引信息中所述索引值对应的全部元素;其中,每个元素标识一个日志文件;

路径信息获取单元,用于获取各所述元素的文件路径信息。

可选地,所述路径信息获取单元,包括:

第二提取子单元,用于提取所述匹配规则中的相对路径信息;

路径信息获取子单元,用于利用所述相对路径信息,从各所述文件路径信息筛选出目标文件路径信息作为最终的文件路径信息。

本发明还提供一种电子设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现上述所述的日志获取方法的步骤。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的日志获取方法的步骤。

本发明所提供的一种日志获取方法,包括:提取匹配规则中的文件名称;利用文件名称生成索引值;当日志索引信息中存在索引值时,获取索引值对应的文件路径信息;利用文件路径信息获取对应日志信息。

可见,该方法在根据匹配规则获取对应日志信息时,仅需要将匹配规则中文件名称对应的索引值与日志文件对应的日志索引信息进行对比,即可确定当前日志信息中是否存在与匹配规则相对应的日志信息;不需要根据匹配规则遍历全部的日志文件,仅需要与索引进行对比即可,大大提升了规则匹配效率以及日志获取效率,避免了相关技术中每当分析一条匹配规则就需要遍历所有的日志文件,造成分析的效率低的问题。本发明还提供了一种日志获取装置、电子设备及计算机可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例所提供的日志获取方法的流程图;

图2为本发明实施例所提供的一种日志索引信息中数组的结构示意图;

图3为本发明实施例所提供的一种日志索引信息中数组元素数量示意图;

图4为本发明实施例所提供的日志索引信息的获取方式的流程示意图;

图5为本发明实施例所提供的日志获取装置的结构框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前,每当对一个规则(可以理解为异常匹配规则,也可以称之为匹配规则,后续说明中都统一以匹配规则来代表该处规则)进行匹配时就要将所有的日志文件进行循环遍历,匹配成功后会获取定位得到的日志信息,也就得到了异常信息。也就是说,现在每当分析一条匹配规则就需要遍历所有的日志文件,随着匹配规则和日志文件的增加,分析的效率越来越低。本实施例通过为当前的全部日志文件设置日志索引信息,来避免相关技术中在进行每个匹配规则的匹配过程中均需要循环遍历全部日志文件造成的目标日志信息获取效率低下的问题。具体请参考图1,图1为本发明实施例所提供的日志获取方法的流程图;该方法可以包括:

s101、提取匹配规则中的文件名称。

s102、利用文件名称生成索引值。

本实施例中在利用匹配规则获取对应的日志信息时,首先需要对匹配规则进行处理,得到该匹配规则对应的索引值,以便后续通过该索引值判断当前日志文件对应的日志索引信息中是否存在对应的索引值;若存在,则证明当前日志文件存在与匹配规则相对应的日志文件;若不存在,则证明当前日志文件不存在与匹配规则相对应的日志文件,即可直接进行下一个匹配规则的处理即可,不需要像相关技术那样遍历全部的日志文件来确定是否存在匹配规则对应的日志信息即日志文件。

本实施例中并不限定利用文件名称生成索引值的具体方式,其与日志索引信息中各个索引值获取方式相对应。例如当日志索引信息中的各个索引值是通过对日志文件的文件名称进行hash计算得到的hash值作为索引值时,此时,相应的利用匹配规则中的文件名称也进行对应的hash计算得到的hash值作为索引值。当然,由于hash计算不仅方便且安全可靠,因此优选的,步骤s102利用文件名称生成索引值可以是利用文件名称生成hash索引值。

本实施例中并不对匹配规则的数量进行限定,当只存在一个匹配规则时,按照当前顺序执行即可。当存在多个匹配规则时,可以并行处理各个匹配规则,当然,也可以是循环依次对各个匹配规则进行处理,依次处理时,可以在当前匹配规则执行完本实施例提供的流程后,在对下一个匹配规则执行完本实施例提供的流程,循环执行,直到最后一个匹配规则执行完成。当然,也可以是,步骤s101和步骤s102是并行执行,步骤s103和步骤s104是循环执行。

s103、当日志索引信息中存在索引值时,获取索引值对应的文件路径信息。

本实施例中并不限定日志索引信息的形式,例如该日志索引信息可以是一个日志索引信息表。当然也可以是一个日志索引信息数组。本实施例中也不限定日志索引信息的获取形式。只要通过对全部日志文件进行预处理得到能够标识各个日志文件的日志索引信息即可。也就是说,通过该日志索引信息能够确定对应的日志文件。本实施例并不对日志文件进行预处理的方式进行限定。例如可以是根据日志文件的日志名称确定对应的一个索引值,将该索引值存储在日志索引信息。当然本实施例中并不限定根据日志名称确定索引值的方式。只要每种日志名称可以有唯一对应的索引值即可。例如根据日志文件的日志名称计算对应的hash值,并将该hash值作为索引值,可以称之为hash索引值。也可以是将每个日志文件预处理形成一个数组。本实施例中并不限定数组中每个元素的形式。例如,该数组中每个元素形式可以是文件名称以及文件路径信息,也可以仅是文件路径信息;当然,该数组中每个元素形式也可以是hash-key-value数据集合;此时数组的每个元素都包含三个属性,分别是hash,key,value;其中,value用来存储日志文件路径即文件路径信息,key用来存储日志文件的文件名称,hash是用来存储根据日志文件的文件名称生成的hash索引值。当然,在同一个文件名称存在多个日志文件时,可以通过next用来存储相同hash索引值的下一个元素。数据结构可以如图2所示。日志索引信息中的索引值可以通过itme[hash]表示。例如itme[0]表示该数组中存储的为hash值为0的元素,其对应索引值为0。

本实施例并不限定每种索引值后元素的数量,其可以根据当前日志文件中该索引值对应的日志文件数量确定。可以参考图3。可以看到itme[0]后有两个元素,可以表示具有当前日志文件中具有两个hash值为0的文件名称对应的日志文件。可以看到itme[1]后有一个元素,可以表示具有当前日志文件中具有一个hash值为0的文件名称对应的日志文件。此时在匹配日志时无需进行日志文件的遍历,只需根据匹配规则中日志名称生成的hash直接获取日志索引信息中对应hash值下各元素key的value对应的日志文件的文件信息即可。

为了便于后续根据规则进行日志文件定位,本实施例中日志索引信息的获取方式可以包括:

遍历日志文件,获取各日志文件的文件路径信息以及文件名称;

利用文件名称生成索引值,并判断日志索引信息中是否存在索引值;

若不存在,则将索引值存入日志索引信息中,并将文件名称以及文件路径信息作为索引值对应的元素;

若存在,则将文件名称以及文件路径信息作为索引值对应的元素。

具体的,本实施例中并不对需要遍历的日志文件的数量进行限定。例如,若当前是首次对日志文件进行预处理生成日志索引信息,则可以对当前全部的日志文件进行预处理。若当前不是首次对日志文件进行预处理生成日志索引信息,则可以对上次生成日志索引信息至本次更新日志索引信息时间段内新增的日志文件进行预处理。当然,也可以是在首次生成日志索引信息后,后续系统中每生成新的日志文件就对其直接进行预处理;或者是在首次生成日志索引信息后,后续系统中每隔预定时间就对新生成的日志文件进行预处理。

针对每个日志文件都会利用文件名称生成索引值,并判断日志索引信息中是否存在该索引值,若存在,则说明当前已经存在该文件名称的日志文件,此时可以将该日志文件的文件名称以及文件路径信息作为索引值对应的元素,即作为日志索引信息中该索引值中的一个元素。当然此时该元素可以包含日志文件的文件名称以及文件路径信息;该元素也可以是仅仅包含日志文件的文件路径信息;当然,该元素也可以是包含了索引值、日志文件的文件名称以及文件路径信息,如图2所示。若不存在,则说明当前不存在该文件名称的日志文件,此时,需要在日志索引信息中增添该索引值,并将文件名称以及文件路径信息作为索引值对应的一个元素,此时该索引值只存在一个元素。同样,此时该元素可以包含日志文件的文件名称以及文件路径信息;该元素也可以是仅仅包含日志文件的文件路径信息;当然,该元素也可以是包含了索引值、日志文件的文件名称以及文件路径信息,如图2所示。

具体请参考图4,给出了一种具体的日志索引信息的获取方式的流程示意图。遍历系统所有日志文件,获取每个日志文件的文件路径信息和文件名称;根据文件名称生成hash值,先判断该hash值在数组中是否存在(即判断日志索引信息中是否存在该hash值);如果不存在,则把该hash值存放到数组最后面一个元素,即在数组中新建一个元素,并插入到数组中最后一个位置(也就是在日志索引信息中增加该hash值,并在该hash值后面存储新的元素);如果存在,则获取该hash值元素并在后面添加上新的元素根据next关联,即现获取该hash值对应的各个元素,并在最后插入当前得到的新的元素。

本实施例中步骤s103即当日志索引信息中存在索引值时(说明当前系统日志文件中存在匹配规则对应的日志文件,也就是当前系统存在用户需要的异常日志信息),获取索引值对应的文件路径信息,进而可以根据该文件路径信息获取对应日志信息。但是当日志索引信息中不存在索引值时,说明当前系统日志文件中不存在匹配规则对应的日志文件,也就是当前系统不存在用户需要的异常日志信息,此时可以直接结束该匹配规则的检索过程。

本实施例中并不限定步骤s103的具体过程,其与日志索引信息的生成方式相关。例如,当该索引值仅与文件路径信息对应,则可以直接根据日志索引信息中的索引值获取其对应的文件路径信息即可。当谈,获取索引值对应的文件路径信息也可以包括:

获取日志索引信息中索引值对应的全部元素;其中,每个元素标识一个日志文件;

获取各元素的文件路径信息。

具体的,本实施例中并不限定日志索引信息中每个索引值对应的元素的数量。因此在日志索引信息中存在索引值时,可以获取日志索引信息中索引值对应的全部元素。这里的每个元素标识一个日志文件,也就是说,这里存在2个元素,则可以通过这2个元素获取到两个文件路径信息,进而获取到两个日志文件对应的日志信息。也就是说,这里的元素可以通过文件路径信息标识其对应的日志文件,此时元素中存储文件路径信息;也可以是通过文件路径信息以及文件名称标识其对应的日志文件,此时元素中存储文件路径信息以及文件名称;也可以是通过文件路径信息、文件名称以及hash值标识其对应的日志文件,此时元素中存储文件路径信息、文件名称以及hash值。

本实施例中当目标的索引值对应多个元素时,可以获取全部元素对应的文件路径信息。当然,为了进一步提高匹配规则对应的日志信息的获取效率以及日志信息定位的精准性。优选的,本实施例中获取各元素的文件路径信息可以包括:

提取匹配规则中的相对路径信息;

利用相对路径信息,从各文件路径信息筛选出目标文件路径信息作为最终的文件路径信息。

具体的,本实施例中通过相对路径信息进行二次筛选也就是二次匹配,进而提高最终获取的日志信息的精准性和日志信息的获取效率。由于此时元素中会包含文件路径信息,然而名称相同的日志文件的相对路径信息可以不同,因此,可以利用匹配规则中的相对路径信息进而二次筛选。具体的,利用匹配规则中的相对路径信息,从各文件路径信息筛选出目标文件路径信息作为最终的文件路径信息。也就是说从索引值的全部元素对应的文件路径信息中获取与匹配规则中的相对路径信息一致的文件路径信息作为最终的文件路径信息,进而步骤s104就是根据最终的文件路径信息获取对应日志信息。

具体过程可以是:在进行匹配规则匹配时,先从匹配规则中获取文件模型,并利用该文件名称生成hash值;根据该hash值判断日志索引信息中是否存在该hash值;如果不存在则继续下一个匹配规则;如果存在则获取日志索引信息中该hash值对应的全部元素,判断元素是否为多个;如果该元素只有一个则获取该元素的value值(即文件路径信息),利用value值读取对应的日志文件即日志信息,并执行下一个匹配规则的匹配过程;如果存在多个元素则根据value值进行二次匹配,匹配成功后返回对应的日志文件,并执行下一个匹配规则的匹配过程。

s104、利用文件路径信息获取对应日志信息。

本实施例并不对步骤s104进行限定,其根据文件路径信息可以读取对应的日志文件的日志信息。

下面通过一个具体例子说明上述过程:例如,当匹配规则:文件名称bmc.txt,相对路径为/bmc/bmc.txt。日志文件如下(使用相对路径):

/bmc/bmc.txt

/os/bmc.txt

/os/os.txt

/bmc/fru.txt

假设bmc.txt的hash是0,os.txt的hash值时1,fru.txt的hash值时2。

本实施例的过程可以是根据匹配规则的文件名称计算出索引值为0,在日志索引信息中确定索引值为0有两个元素,分别是/bmc/bmc.txt以及/os/bmc.txt;此时根据匹配规则的相对路径/bmc/bmc.txt确实最终日志信息为第一个日志文件。

基于上述技术方案,本发明实施例提供的日志获取方法,该方法在根据匹配规则获取对应日志信息时,仅需要将匹配规则中文件名称对应的索引值与日志文件对应的日志索引信息进行对比,即可确定当前日志信息中是否存在与匹配规则相对应的日志信息;不需要根据匹配规则遍历全部的日志文件,仅需要与索引进行对比即可,大大提升了规则匹配效率以及日志获取效率,避免了相关技术中每当分析一条匹配规则就需要遍历所有的日志文件,造成分析的效率低的问题。且通过二次匹配,进一步提高日志文件分析效率。

下面对本发明实施例提供的日志获取装置、电子设备及计算机可读存储介质进行介绍,下文描述的日志获取装置、电子设备及计算机可读存储介质与上文描述的日志获取方法可相互对应参照。

请参考图5,图5为本发明实施例所提供的日志获取装置的结构框图;该装置可以包括:

第一提取模块100,用于提取匹配规则中的文件名称;

索引值生成模块200,用于利用文件名称生成索引值;

路径信息获取模块300,用于当日志索引信息中存在索引值时,获取索引值对应的文件路径信息;

日志获取模块400,用于利用文件路径信息获取对应日志信息。

基于上述实施例,路径信息获取模块300可以包括:

元素获取单元,用于获取日志索引信息中索引值对应的全部元素;其中,每个元素标识一个日志文件;

路径信息获取单元,用于获取各元素的文件路径信息。

基于上述实施例,路径信息获取单元,包括:

第二提取子单元,用于提取匹配规则中的相对路径信息;

路径信息获取子单元,用于利用相对路径信息,从各文件路径信息筛选出目标文件路径信息作为最终的文件路径信息。

基于上述任意实施例,该装置还可以包括:

日志索引信息生成模块,用于遍历日志文件,获取各日志文件的文件路径信息以及文件名称;利用文件名称生成索引值,并判断日志索引信息中是否存在索引值;若不存在,则将索引值存入日志索引信息中,并将文件名称以及文件路径信息作为索引值对应的元素;若存在,则将文件名称以及文件路径信息作为索引值对应的元素。

需要说明的是,基于上述任意实施例,所述装置可以是基于可编程逻辑器件实现的,可编程逻辑器件包括fpga,cpld,单片机,处理器等。该可编程逻辑器件可以是在电子设备(如服务器)中。

本发明实施例还提供一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行计算机程序时实现上述任意实施例所述的日志获取方法的步骤。如处理器用于执行计算机程序时实现提取匹配规则中的文件名称;利用文件名称生成索引值;当日志索引信息中存在索引值时,获取索引值对应的文件路径信息;利用文件路径信息获取对应日志信息。

本实施例并不对电子设备进行限定,例如可以是服务器。

本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任意实施例所述的日志获取方法的步骤。如计算机程序被处理器执行时实现提取匹配规则中的文件名称;利用文件名称生成索引值;当日志索引信息中存在索引值时,获取索引值对应的文件路径信息;利用文件路径信息获取对应日志信息。

该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的一种日志获取方法、装置、电子设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1