CN106919499A - 一种采集日志消息的方法和装置 - Google Patents
一种采集日志消息的方法和装置 Download PDFInfo
- Publication number
- CN106919499A CN106919499A CN201710108804.7A CN201710108804A CN106919499A CN 106919499 A CN106919499 A CN 106919499A CN 201710108804 A CN201710108804 A CN 201710108804A CN 106919499 A CN106919499 A CN 106919499A
- Authority
- CN
- China
- Prior art keywords
- information
- log
- log information
- row
- identification information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种采集日志事件的方法和装置。该方法包括:读取第一行日志消息;若在第一行日志消息中具有与标识信息格式相匹配的第一标识信息,采集第一行日志消息中第一标识信息及其之后的日志消息作为当前日志事件下的日志消息;读取第二行日志消息;若在第二行日志消息中具有与标识信息格式相匹配的第二标识信息,采集第二行日志消息中第二标识信息之前的日志消息作为当前日志事件下的日志消息,并将当前日志事件下采集到的所有日志消息封装成目标日志事件进行存储;其中,先读取第一行日志消息再读取第二行日志消息;在第一标识信息与第二标识信息之间读取的日志消息中均不具有与标识信息格式相匹配的信息。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种采集日志消息的方法和装置。
背景技术
目前,许多日志传输框架采用按行读取日志的方式对日志消息进行采集。具体地,在现有的日志传输框架中,对于应用程序产生的日志消息,每次读取一行日志消息,然后将这一行日志消息封装成一个日志事件(Event)进行存储。
可以理解的是,应用程序产生的日志消息中通常携带有一些标识信息,这些标识信息能够体现出在标识信息之后出现的日志消息的某一属性,也就是说,标识信息与其后出现的日志消息是相互对应的,因此,这些标识信息可以用于对日志消息的搜索。例如,应用程序产生的日志消息中通常具有时间戳。对于一个时间戳来说,该时间戳之后出现的日志消息即是在该时间戳所体现的时间产生的日志消息。因此,当需要搜索特定时间产生的日志消息时,可以通过在日志消息中查找时间戳来提取相应的日志消息。
在应用程序产生的日志消息中,对于一个标识信息来说,该标识信息对应的日志消息可能不仅仅包括与该标识信息位于同一行的日志消息,还可能包括该行之后的一行或多行的日志消息。但是,在现有的日志传输框架中,应用程序产生的每一行日志消息会被封装成一个日志事件进行存储,因此,该标识信息所对应的日志消息可能并没有与该标识信息存储在同一个日志事件中,这就造成日志搜索不便于通过标识信息对日志消息进行查询和提取,从而影响了日志搜索的便利性。
发明内容
本发明所要解决的技术问题是,提供一种采集日志消息的方法和装置,以使得标识信息与其对应的日志消息能够封装在同一个日志事件中进行存储,从而使得日志搜索能够便于通过标识信息对日志消息进行查询和提取,提高日志搜索的便利性。
第一方面,本发明实施例提供了一种采集日志消息的方法,该方法包括:
读取第一行日志消息;
若在所述第一行日志消息中具有与标识信息格式相匹配的第一标识信息,采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息作为当前日志事件下的日志消息;
读取第二行日志消息;
若在所述第二行日志消息中具有与标识信息格式相匹配的第二标识信息,采集所述第二行日志消息中所述第二标识信息之前的日志消息作为所述当前日志事件下的日志消息,并将所述当前日志事件下采集到的所有日志消息封装成目标日志事件进行存储;
其中,所述第二行日志消息是在所述第一行日志消息之后读取的日志消息;在所述第一标识信息与所述第二标识信息之间读取的日志消息中均不具有与标识信息格式相匹配的信息。
可选的,在所述采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息作为当前日志事件下的日志消息之后且在所述读取所示第二行日志消息之前,还包括:
读取所述第三行日志消息;
若在所述第二行日志消息中不具有与标识信息格式相匹配的信息,采集所述第三行日志消息中所有的日志消息作为所述当前日志事件下的日志消息;
其中,所述第三行日志消息是在所述第一行日志消息与所述第二行日志消息之间读取的一行日志消息。
可选的,
所述采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息作为当前日志事件下的日志消息,具体为:采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息保存到缓存;
所述采集所述第二行日志消息中所述第二标识信息之前的日志消息作为所述当前日志事件下的日志消息,具体为:采集所述第二行日志消息中所述第二标识信息之前的日志消息保存到所述缓存;
所述采集所述第三行日志消息中所有的日志消息作为所述当前日志事件下的日志消息,具体为:采集所述第三行日志消息中所有的日志消息保存到所述缓存;
其中,所述缓存中的日志消息为所述当前日志事件下采集的日志消息。
可选的,在所述将所述当前日志事件下采集到的所有日志消息封装成目标日志事件进行存储之后,还包括:
清空所述缓存中的日志消息。
可选的,所述标识信息格式具体为正则表达式,所述第一标识信息、所述第二标识信息均为正则匹配消息体。
第二方面,本发明实施例提供了一种采集日志消息的装置,该装置包括:
第一读取单元,用于读取第一行日志消息;
第一采集单元,用于若在所述第一行日志消息中具有与标识信息格式相匹配的第一标识信息,采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息作为当前日志事件下的日志消息;
第二读取单元,用于读取第二行日志消息;
第二采集单元,用于若在所述第二行日志消息中具有与标识信息格式相匹配的第二标识信息,采集所述第二行日志消息中所述第二标识信息之前的日志消息作为所述当前日志事件下的日志消息,并将所述当前日志事件下采集到的所有日志消息封装成目标日志事件进行存储;
其中,所述第二行日志消息是在所述第一行日志消息之后读取的日志消息;在所述第一标识信息与所述第二标识信息之间读取的日志消息中均不具有与标识信息格式相匹配的信息。
可选的,还包括:
第三读取单元,用于读取所述第三行日志消息;
第三采集单元,用于若在所述第二行日志消息中不具有与标识信息格式相匹配的信息,采集所述第三行日志消息中所有的日志消息作为所述当前日志事件下的日志消息;
其中,所述第三行日志消息是在所述第一行日志消息与所述第二行日志消息之间读取的一行日志消息;
所述第三读取单元在所述第一采集单元执行操作之后触发,所述第三采集单元执行操作之后触发所述第二读取单元。
可选的,
所述第一采集单元对所述当前日志事件下的日志消息的采集方式为:采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息保存到缓存;
所述第二采集单元对所述当前日志事件下的日志消息的采集方式为:采集所述第二行日志消息中所述第二标识信息之前的日志消息保存到所述缓存;
所述第三采集单元对所述当前日志事件下的日志消息的采集方式为:采集所述第三行日志消息中所有的日志消息保存到所述缓存;
其中,所述缓存中的日志消息为所述当前日志事件下采集的日志消息。
可选的,还包括:
清空单元,用于在所述第二采集单元封装并存储所述目标日志事件之后,清空所述缓存中的日志消息。
可选的,所述标识信息格式具体为正则表达式,所述第一标识信息、所述第二标识信息均为正则匹配消息体。
与现有技术相比,本发明具有以下优点:
采用本发明实施例的技术方案,在按照每次读取一行日志消息的方式采集日志消息的过程中,每次读取日志消息时通过对读取的日志消息匹配标识信息格式的方式查找出所读取的日志消息中存在的标识信息,并将在相邻两次查找出的标识信息之间所有读取到的日志消息封装成同一日志事件进行存储,这样标识信息与其对应的日志消息能够全部封装在同一个日志事件中进行存储,因此,在日志搜索的过程中就能够通过标识信息对日志消息进行查询和提取而不会存在遗漏,日志搜索的便利性得以提高。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种应用场景所涉及的系统框架示意图;
图2为本发明实施例中一种采集日志消息的方法的流程示意图;
图3为本发明实施例中另一种采集日志消息的方法的流程示意图;
图4为本发明实施例中一种采集日志消息的装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
发明人经过研究发现,在应用程序产生的日志消息中,对于一个标识信息来说,该标识信息对应的日志消息可能不仅仅包括与该标识信息位于同一行的日志消息,还可能包括该行之后的一行或多行的日志消息。但是,在现有的日志传输框架中,应用程序产生的每一行日志消息会被封装成一个日志事件进行存储,这样就会造成该标识信息所对应的日志消息可能并没有与该标识信息存储在同一个日志事件中,因此,在日志搜索的过程中,通过标识信息对日志消息进行查询和提取,很可能遗漏没有与标识信息封装在同一日志事件中的日志消息,这样就导致日志搜索不能简单地仅通过标识信息进行,从而影响了日志搜索的便利性。
为了解决这一问题,在本发明实施例中,在按照每次读取一行日志消息的方式采集日志消息的过程中,每次读取日志消息时通过对读取的日志消息匹配标识信息格式的方式查找出所读取的日志消息中存在的标识信息,并将在相邻两次查找出的标识信息之间所有读取到的日志消息封装成同一日志事件进行存储,这样标识信息与其对应的日志消息能够全部封装在同一个日志事件中进行存储,因此,在日志搜索的过程中就能够通过标识信息对日志消息进行查询和提取而不会存在遗漏,日志搜索的便利性得以提高。
举例来说,本发明实施例的场景之一,可以是应用到如图1所示的系统中。该系统包括客户端101和服务器端102。其中,客户端101可以读取应用程序产生的日志消息并封装成日志事件的文件再提供给服务器端102进行存储。具体地,客户端101读取第一行日志消息,若在所述第一行日志消息中具有与标识信息格式相匹配的第一标识信息,采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息作为当前日志事件下的日志消息。然后,客户端101读取第二行日志消息,若在所述第二行日志消息中具有与标识信息格式相匹配的第二标识信息,采集所述第二行日志消息中所述第二标识信息之前的日志消息作为所述当前日志事件下的日志消息,并将所述当前日志事件下采集到的所有日志消息封装成目标日志事件,以便将目标日志时间发送给服务器端102进行存储。其中,所述第二行日志消息是在所述第一行日志消息之后读取的日志消息;在所述第一标识信息与所述第二标识信息之间读取的日志消息中均不具有与标识信息格式相匹配的信息。其中,所述系统可以采用ApacheFlume日志传输框架,所述客户端101可以是Flume AvroClient。
可以理解的是,在上述应用场景中,虽然将本发明实施方式的动作描述由客户端101执行,但是这些动作也可以由服务器端101执行,或者还可以部分由客户端101执行、部分由服务器端102执行。本发明在执行主体方面不受限制,只要执行了本发明实施方式所公开的动作即可。
可以理解的是,上述场景仅是本发明实施例提供的一个场景示例,本发明实施例并不限于此场景。
下面结合附图,通过实施例来详细说明本发明实施例中采集日志消息的方法、装置和设备的具体实现方式。
示例性方法
参见图2,示出了本发明实施例中一种采集日志消息的方法的流程示意图。在本实施例中,所述方法例如可以包括以下步骤:
201、读取第一行日志消息。
202、若在所述第一行日志消息中具有与标识信息格式相匹配的第一标识信息,采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息作为当前日志事件下的日志消息。
具体实现时,当应用程序产生一行日志消息时,以该行日志信息作为第一行日志信息,在第一行日志信息中查找是否存在与标识信息格式相匹配的信息。若存在,则以查找到的信息作为第一标识信息,从第一行日志消息中采集第一标识信息及其之后的日志消息到当前日志事件下的日志消息。
作为一种示例,所述标识信息格式例如可以是正则表达式,相匹配出的第一标识信息则为正则匹配消息体。例如,所述正则表达式可以是时间戳的表达式,则第一标识信息具体为时间戳信息。
需要说明的是,被采集到当前日志事件下的日志消息可以按照采集的先后顺序拼接起来。每一次当前日志事件的采集均是以一个标识信息为起始的日志消息,以下一个标识信息之前的日志消息为最后一部分的日志消息。具体到202中,所述第一标识信息为所述当前日志事件下起始的日志消息。
作为一种示例,针对当前日志事件采集日志消息的方式可以采用缓存来实现,也即,所述缓存中的日志消息为所述当前日志事件下采集的日志消息。在当前日志事件采集过程中,被采集到的日志消息保存到缓存并拼接在缓存中已存在的日志消息之后。在当前日志事件采集完毕时,缓存中保存的所有日志消息被存储成日志文件。存储完毕之后,缓存中的日志消息将被清空,以便用于下一个日志事件的采集。具体地,202中,对第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息的采集方式,具体可以用在于:采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息保存到缓存。其中,所述第一标识消息是所述当前日志事件的起始,即所述第一标识信息是所述缓存中起始的信息。
203、读取第二行日志消息;
204、若在所述第二行日志消息中具有与标识信息格式相匹配的第二标识信息,采集所述第二行日志消息中所述第二标识信息之前的日志消息作为所述当前日志事件下的日志消息,并将所述当前日志事件下采集到的所有日志消息封装成目标日志事件进行存储;
其中,所述第二行日志消息是在所述第一行日志消息之后读取的日志消息;在所述第一标识信息与所述第二标识信息之间读取的日志消息中均不具有与标识信息格式相匹配的信息。
具体实现时,在读取第一行日志消息之后,应用程序产生了另一行日志消息时,以该行日志消息作为第二行日志消息,在第二行日志消息中查找是否存在与所述标识信息格式相匹配的信息。若存在,则以查找到的信息作为第二标识信息,从第二行日志消息中采集第二标识信息之前的日志消息到当前日志事件下的日志消息。
作为一种示例,所述标识信息格式例如可以是正则表达式,相匹配出的第二标识信息则为正则匹配消息体。例如,所述正则表达式可以是时间戳的表达式,则第二标识信息具体为时间戳信息。
需要说明的是,被采集到当前日志事件下的日志消息可以按照采集的先后顺序拼接起来。每一次当前日志事件的采集均是以一个标识信息为起始的日志消息,以下一个标识信息之前的日志消息为最后一部分的日志消息。具体到204中,所述第二标识信息之前的日志消息为所述当前日志事件下最后一部分的日志消息。
作为一种示例,针对当前日志事件采集日志消息的方式可以采用缓存来实现,也即,所述缓存中的日志消息为所述当前日志事件下采集的日志消息。在当前日志事件采集过程中,被采集到的日志消息保存到缓存并拼接在缓存中已存在的日志消息之后。在当前日志事件采集完毕时,缓存中保存的所有日志消息被存储成日志文件。存储完毕之后,缓存中的日志消息将被清空,以便用于下一个日志事件的采集。具体地,204中,对第二行日志消息中所述第二标识信息之前的日志消息的采集方式,具体可以用在于:采集所述第二行日志消息中所述第二标识信息之前的日志消息保存到所述缓存。其中,所述第二标识消息之前的日志消息是所述当前日志事件最后一部分的日志消息,即所述第一标识信息是所述缓存中最后一部分的信息。
进一步而言,在将缓存中当前日志事件下采集到的日志消息封装成目标日志事件进行存储之后,还可以清空所述缓存中的日志消息,以便缓存可以用于采集下一个日志事件的日志消息并在下一个日志事件存储之前保存采集到的日志消息。
可以理解的是,当前日志事件的日志消息是两个相邻的标识信息之间读取的日志消息。具体到本实施例来说,第一行日志消息与第二行日志消息之间的读取顺序在于,先读取第一行日志消息再读取第二行日志消息,并且,第一行日志消息中第一标识信息之后直至第二行日志消息中第二标识信息之前没有其他与所述标识信息格式相匹配的标识信息。
作为一种示例,相邻出现的两个标识信息可以位于应用程序产生的前后两行日志消息。具体到本实施例中,所述第一行日志消息中的第一标识信息与所述第二行日志消息中的第二标识信息是相邻的两个标识信息,故所述第一行日志消息的下一行即是所述第二行日志消息。在这种情况下,202执行完成之后可以执行203。在当前日志事件所采集的日志消息中,从所述第一行日志消息中采集的日志消息之后可以拼接上从所述第二行日志消息中采集的日志消息。
作为另一种示例,在相邻出现的两个标识信息所位于的两行日志消息之间应用程序还产生了其他不具有标识信息的一行或多行日志消息。具体到本实施例中,所述第一行日志消息中的第一标识信息与所述第二行日志消息中的第二标识信息是相邻的两个标识信息,故所述第一行日志消息与所述第二行日志消息之间还有具有其他的一行或多行的日志消息。在这种情况下,如图3所示,以第三行日志消息表示位于所述第一行日志消息与所述第二行日志消息之间的任意一行日志消息,在202执行完成之后且203执行之前,还可以包括以下步骤:
301、读取所述第三行日志消息;
302、若在所述第二行日志消息中不具有与标识信息格式相匹配的信息,采集所述第三行日志消息中所有的日志消息作为所述当前日志事件下的日志消息;
其中,所述第三行日志消息是在所述第一行日志消息与所述第二行日志消息之间读取的一行日志消息。
具体实现时,在读取第一行日志消息之后且读取第二行日志消息之前,应用程序产生了又一行日志消息时,以该行日志消息作为第三行日志消息,在第三行日志消息中查找是否存在与所述标识信息格式相匹配的信息。若不存在,将整个第二行日志消息中采集到当前日志事件下的日志消息。
需要说明的是,被采集到当前日志事件下的日志消息可以按照采集的先后顺序拼接起来。具体到302中,所述第三行日志消息拼接到当前日志事件之前采集到的所有日志消息之后。
作为一种示例,针对当前日志事件采集日志消息的方式可以采用缓存来实现,也即,所述缓存中的日志消息为所述当前日志事件下采集的日志消息。在当前日志事件采集过程中,被采集到的日志消息保存到缓存并拼接在缓存中已存在的日志消息之后。在当前日志事件采集完毕时,缓存中保存的所有日志消息被存储成日志文件。存储完毕之后,缓存中的日志消息将被清空,以便用于下一个日志事件的采集。具体地,302中,对第三行日志消息的采集方式,具体可以用在于:采集所述第三行日志消息中所有的日志消息保存到所述缓存。其中,所述第二标识消息之前的日志消息是所述当前日志事件最后一部分的日志消息,即所述第一标识信息是所述缓存中最后一部分的信息。
可以理解的是,在204执行完成之后,所述第二行日志消息可以被看成第一行日志消息,所述第二标识信息可以被看成是第一标识信息,从而再从201开始执行,以便继续采集下一日志事件下的日志消息。
需要说明的是,本实施例所提及的“第一行日志消息”、“第二行日志消息”、“第三行日志消息”中的“第一”、“第二”、“第三”仅用于对不同的三行日志消息进行名称标记,而并不表示这三行日志消息被读取的次序。例如,“第一行日志消息”可以表示应用程序产生的任意一行日志消息,而并非一定是应用程序最先产生的、第一次产生的一行日志消息。此外,“第一行日志消息”、“第二行日志消息”、“第三行日志消息”之间执行顺序的关系可参见本实施例前述的介绍。
在本实施例中,在按照每次读取一行日志消息的方式采集日志消息的过程中,每次读取日志消息时通过对读取的日志消息匹配标识信息格式的方式查找出所读取的日志消息中存在的标识信息,并将在相邻两次查找出的标识信息之间所有读取到的日志消息封装成同一日志事件进行存储,这样标识信息与其对应的日志消息能够全部封装在同一个日志事件中进行存储,因此,在日志搜索的过程中就能够通过标识信息对日志消息进行查询和提取而不会存在遗漏,日志搜索的便利性得以提高。
示例性设备
参见图4,示出了本发明实施例中一种采集日志消息的装置的结构示意图。在本实施例中,所述装置例如具体可以包括:
第一读取单元401,用于读取第一行日志消息;
第一采集单元402,用于若在所述第一行日志消息中具有与标识信息格式相匹配的第一标识信息,采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息作为当前日志事件下的日志消息;
第二读取单元403,用于读取第二行日志消息;
第二采集单元404,用于若在所述第二行日志消息中具有与标识信息格式相匹配的第二标识信息,采集所述第二行日志消息中所述第二标识信息之前的日志消息作为所述当前日志事件下的日志消息,并将所述当前日志事件下采集到的所有日志消息封装成目标日志事件进行存储;
其中,所述第二行日志消息是在所述第一行日志消息之后读取的日志消息;在所述第一标识信息与所述第二标识信息之间读取的日志消息中均不具有与标识信息格式相匹配的信息。
可选的,还包括:
第三读取单元,用于读取所述第三行日志消息;
第三采集单元,用于若在所述第二行日志消息中不具有与标识信息格式相匹配的信息,采集所述第三行日志消息中所有的日志消息作为所述当前日志事件下的日志消息;
其中,所述第三行日志消息是在所述第一行日志消息与所述第二行日志消息之间读取的一行日志消息;
所述第三读取单元在所述第一采集单元执行操作之后触发,所述第三采集单元执行操作之后触发所述第二读取单元。
可选的,
所述第一采集单元402对所述当前日志事件下的日志消息的采集方式为:采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息保存到缓存;
所述第二采集单元404对所述当前日志事件下的日志消息的采集方式为:采集所述第二行日志消息中所述第二标识信息之前的日志消息保存到所述缓存;
所述第三采集单元对所述当前日志事件下的日志消息的采集方式为:采集所述第三行日志消息中所有的日志消息保存到所述缓存;
其中,所述缓存中的日志消息为所述当前日志事件下采集的日志消息。
可选的,还包括:
清空单元,用于在所述第二采集单元封装并存储所述目标日志事件之后,清空所述缓存中的日志消息。
可选的,所述标识信息格式具体为正则表达式,所述第一标识信息、所述第二标识信息均为正则匹配消息体。
在本实施例中,在按照每次读取一行日志消息的方式采集日志消息的过程中,每次读取日志消息时通过对读取的日志消息匹配标识信息格式的方式查找出所读取的日志消息中存在的标识信息,并将在相邻两次查找出的标识信息之间所有读取到的日志消息封装成同一日志事件进行存储,这样标识信息与其对应的日志消息能够全部封装在同一个日志事件中进行存储,因此,在日志搜索的过程中就能够通过标识信息对日志消息进行查询和提取而不会存在遗漏,日志搜索的便利性得以提高。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种采集日志消息的方法,其特征在于,包括:
读取第一行日志消息;
若在所述第一行日志消息中具有与标识信息格式相匹配的第一标识信息,采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息作为当前日志事件下的日志消息;
读取第二行日志消息;
若在所述第二行日志消息中具有与标识信息格式相匹配的第二标识信息,采集所述第二行日志消息中所述第二标识信息之前的日志消息作为所述当前日志事件下的日志消息,并将所述当前日志事件下采集到的所有日志消息封装成目标日志事件进行存储;
其中,所述第二行日志消息是在所述第一行日志消息之后读取的日志消息;在所述第一标识信息与所述第二标识信息之间读取的日志消息中均不具有与标识信息格式相匹配的信息。
2.根据权利要求1所述的方法,其特征在于,在所述采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息作为当前日志事件下的日志消息之后且在所述读取所示第二行日志消息之前,还包括:
读取所述第三行日志消息;
若在所述第二行日志消息中不具有与标识信息格式相匹配的信息,采集所述第三行日志消息中所有的日志消息作为所述当前日志事件下的日志消息;
其中,所述第三行日志消息是在所述第一行日志消息与所述第二行日志消息之间读取的一行日志消息。
3.根据权利要求2所述的方法,其特征在于,
所述采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息作为当前日志事件下的日志消息,具体为:采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息保存到缓存;
所述采集所述第二行日志消息中所述第二标识信息之前的日志消息作为所述当前日志事件下的日志消息,具体为:采集所述第二行日志消息中所述第二标识信息之前的日志消息保存到所述缓存;
所述采集所述第三行日志消息中所有的日志消息作为所述当前日志事件下的日志消息,具体为:采集所述第三行日志消息中所有的日志消息保存到所述缓存;
其中,所述缓存中的日志消息为所述当前日志事件下采集的日志消息。
4.根据权利要求3所述的方法,其特征在于,在所述将所述当前日志事件下采集到的所有日志消息封装成目标日志事件进行存储之后,还包括:
清空所述缓存中的日志消息。
5.根据权利要求1所述的方法,其特征在于,所述标识信息格式具体为正则表达式,所述第一标识信息、所述第二标识信息均为正则匹配消息体。
6.一种采集日志消息的装置,其特征在于,包括:
第一读取单元,用于读取第一行日志消息;
第一采集单元,用于若在所述第一行日志消息中具有与标识信息格式相匹配的第一标识信息,采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息作为当前日志事件下的日志消息;
第二读取单元,用于读取第二行日志消息;
第二采集单元,用于若在所述第二行日志消息中具有与标识信息格式相匹配的第二标识信息,采集所述第二行日志消息中所述第二标识信息之前的日志消息作为所述当前日志事件下的日志消息,并将所述当前日志事件下采集到的所有日志消息封装成目标日志事件进行存储;
其中,所述第二行日志消息是在所述第一行日志消息之后读取的日志消息;在所述第一标识信息与所述第二标识信息之间读取的日志消息中均不具有与标识信息格式相匹配的信息。
7.根据权利要求6所述的装置,其特征在于,还包括:
第三读取单元,用于读取所述第三行日志消息;
第三采集单元,用于若在所述第二行日志消息中不具有与标识信息格式相匹配的信息,采集所述第三行日志消息中所有的日志消息作为所述当前日志事件下的日志消息;
其中,所述第三行日志消息是在所述第一行日志消息与所述第二行日志消息之间读取的一行日志消息;
所述第三读取单元在所述第一采集单元执行操作之后触发,所述第三采集单元执行操作之后触发所述第二读取单元。
8.根据权利要求7所述的装置,其特征在于,
所述第一采集单元对所述当前日志事件下的日志消息的采集方式为:采集所述第一行日志消息中所述第一标识信息及所述第一标识信息之后的日志消息保存到缓存;
所述第二采集单元对所述当前日志事件下的日志消息的采集方式为:采集所述第二行日志消息中所述第二标识信息之前的日志消息保存到所述缓存;
所述第三采集单元对所述当前日志事件下的日志消息的采集方式为:采集所述第三行日志消息中所有的日志消息保存到所述缓存;
其中,所述缓存中的日志消息为所述当前日志事件下采集的日志消息。
9.根据权利要求8所述的装置,其特征在于,还包括:
清空单元,用于在所述第二采集单元封装并存储所述目标日志事件之后,清空所述缓存中的日志消息。
10.根据权利要求6所述的装置,其特征在于,所述标识信息格式具体为正则表达式,所述第一标识信息、所述第二标识信息均为正则匹配消息体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710108804.7A CN106919499B (zh) | 2017-02-27 | 2017-02-27 | 一种采集日志消息的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710108804.7A CN106919499B (zh) | 2017-02-27 | 2017-02-27 | 一种采集日志消息的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106919499A true CN106919499A (zh) | 2017-07-04 |
CN106919499B CN106919499B (zh) | 2021-06-11 |
Family
ID=59454416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710108804.7A Active CN106919499B (zh) | 2017-02-27 | 2017-02-27 | 一种采集日志消息的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106919499B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107729206A (zh) * | 2017-09-04 | 2018-02-23 | 上海斐讯数据通信技术有限公司 | 告警日志的实时分析方法、系统和计算机处理设备 |
CN109614380A (zh) * | 2018-11-27 | 2019-04-12 | 银清科技(北京)有限公司 | 日志处理方法、系统、计算机设备及可读介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103532943A (zh) * | 2013-10-08 | 2014-01-22 | 北京神州绿盟信息安全科技股份有限公司 | web应用防火墙设备和安全防护日志的异步处理方法 |
CN104239475A (zh) * | 2014-09-03 | 2014-12-24 | 北京优特捷信息技术有限公司 | 一种时间序列数据分析方法及装置 |
WO2016180265A1 (zh) * | 2015-05-13 | 2016-11-17 | 阿里巴巴集团控股有限公司 | 日志事件处理方法和装置 |
CN106202004A (zh) * | 2016-07-13 | 2016-12-07 | 上海轻维软件有限公司 | 基于正则表达及分隔符的组合式数据切割方法 |
CN106055451B (zh) * | 2016-05-23 | 2019-02-15 | 努比亚技术有限公司 | 信息处理方法及电子设备 |
-
2017
- 2017-02-27 CN CN201710108804.7A patent/CN106919499B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103532943A (zh) * | 2013-10-08 | 2014-01-22 | 北京神州绿盟信息安全科技股份有限公司 | web应用防火墙设备和安全防护日志的异步处理方法 |
CN104239475A (zh) * | 2014-09-03 | 2014-12-24 | 北京优特捷信息技术有限公司 | 一种时间序列数据分析方法及装置 |
WO2016180265A1 (zh) * | 2015-05-13 | 2016-11-17 | 阿里巴巴集团控股有限公司 | 日志事件处理方法和装置 |
CN106055451B (zh) * | 2016-05-23 | 2019-02-15 | 努比亚技术有限公司 | 信息处理方法及电子设备 |
CN106202004A (zh) * | 2016-07-13 | 2016-12-07 | 上海轻维软件有限公司 | 基于正则表达及分隔符的组合式数据切割方法 |
Non-Patent Citations (2)
Title |
---|
RONIN47: "ELK logstash处理多行事件", 《CSDN》 * |
中国优秀硕士学位论文全文数据库 信息科技辑: "基于机器学习的EMC存储设备", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107729206A (zh) * | 2017-09-04 | 2018-02-23 | 上海斐讯数据通信技术有限公司 | 告警日志的实时分析方法、系统和计算机处理设备 |
CN109614380A (zh) * | 2018-11-27 | 2019-04-12 | 银清科技(北京)有限公司 | 日志处理方法、系统、计算机设备及可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106919499B (zh) | 2021-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109005069B (zh) | 基于天地一体化网络的网络安全知识图谱的关联分析方法 | |
CN107465549A (zh) | 一种分布式消息处理方法和系统 | |
CN103699585B (zh) | 文件的元数据存储以及文件恢复的方法、装置和系统 | |
CN103150493B (zh) | 一种JavaScript代码的混淆方法和装置 | |
CN103559231B (zh) | 一种文件系统配额管理方法、装置及系统 | |
CN105306585B (zh) | 一种多数据中心的数据同步方法 | |
CN105138652A (zh) | 一种企业关联关系识别方法及系统 | |
CN108847957A (zh) | 发现与呈现网络应用访问信息的方法和系统 | |
WO2001042988A3 (en) | Computer network information management system and method | |
CN104301304A (zh) | 基于大型isp互联口的漏洞检测系统及其方法 | |
CN105893484A (zh) | 一种基于文本特征和行为特征的微博Spammer识别方法 | |
CN103744877A (zh) | 部署于互联网的舆情监测应用系统及运用方法 | |
CN104182482B (zh) | 一种新闻列表页判断方法及筛选新闻列表页的方法 | |
CN106209431A (zh) | 一种告警关联方法及网管系统 | |
CN110019519A (zh) | 数据处理方法、装置、存储介质和电子装置 | |
Žunić et al. | Innovative GPS data anomaly detection algorithm inspired by QRS complex detection algorithms in ECG signals | |
CN106919499A (zh) | 一种采集日志消息的方法和装置 | |
CN106682206A (zh) | 一种大数据处理方法及系统 | |
CN106033438A (zh) | 舆情数据存储方法和服务器 | |
CN107959587A (zh) | 基于海量文件的处理结果日志合并装置及方法 | |
CN110335654A (zh) | 一种电子病历的信息抽取方法、系统及计算机设备 | |
CN107437174B (zh) | 虚拟卡片管理方法和装置 | |
CN103530369A (zh) | 一种去重方法及系统 | |
CN111563256A (zh) | 一种安全的大数据收集存放方法 | |
CN107784588A (zh) | 保险用户信息合并方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |