一种日志存储方法、装置及日志查询方法、装置与流程

文档序号:22313595发布日期:2020-09-23 01:34阅读:102来源:国知局
一种日志存储方法、装置及日志查询方法、装置与流程

本发明涉及日志处理技术领域,特别是涉及一种日志存储方法、装置及日志查询方法、装置。



背景技术:

随着大数据技术行业发展,大规模的集群化分布式系统成为大数据技术的基本构成。一个分布式系统往往由成千上万台业务设备组成,也就是说具有成千上万和业务节点,这些业务节点中计算机程序的运行日志是分布式的且数量非常大。由于日志可以记录计算机程序在运行时的情况,因此可以对日志进行分析以确定业务节点存在的一些问题,那么日志查询对于大规模的集群化分布式系统的运维是非常重要的。

目前对于分布式系统的日志查询是基于ansible自动化运维工具等批量操作指令,配合grep(globallysearcharegularexpressionandprint)文本搜索工具等linux系统命令,在整个分布式系统中遍历所有业务节点的所有日志,进而找到所需要的日志。

由于上述日志查询方式是对整个分布式系统中的每个业务节点进行扫描遍历,扫描的过程需要消耗大量cpu(centralprocessingunit,中央处理器)和内存,影响正常业务的处理,同时日志查询效率很低,耗时往往是小时级的。



技术实现要素:

本发明实施例的目的在于提供一种日志存储方法、装置及日志查询方法、装置,以避免影响正常业务的处理,提高日志查询效率。具体技术方案如下:

第一方面,本发明实施例提供了一种日志存储方法,所述方法应用于分布式系统中的业务节点,所述分布式系统还包括日志归集节点,所述方法包括:

根据业务处理情况生成日志文件;

按照预先建立的所述业务节点与所述日志归集节点之间的映射关系,将所述日志文件发送至对应的日志归集节点,以使所述日志归集节点存储所述日志文件,并针对所存储的日志文件建立索引。

可选的,所述根据业务处理情况生成日志文件的步骤,包括:

根据业务处理情况确定日志内容及日志名称;

将所述日志名称及所述业务节点的节点标识作为键,并将所述日志内容作为值,生成键值对结构的该业务节点的日志文件。

可选的,所述映射关系的建立方式,包括:

获取所述分布式系统中的业务节点以及所述日志归集节点的编号;

基于所述编号根据哈希算法,建立所述业务节点与所述日志归集节点之间的映射关系。

第二方面,本发明实施例提供了一种日志存储方法,所述方法应用于分布式系统中的日志归集节点,所述分布式系统还包括业务节点,所述方法包括:

接收所述业务节点发送的日志文件,其中,所述日志文件为所述业务节点根据业务处理情况生成,并按照预先建立的所述业务节点与所述日志归集节点之间的映射关系发送的;

存储所述日志文件,并针对所存储的日志文件建立索引。

可选的,所述针对所存储的日志文件建立索引的步骤,包括:

针对所存储的日志文件,按照预设时间间隔基于全文搜索引擎建立全文索引。

第三方面,本发明实施例提供了一种日志查询方法,所述方法应用于分布式系统中的日志归集节点,所述分布式系统还包括业务节点,所述方法包括:

接收查询设备发送的日志检索请求,其中,所述日志检索请求包括检索关键字;

基于预先建立的索引,从日志文件中查询所述检索关键字对应的日志内容,其中,所述日志文件为已存储的所述业务节点根据业务处理情况生成,并按照预先建立的所述业务节点与所述日志归集节点之间的映射关系发送的日志文件;

发送所述日志内容至所述查询设备。

可选的,所述索引的建立方式,包括:

针对所存储的日志文件,按照预设时间间隔基于全文搜索引擎建立全文索引。

第四方面,本发明实施例提供了一种日志存储装置,所述装置应用于分布式系统中的业务节点,所述分布式系统还包括日志归集节点,所述装置包括:

日志文件生成模块,用于根据业务处理情况生成日志文件;

日志文件发送模块,用于按照预先建立的所述业务节点与所述日志归集节点之间的映射关系,将所述日志文件发送至对应的日志归集节点,以使所述日志归集节点存储所述日志文件,并针对所存储的日志文件建立索引。

可选的,所述日志文件生成模块包括:

内容名称确定单元,用于根据业务处理情况确定日志内容及日志名称;

日志文件生成单元,用于将所述日志名称及所述业务节点的节点标识作为键,并将所述日志内容作为值,生成键值对结构的该业务节点的日志文件。

可选的,所述装置还包括:

映射关系建立模块,用于获取所述分布式系统中的业务节点以及所述日志归集节点的编号;基于所述编号根据哈希算法,建立所述业务节点与所述日志归集节点之间的映射关系。

第五方面,本发明实施例提供了一种日志存储装置,所述装置应用于分布式系统中的日志归集节点,所述分布式系统还包括业务节点,所述装置包括:

日志文件接收模块,用于接收所述业务节点发送的日志文件,其中,所述日志文件为所述业务节点根据业务处理情况生成,并按照预先建立的所述业务节点与所述日志归集节点之间的映射关系发送的;

日志文件存储模块,用于存储所述日志文件,并针对所存储的日志文件建立索引。

可选的,所述日志文件存储模块包括:

索引建立单元,用于针对所存储的日志文件,按照预设时间间隔基于全文搜索引擎建立全文索引。

第六方面,本发明实施例提供了一种日志查询装置,所述装置应用于分布式系统中的日志归集节点,所述分布式系统还包括业务节点,所述装置包括:

检索请求接收模块,用于接收查询设备发送的日志检索请求,其中,所述日志检索请求包括检索关键字;

日志内容查询模块,用于基于预先建立的索引,从日志文件中查询所述检索关键字对应的日志内容,其中,所述日志文件为已存储的所述业务节点根据业务处理情况生成,并按照预先建立的所述业务节点与所述日志归集节点之间的映射关系发送的日志文件;

日志内容发送模块,用于发送所述日志内容至所述查询设备。

可选的,所述装置还包括:

索引建立模块,用于针对所存储的日志文件,按照预设时间间隔基于全文搜索引擎建立全文索引。

第七方面,本发明实施例提供了一种业务节点,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;

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

所述处理器,用于执行所述存储器上所存放的程序时,实现上述第一方面任一所述的方法步骤。

第八方面,本发明实施例提供了一种日志归集节点,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;

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

所述处理器,用于执行所述存储器上所存放的程序时,实现上述第二方面或第三方面任一所述的方法步骤。

第九方面,本发明实施例提供了一种分布式系统,所述分布式系统包括:

上述第七方面所述的业务节点及上述第八方面所述的日志归集节点。

第十方面,本发明实施例提供了一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行上述第一方面、第二方面及第三方面任一所述的方法步骤。

本发明实施例所提供的方案中,在分布式系统中增加日志归集节点,分布式系统中的业务节点可以根据业务处理情况生成日志文件,按照预先建立的业务节点与日志归集节点之间的映射关系,将日志文件发送至对应的日志归集节点,以使日志归集节点存储日志文件,并针对所存储的日志文件建立全文索引。这样,在进行日志查询时,由于日志文件存储于日志归集节点,所以只需要在日志归集节点中进行日志查询,不会影响业务节点对正常业务的处理,同时由于不需要遍历分布式系统中的成千上万个节点,日志查询的效率得到大大提高。

附图说明

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

图1为本发明实施例所提供的一种分布式系统的结构示意图;

图2为本发明实施例所提供的第一种日志存储方法的流程图;

图3为图2所示实施例中步骤s201的一种具体流程图;

图4为本发明实施例所提供的第二种日志存储方法的流程图;

图5为本发明实施例所提供的一种日志查询方法的流程图;

图6为本发明实施例所提供的第一种日志存储装置的结构示意图;

图7为本发明实施例所提供的第二种日志存储装置的结构示意图;

图8为本发明实施例所提供的一种日志查询装置的结构示意图;

图9为本发明实施例所提供的一种业务节点的结构示意图;

图10为本发明实施例所提供的一种日志归集节点的结构示意图。

具体实施方式

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

为了避免影响正常业务的处理,提高日志查询效率,本发明实施例提供了一种日志存储方法及装置、日志查询方法及装置、分布式系统、业务节点、日志归集节点及计算机可读存储介质。

本发明实施例所提供的日志存储方法、日志查询方法均可以应用于分布式系统,具体来说,日志存储方法可以应用于分布式系统中的业务节点及日志归集节点,日志查询方法则可以应用于分布式系统中的日志归集节点。其中,业务节点指的是运行有业务的服务器;日志归集节点,指的是用于存储日志文件并运行有管理日志文件的应用的服务器;服务器可以是云主机(即虚拟机或虚拟服务器),也可以是物理服务器。如图1所示,该分布式系统可以包括业务节点110以及日志归集节点120,其中,业务节点110及日志归集节点120均可以为多个。业务节点110及日志归集节点120按照预先建立的映射关系建立通信连接,以进行日志数据的传输。

下面首先对本发明实施例所提供的第一种日志存储方法进行介绍。

如图2所示,一种日志存储方法,所述方法应用于分布式系统中的业务节点,所述分布式系统还包括日志归集节点,所述方法包括:

s201,根据业务处理情况生成日志文件;

s202,按照预先建立的所述业务节点与所述日志归集节点之间的映射关系,将所述日志文件发送至对应的日志归集节点,以使所述日志归集节点存储所述日志文件,并针对所存储的日志文件建立索引。

可见,本发明实施例所提供的方案中,在分布式系统中增加日志归集节点,分布式系统中的业务节点可以根据业务处理情况生成日志文件,按照预先建立的业务节点与日志归集节点之间的映射关系,将日志文件发送至对应的日志归集节点,以使日志归集节点存储日志文件,并针对所存储的日志文件建立全文索引。这样,在进行日志查询时,由于日志文件存储于日志归集节点,所以只需要在日志归集节点中进行日志查询,不会影响业务节点对正常业务的处理,同时由于不需要遍历分布式系统中的成千上万个节点,日志查询的效率得到大大提高。

在上述分布式系统中,每个业务节点用于对各种业务进行处理,并根据业务处理情况生成日志文件。对于生成日志文件的具体方式可以为日志生成领域的任意日志文件生成方式,在此不做具体限定及说明。

生成日志文件后,业务节点便可以执行上述步骤s202,即按照预先建立的业务节点与日志归集节点之间的映射关系,将日志文件发送至对应的日志归集节点。为了方便存储日志文件,可以预先建立多个业务节点与多个日志归集节点之间的映射关系。

在一种实施方式中,由于日志归集节点用于存储日志文件,并不进行业务处理,所以每个日志归集节点可以对应有多个业务节点,用于存储该多个业务节点的日志文件,也就是说,上述映射关系中,一个日志归集节点可以对应有多个业务节点。这样,在分布式系统中,日志归集节点的数量可以远小于业务节点的数量,能够方便进行日志查询。

业务节点可以实时将日志文件发送至对应的日志归集节点,也就是说,没生成一个日志文件,业务节点便可以将该日志文件发送至日志归集节点,以便日志归集节点能够尽快存储日志文件并建立索引。

日志归集节点接收到业务节点发送的日志文件后,便可以存储该日志文件,并针对所存储的日志文件建立索引,以方便后续进行日志查询。作为一种实施方式,日志归集节点可以采用表格的形式存储日志文件,表格中的每一列可以为一项日志数据,例如,可以如下表所示:

在这种情况下,日志归集节点可以按照上述表格的列名建立索引,这样,当需要进行日志查询时,便可以根据该索引确定所要查询的日志所在的行,进而获取所要查询的日志内容。

由于在本发明实施例所提供的日志存储方法中,由于分布式系统一般均是内网部署,业务节点所消耗的资源主要是日志文件传输的io(input/output,输入/输出)资源以及内网带宽,所以网络消耗基本可以忽略,网络延时也可以忽略。

作为本发明实施例的一种实施方式,如图3所示,上述根据业务处理情况生成日志文件的步骤,可以包括:

s301,根据业务处理情况确定日志内容及日志名称;

业务节点在处理各项业务时,会根据业务情况生成日志文件,具体来说,业务节点可以根据业务处理情况确定日志内容及日志名称,其中,日志名称可以根据业务的具体内容、日志类型等因素确定,日志内容即为当前生成的日志的具体内容,可以包括日志创建时间、业务节点ip、日志类型等信息。

s302,将所述日志名称及所述业务节点的节点标识作为键,并将所述日志内容作为值,生成键值对结构的该业务节点的日志文件。

进而,业务节点可以将日志名称及该业务节点的节点标识作为键,并将日志内容作为值,生成键值对结构的日志文件,发送至对应的日志归集节点。该日志文件也就是该业务节点的日志文件,各个业务节点均可以按照上述方式生成对应的日志文件,并将各自的日志文件发送至对应的日志归集节点。其中,业务节点的节点标识可以为任意能够唯一标识该业务节点的信息,例如,可以为编号、ip地址等,在此不做具体限定。

日志归集节点接收到该键值对结构的日志文件后,便可以快速将该日志文件进行存储。在一种实施方式中,日志归集节点可以将该日志文件作为一行新的内容存储至上述表格中。

可见,在本实施例中,业务节点可以根据业务处理情况确定日志内容及日志名称,将日志名称及业务节点的节点标识作为键,并将日志内容作为值,生成键值对结构的该业务节点的日志文件。这样,可以方便日志归集节点对日志文件进行存储,提高日志存储效率。

作为本发明实施例的一种实施方式,上述映射关系的建立方式,可以包括:

获取所述分布式系统中的业务节点以及所述日志归集节点的编号;基于所述编号根据哈希算法,建立所述业务节点与所述日志归集节点之间的映射关系。

由于分布式系统中的业务节点的数量一般是非常大的,为了方便进行日志存储,可以预先建立业务节点与日志归集节点之间的映射关系。具体来说,可以分别对分布式系统中的业务节点以及日志归集节点进行人工编号,例如,可以从0开始,按照自然数的顺序进行编号。

接下来,可以基于业务节点以及日志归集节点的编号,根据哈希算法,建立业务节点与日志归集节点之间的映射关系,具体来说,业务节点可以获取分布式系统中的业务节点以及日志归集节点的编号,进而可以对每个业务节点的编号进行哈希运算得到哈希值,将日志归集节点编号与该哈希值相同的日志归集节点作为该业务节点所对应的日志归集节点。当然基于上述映射关系的建立也可以通过人工实现,在此不做具体限定。

可见,在本实施例中,可以获取分布式系统中的业务节点以及日志归集节点的编号,基于编号根据哈希算法,建立业务节点与日志归集节点之间的映射关系,这样,可以快速建立业务节点与日志归集节点之间的映射关系,并且可以保证每个业务节点均存在对应的日志归集节点,保证日志文件的顺利存储。

相应于上述第一种日志存储方法,本发明实施例还提供了另一种日志存储方法,下面对本发明实施例所提供的第二种日志存储方法进行介绍。本发明实施例所提供的第二种日志存储方法可以应用于上述分布式系统中的日志归集节点。

如图4所示,一种日志存储方法,所述方法应用于分布式系统中的日志归集节点,所述分布式系统还包括业务节点,所述方法包括:

s401,接收所述业务节点发送的日志文件;

其中,所述日志文件为所述业务节点根据业务处理情况生成,并按照预先建立的所述业务节点与所述日志归集节点之间的映射关系发送的。

s402,存储所述日志文件,并针对所存储的日志文件建立索引。

可见,本发明实施例所提供的方案中,在分布式系统中增加日志归集节点,分布式系统中的日志归集节点可以接收业务节点发送的日志文件,其中,日志文件为业务节点根据业务处理情况生成,并按照预先建立的业务节点与日志归集节点之间的映射关系发送的,存储日志文件,并针对所存储的日志文件建立索引。这样,在进行日志查询时,由于日志文件存储于日志归集节点,所以只需要在日志归集节点中进行日志查询,不会影响业务节点对正常业务的处理,同时由于不需要遍历分布式系统中的成千上万个节点,日志查询的效率得到大大提高。

由于上述步骤s401及步骤s402的具体实施方式已经在上述第一种日志存储方法实施例部分进行介绍,在此不再赘述。

作为本发明实施例的一种实施方式,上述针对所存储的日志文件建立索引的步骤,可以包括:

针对所存储的日志文件,按照预设时间间隔基于全文搜索引擎建立全文索引。

日志归集节点接收到业务节点发送的日志文件后,可以对该日志文件进行存储,并针对所存储的日志文件,按照预设时间间隔基于全文搜索引擎建立全文索引。

其中,预设时间间隔可以根据日志查询的实时性要求设定,如果日志查询的实时性要求较高,那么预设时间间隔可以较短,例如,可以为1分钟、2分钟、100秒等。如果日志查询的实时性要求较地,那么减少建立全文索引所耗费的资源,预设时间间隔可以较长,例如,可以为5分钟、10分钟、半个小时等。

在一种实施方式中,由于全文搜索引擎lucene可以选择压缩方式来降低磁盘使用率,日志归集节点在进行数据清理等操作时,能够保证磁盘可用,不影响进行日志查询,所以可以采用全文搜索引擎lucene建立全文索引。当然也可以采用全文搜索引擎elasticsearch或开源分析数据库clickhouse等建立全文索引,这也是合理的。

可见,在本实施例中,日志归集节点可以针对所存储的日志文件,按照预设时间间隔基于全文搜索引擎建立全文索引。可以满足日志查询的实时性要求,同时能够保证日志归集节点在进行数据清理等操作时,能够保证磁盘可用,不影响进行日志查询。

作为本发明实施例的一种实施方式,上述方法还可以包括:

对所存储的日志文件进行定时清理和/或维护。

为了提高日志归集节点的性能,避免资源浪费,日志归集节点可以定时对日志文件进行清理,删除过期的历史数据,保证日志文件存储以及查询的速度。同时,日志归集节点还可以定时按照实际需求进行日志维护,以保证能够顺利地进行日志文件存储以及查询。

可见,在本实施例中,日志归集节点可以对所存储的日志文件进行定时清理和/或维护,可以保证顺利地进行日志文件存储以及查询,提高日志归集节点的性能,避免资源浪费。

相应于上述日志存储方法,本发明实施例还提供了一种日志查询方法,下面对本发明实施例所提供的日志查询方法进行介绍。本发明实施例所提供的日志查询方法可以应用于上述分布式系统中的日志归集节点。

如图5所示,一种日志查询方法,所述方法应用于分布式系统中的日志归集节点,所述分布式系统还包括业务节点,所述方法包括:

s501,接收查询设备发送的日志检索请求;

其中,所述日志检索请求包括检索关键字。

s502,基于预先建立的索引,从日志文件中查询所述检索关键字对应的日志内容;

其中,所述日志文件为已存储的所述业务节点根据业务处理情况生成,并按照预先建立的所述业务节点与所述日志归集节点之间的映射关系发送的日志文件。

s503,发送所述日志内容至所述查询设备。

可见,本发明实施例所提供的方案中,在分布式系统中增加日志归集节点,分布式系统中的日志归集节点可以接收查询设备发送的日志检索请求,其中,日志检索请求包括检索关键字,基于预先建立的索引,从日志文件中查询检索关键字对应的日志内容,其中,日志文件为已存储的业务节点根据业务处理情况生成,并按照预先建立的业务节点与所述日志归集节点之间的映射关系发送的日志文件,进而发送日志内容至查询设备。这样,在进行日志查询时,由于日志文件存储于日志归集节点,所以只需要在日志归集节点中进行日志查询,不会影响业务节点对正常业务的处理,同时由于不需要遍历分布式系统中的成千上万个节点,日志查询的效率得到大大提高。

日志归集节点接收到查询设备发送的日志检索请求后,便可以基于预先建立的索引,从日志文件中查询检索关键字对应的日志内容,即执行上述步骤s502。其中,日志检索请求至少包括检索关键字,该检索关键字可以为一个或多个,这都是合理的,例如,可以为业务节点标识+业务节点ip、日志名称等。

日志文件为已存储的业务节点根据业务处理情况生成,并按照预先建立的业务节点与日志归集节点之间的映射关系发送的日志文件,也就是按照上述日志存储方法所存储的日志文件。

日志归集节点可以根据预先建立的索引,定位上述检索关键字所对应的日志内容,例如,日志归集节点所存储的日志文件如上述表格所示,日志检索请求包括的检索关键字为业务节点标识:00004+日志名称:名称1,那么日志归集节点可以根据预先建立的索引,定位该检索关键字所对应的日志内容为表格中第9行和第10行所对应的日志内容。

作为本发明实施例的一种实施方式,上述索引的建立方式,可以包括:

针对所存储的日志文件,按照预设时间间隔基于全文搜索引擎建立全文索引。

由于索引的建立方式已经在上述日志存储方法实施例部分进行介绍,在此不再赘述。

相应于上述第一种日志存储方法,本发明实施例还提供了一种日志存储装置,下面对本发明实施例所提供的第一种日志存储装置进行介绍。

如图6所示,一种日志存储装置,所述装置应用于分布式系统中的业务节点,所述分布式系统还包括日志归集节点,所述装置包括:

日志文件生成模块610,用于根据业务处理情况生成日志文件;

日志文件发送模块620,用于按照预先建立的所述业务节点与所述日志归集节点之间的映射关系,将所述日志文件发送至对应的日志归集节点,以使所述日志归集节点存储所述日志文件,并针对所存储的日志文件建立索引。

可见,本发明实施例所提供的方案中,在分布式系统中增加日志归集节点,分布式系统中的业务节点可以根据业务处理情况生成日志文件,按照预先建立的业务节点与日志归集节点之间的映射关系,将日志文件发送至对应的日志归集节点,以使日志归集节点存储日志文件,并针对所存储的日志文件建立全文索引。这样,在进行日志查询时,由于日志文件存储于日志归集节点,所以只需要在日志归集节点中进行日志查询,不会影响业务节点对正常业务的处理,同时由于不需要遍历分布式系统中的成千上万个节点,日志查询的效率得到大大提高。

作为本发明实施例的一种实施方式,上述日志文件生成模块610可以包括:

内容名称确定单元,用于根据业务处理情况确定日志内容及日志名称;

日志文件生成单元,用于将所述日志名称及所述业务节点的节点标识作为键,并将所述日志内容作为值,生成键值对结构的该业务节点的日志文件。

作为本发明实施例的一种实施方式,上述装置还可以包括:

映射关系建立模块(图6中未示出),用于获取所述分布式系统中的业务节点以及所述日志归集节点的编号;基于所述编号根据哈希算法,建立所述业务节点与所述日志归集节点之间的映射关系。

相应于上述第二种日志存储方法,本发明实施例还提供了另一种日志存储装置,下面对本发明实施例所提供的第二种日志存储装置进行介绍。

如图7所示,一种日志存储装置,所述装置应用于分布式系统中的日志归集节点,所述分布式系统还包括业务节点,所述装置包括:

日志文件接收模块710,用于接收所述业务节点发送的日志文件;

其中,所述日志文件为所述业务节点根据业务处理情况生成,并按照预先建立的所述业务节点与所述日志归集节点之间的映射关系发送的。

日志文件存储模块720,用于存储所述日志文件,并针对所存储的日志文件建立索引。

可见,本发明实施例所提供的方案中,在分布式系统中增加日志归集节点,分布式系统中的日志归集节点可以接收业务节点发送的日志文件,其中,日志文件为业务节点根据业务处理情况生成,并按照预先建立的业务节点与日志归集节点之间的映射关系发送的,存储日志文件,并针对所存储的日志文件建立索引。这样,在进行日志查询时,由于日志文件存储于日志归集节点,所以只需要在日志归集节点中进行日志查询,不会影响业务节点对正常业务的处理,同时由于不需要遍历分布式系统中的成千上万个节点,日志查询的效率得到大大提高。

作为本发明实施例的一种实施方式,上述日志文件存储模块720可以包括:

索引建立单元,用于针对所存储的日志文件,按照预设时间间隔基于全文搜索引擎建立全文索引。

相应于上述日志查询方法,本发明实施例还提供了一种日志查询装置,下面对本发明实施例所提供的一种日志查询装置进行介绍。

如图8所示,一种日志查询装置,所述装置应用于分布式系统中的日志归集节点,所述分布式系统还包括业务节点,所述装置包括:

检索请求接收模块810,用于接收查询设备发送的日志检索请求;

其中,所述日志检索请求包括检索关键字。

日志内容查询模块820,用于基于预先建立的索引,从日志文件中查询所述检索关键字对应的日志内容.

其中,所述日志文件为已存储的所述业务节点根据业务处理情况生成,并按照预先建立的所述业务节点与所述日志归集节点之间的映射关系发送的日志文件。

日志内容发送模块830,用于发送所述日志内容至所述查询设备。

可见,本发明实施例所提供的方案中,在分布式系统中增加日志归集节点,分布式系统中的日志归集节点可以接收查询设备发送的日志检索请求,其中,日志检索请求包括检索关键字,基于预先建立的索引,从日志文件中查询检索关键字对应的日志内容,其中,日志文件为已存储的业务节点根据业务处理情况生成,并按照预先建立的业务节点与所述日志归集节点之间的映射关系发送的日志文件,进而发送日志内容至查询设备。这样,在进行日志查询时,由于日志文件存储于日志归集节点,所以只需要在日志归集节点中进行日志查询,不会影响业务节点对正常业务的处理,同时由于不需要遍历分布式系统中的成千上万个节点,日志查询的效率得到大大提高。

作为本发明实施例的一种实施方式,上述装置还可以包括:

索引建立模块(图8中未示出),用于针对所存储的日志文件,按照预设时间间隔基于全文搜索引擎建立全文索引。

本发明实施例还提供了一种分布式系统,如图1所示,所述分布式系统包括业务节点110及日志归集节点120,其中:

业务节点110,用于执行上述任一实施例所述的第一种日志存储方法步骤;

日志归集节点120,用于执行上述任一实施例所述的第二种日志存储方法步骤和/或日志查询方法步骤。

可见,本发明实施例所提供的方案中,分布式系统包括业务节点及日志归集节点,分布式系统中的日志归集节点可以接收查询设备发送的日志检索请求,其中,日志检索请求包括检索关键字,基于预先建立的索引,从日志文件中查询检索关键字对应的日志内容,其中,日志文件为已存储的业务节点根据业务处理情况生成,并按照预先建立的业务节点与所述日志归集节点之间的映射关系发送的日志文件,进而发送日志内容至查询设备。这样,在进行日志查询时,由于日志文件存储于日志归集节点,所以只需要在日志归集节点中进行日志查询,不会影响业务节点对正常业务的处理,同时由于不需要遍历分布式系统中的成千上万个节点,日志查询的效率得到大大提高。

其中,日志归集节点的数量可以根据分布式系统的日志qps(querypersecond,每秒查询率)确定,作为一种实施方式,可以每一万qps增加一个日志归集节点。日志归集节点不承载业务处理,只负责做日志的存储以及日志查询请求的响应,保证不影响业务节点对业务的处理。

需要说明的是,图1中日志归集节点及业务节点的数量以及连接关系只是一种示例,用于示例性说明在一种实施方式中日志归集节点及业务节点的数量以及连接关系,并不能构成对本发明中日志归集节点及业务节点的数量以及连接关系的限定。

本发明实施例还提供了一种业务节点,如图9所示,业务节点可以包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信,

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

处理器901,用于执行存储器903上所存放的程序时,实现上述任一实施例所述的第一种日志存储方法步骤。

可见,本发明实施例所提供的方案中,在分布式系统中增加日志归集节点,分布式系统中的业务节点可以根据业务处理情况生成日志文件,按照预先建立的业务节点与日志归集节点之间的映射关系,将日志文件发送至对应的日志归集节点,以使日志归集节点存储日志文件,并针对所存储的日志文件建立全文索引。这样,在进行日志查询时,由于日志文件存储于日志归集节点,所以只需要在日志归集节点中进行日志查询,不会影响业务节点对正常业务的处理,同时由于不需要遍历分布式系统中的成千上万个节点,日志查询的效率得到大大提高。

上述业务节点提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述业务节点与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本发明实施例还提供了一种日志归集节点,如图10所示,日志归集节点可以包括处理器1001、通信接口1002、存储器1003和通信总线1004,其中,处理器1001,通信接口1002,存储器1003通过通信总线1004完成相互间的通信,

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

处理器1001,用于执行存储器1003上所存放的程序时,实现上述任一实施例所述的第二种日志存储方法步骤和/或日志查询方法步骤。

可见,本发明实施例所提供的方案中,在分布式系统中增加日志归集节点,分布式系统中的日志归集节点可以接收业务节点发送的日志文件,其中,日志文件为业务节点根据业务处理情况生成,并按照预先建立的业务节点与日志归集节点之间的映射关系发送的,存储日志文件,并针对所存储的日志文件建立索引。这样,在进行日志查询时,由于日志文件存储于日志归集节点,所以只需要在日志归集节点中进行日志查询,不会影响业务节点对正常业务的处理,同时由于不需要遍历分布式系统中的成千上万个节点,日志查询的效率得到大大提高。

上述日志归集节点提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述日志归集节点与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

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

可见,本发明实施例所提供的方案中,计算机程序被业务节点的处理器执行时,可以根据业务处理情况生成日志文件,按照预先建立的业务节点与日志归集节点之间的映射关系,将日志文件发送至对应的日志归集节点,以使日志归集节点存储日志文件,并针对所存储的日志文件建立全文索引。计算机程序被日志归集节点的处理器执行时,可以接收业务节点发送的日志文件,其中,日志文件为业务节点根据业务处理情况生成,并按照预先建立的业务节点与日志归集节点之间的映射关系发送的,存储日志文件,并针对所存储的日志文件建立索引,或者,接收查询设备发送的日志检索请求,基于预先建立的索引,从日志文件中查询检索关键字对应的日志内容,进而发送日志内容至查询设备。这样,在进行日志查询时,由于日志文件存储于日志归集节点,所以只需要在日志归集节点中进行日志查询,不会影响业务节点对正常业务的处理,同时由于不需要遍历分布式系统中的成千上万个节点,日志查询的效率得到大大提高。

需要说明的是,对于上述装置、系统、业务节点、日志归集节点及计算机可读存储介质实施例而言,由于其基本相似于对应的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

进一步需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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