掌桥专利:专业的专利平台
掌桥专利
首页

一种日志搜索方法、装置、设备及存储介质

文献发布时间:2023-06-19 10:48:02


一种日志搜索方法、装置、设备及存储介质

技术领域

本发明实施例涉及信息处理技术领域,尤其涉及一种日志搜索方法、装置、设备及存储介质。

背景技术

日志条目中的字段描述了特定交易的信息,例如日期,IP地址,执行的操作等,是许多企业应用故障排除、安全监控以及电子取证等操作的基础数据。日志文件由捕获的许多不同的日志条目组成或由某些系统生成。随着大数据时代的来临,数据产生速度加快、数据体量巨大,人力提取和存储日志无法跟上机器产生数据的速度。由于日志数量和类型的增长,对日志内容进行分析并追踪潜在的问题越来越困难。

现有日志搜索管理大多采用搭建ELK平台(分布式日志搜索平台,由Elasticsearch搜索服务器,Logstash数据收集引擎,Kibana可视化平台等工具组成)来实现日志的搜索,其中Elasticsearch基于Lucene全文搜索引擎提供了index索引存储、集群管理、搜索等功能;Logstash负责日志采集;Kibana则提供日志查询界面,具体由Logstash采集日志,并统一存储在Elasticsearch集群,用户通过Kibana发起日志搜索请求时,在集群中查找对应的日志并在Kibana展示。

然而现有的ELK平台由于是通过Logstash采集日志数据并传输到Elasticsearch集群进行统一存储,因此,当日志量较大时,势必会对网络带宽带来较大的压力。同时,由于采用统一的集群管理,搜索日志时需要从集群中的列表进行搜索,在日志较多的情况下,搜索所需时长较长,导致搜索效率较低,运行消耗资源巨大。

发明内容

本发明提供一种日志搜索方法、装置、设备及存储介质,以实现低成本快速日志。

第一方面,本发明实施例提供了一种日志搜索方法,包括:

接收用户端发送的日志搜索指令,根据所述日志搜索指令确定日志元数据中的至少一个目标元数据;

根据各所述目标元数据确定待搜索日志客户端,并将所述日志搜索指令发送至待搜索日志客户端;

接收所述待搜索日志客户端基于所述日志搜索指令搜索的目标压缩数据,对所述目标压缩数据进行解压,得到目标日志。

可选的,在接收用户端发送的日志搜索指令之前,还包括:

采集各日志客户端的日志数据,将同一日志客户端的日志数据建立索引关系并压缩存储至对应的业务机器中。

可选的,在采集各日志客户端的日志数据之后,还包括:

提取所述日志数据中的日志关键信息,并对各所述日志关键信息进行格式化处理。

可选的,在采集各日志客户端的日志数据之后,还包括:

根据各所述日志数据确定对应的日志属性信息,并结合各所述日志客户端的客户端属性信息,构建所述日志元数据。

可选的,在构建所述日志元数据之后,还包括:

将所述日志元数据进行倒排索引并压缩存储。

可选的,所述根据所述日志搜索指令确定日志元数据中的至少一个目标元数据,包括:

从所述日志搜索指令中提取待搜索日志属性信息和/或待搜索客户端属性信息,并从所述日志元数据中筛选与所述待搜索日志属性信息和/或所述待搜索客户端属性信息匹配的目标元数据。

可选的,所述根据各所述目标元数据确定待搜索日志客户端,包括:

针对每个目标元数据,将所述目标元数据关联的日志客户端确定为一个候选日志客户端集合;

将各所述候选日志客户端集合中同时存在的候选日志客户端确定为待搜索日志客户端。

第二方面,本发明实施例还提供了一种日志搜索装置,该装置包括:

目标元数据确定模块,用于接收用户端发送的日志搜索指令,根据所述日志搜索指令确定日志元数据中的至少一个目标元数据;

搜索指令发送模块,用于根据各所述目标元数据确定待搜索日志客户端,并将所述日志搜索指令发送至待搜索日志客户端;

目标日志确定模块,用于接收所述待搜索日志客户端基于所述日志搜索指令搜索的目标压缩数据,对所述目标压缩数据进行解压,得到目标日志。

第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明任意实施例所述的日志搜索方法。

第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本发明任意实施例所述的日志搜索方法。

本发明通过接收用户端发送的日志搜索指令,根据日志搜索指令确定日志元数据中的至少一个目标元数据;根据各目标元数据确定待搜索日志客户端,并将日志搜索指令发送至待搜索日志客户端;接收待搜索日志客户端基于日志搜索指令搜索的目标压缩数据,对目标压缩数据进行解压,得到目标日志,解决了由于采用统一的集群管理,搜索日志时需要从集群中的列表进行搜索,在日志较多时,导致的搜索时间长、搜索效率低、资源消耗大等问题,实现了根据日志元数据中进行初步检索,在数量较多的日志客户端中针对性的确定出待搜索日志客户端,由待搜索日志客户端分别进行本地日志的搜索操作,数据在本地存储及搜索节省了与其他集群机器数据传输的环节,减少了带宽压力,提高了日志搜索效率,节省了搜索成本。

附图说明

图1是本发明实施例一提供的一种日志搜索方法的流程图;

图2是本发明实施例一提供的一种日志搜索方法中的网络架构示意图;

图3是本发明实施例二提供的一种日志搜索方法的流程图;

图4是本发明实施例三提供的一种日志搜索装置的结构框图;

图5是本发明实施例四提供的一种计算机设备的结构框图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构,此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

实施例一

图1为本发明实施例一提供的一种日志搜索方法的流程图,本实施例可适用于进行日志搜索的情况。图2是本发明实施例一提供的一种日志搜索方法中的网络架构示意图。如图2所示的日志搜索网络中,可以包括多个日志客户端,每个日志客户端搭载于对应的业务机器上,本实施例提供的日志搜索方法可以应用于中心服务器,中心服务器接收用户端发送的日志搜索指令,并进行初步检索,再将日志搜索指令发送至待搜索日志客户端进行本地日志的搜索操作,其中,中心服务器可以通过软件和/或硬件实现。

如图1所示,该方法具体包括如下步骤:

步骤110、接收用户端发送的日志搜索指令,根据日志搜索指令确定日志元数据中的至少一个目标元数据。

其中,日志搜索指令可以理解为用户通过用户端向中心服务器发送的用于搜索目标日志的指令信息,日志搜索指令可以包含用户想要搜索的日志数据的属性信息,如日志数据的生成时间、日志数据的事件类型或生成日志数据的应用系统等。日志元数据可以理解为中心服务器根据各日志客户端以及各日志客户端生成的日志数据构建的索引数据,日志元数据可以用来描述日志数据存储的大致位置,如某一类日志数据可能存储于某一个或某几个日志客户端对应的业务机器中。目标元数据可以理解为满足日志搜索指令中日志数据属性条件的日志元数据。

具体的,当用户想要搜索某一日志数据时,可以通过用户端向中心服务器发送日志搜索指令。中心服务器接收到日志搜索指令后,可以从中提取用户想要搜索的日志数据的属性信息,并在日志元数据中筛选满足该属性信息条件的目标元数据。由于用户输入的搜索条件可能是一个,也可能是多个,因此要搜索的日志数据的属性信息就可能是一个或者多个,因而筛选出的目标元数据的个数就是一个或多个。如用户在输入搜索条件时,即限定了日志数据的生成时间,又限定了日志数据的事件类型。

步骤120、根据各目标元数据确定待搜索日志客户端,并将日志搜索指令发送至待搜索日志客户端。

具体的,由于日志元数据中记载有某类日志数据的存储位置信息,目标元数据又是根据日志搜索指令筛选出的满足搜索条件的日志元数据,因此,目标元数据中包含可以生成用户想要搜索的日志数据类型的日志客户端。当目标元数据有多个时,可以将同时存在于各个目标元数据中的日志客户端确定为待搜索日志客户端。在确定了待搜索日志客户端后,可以将日志搜索指令发送至每个待搜索日志客户端,使待搜索日志客户端进行日志数据的确切搜索。该步骤的主要目的在于缩小日志数据的搜索范围,针对性的令待搜索日志客户端进行进一步的日志搜索操作。

步骤130、接收待搜索日志客户端基于日志搜索指令搜索的目标压缩数据,对目标压缩数据进行解压,得到目标日志。

在本实施例中,日志数据可以压缩存储在日志客户端对应的业务机器中。当待搜索日志客户端基于日志搜索指令搜索到符合条件的目标压缩数据后,可以将目标压缩数据返回至中心服务器,中心服务器接收目标压缩数据进行解压操作,就得到了目标日志。

本实施例的技术方案,通过接收用户端发送的日志搜索指令,根据日志搜索指令确定日志元数据中的至少一个目标元数据;根据各目标元数据确定待搜索日志客户端,并将日志搜索指令发送至待搜索日志客户端;接收待搜索日志客户端基于日志搜索指令搜索的目标压缩数据,对目标压缩数据进行解压,得到目标日志,解决了由于采用统一的集群管理,搜索日志时需要从集群中的列表进行搜索,在日志较多时,导致的搜索时间长、搜索效率低、资源消耗大等问题,实现了根据日志元数据中进行初步检索,在数量较多的日志客户端中针对性的确定出待搜索日志客户端,由待搜索日志客户端分别进行本地日志的搜索操作,数据在本地存储及搜索节省了与其他集群机器数据传输的环节,减少了带宽压力,提高了日志搜索效率,节省了搜索成本。

实施例二

图3为本发明实施例二提供的一种日志搜索方法的流程图。本实施例在上述实施例的基础上,进一步优化了上述日志搜索方法。

如图3所示,该方法具体包括:

步骤210、采集各日志客户端的日志数据,将同一日志客户端的日志数据建立索引关系并压缩存储至对应的业务机器中。

具体的,中心服务器可以采集每个日志客户端的日志数据,并将同一日志客户端的日志数据在机器本地构建succinct树索引,使用succinct压缩存储在对应的业务机器的本地磁盘中。

可选的,在采集各日志客户端的日志数据之后,还可以包括:提取日志数据中的日志关键信息,并对各日志关键信息进行格式化处理。

在本实施例中,在采集到日志客户端的日志数据之后,可以提取数据中的日志关键信息,如日志生成时间、日志事件类型、数据类型等信息,并将提取到的日志关键信息进行格式化处理。

在一个具体的例子中,如果一条日志数据包含时间信息,则根据系统预先配置的各种时间戳格式利用正则表达式进行匹配,提取精确到毫秒的时间戳,在匹配到多个时间信息时,可以使用最接近当前时间的时间信息,将提取出的时间信息转成统一的时间格式,如:"timestamp":"2011-09-12T13:00:42.000Z"。

在另一个具体的例子中,对于半结构化数据可以转换为以下格式:(key,avpList),其中,key是唯一标识符,而avpList是属性值的列表对,avpList=((attrName1,value1),...,(attrNameN,valueN))。

可选的,在对日志数据进行存储时,还可以引入可配置参数λ,即分片尺寸,使用该参数将日志压缩文件分为大小为λ的块进行存储,λ值可以由用户设定,也可以结合实际内存值通过机器学习方式获得最佳值。

步骤220、根据各日志数据确定对应的日志属性信息,并结合各日志客户端的客户端属性信息,构建日志元数据。

具体的,中心服务器可以根据日志属性信息,如日志生成时间、日志事件类型、数据类型等信息,以及客户端属性信息,如机器编号、应用系统、业务归属等信息,构建日志元数据。比如k8s的label可能包括podname,workload、service、cluster等。

示例性的,中心服务器构建posting,每个posting文档会记录数据编号(DocID),例如:A(3;1,4,99)可以表示满足A属性的日志数据存储在3个业务机器中,分别为第1号、第4号和第99号业务机器。

可选的,在构建日志元数据之后,还可以包括:将日志元数据进行倒排索引并压缩存储。

如上述的示例中,可以将实际文档编号转换为文档编号差值(D-Gap),即(3;1,4,99)转换为(3;1,3,95),再加以压缩存储。

步骤230、接收用户端发送的日志搜索指令。

步骤240、从日志搜索指令中提取待搜索日志属性信息和/或待搜索客户端属性信息,并从日志元数据中筛选与待搜索日志属性信息和/或待搜索客户端属性信息匹配的目标元数据。

在本实施例中,待搜索日志属性信息和待搜索客户端属性信息可以理解为用户输入的搜索条件中包含的日志属性信息,也就是用户想要搜索的日志数据需要包含的属性信息。当提取到待搜索日志属性信息和/或待搜索客户端属性信息后,就可以在日志元数据中进行查找,筛选与待搜索日志属性信息和/或待搜索客户端属性信息匹配的目标元数据。

步骤250、针对每个目标元数据,将目标元数据关联的日志客户端确定为一个候选日志客户端集合。

具体的,每个目标元数据关联的日志客户端都是满足一定的搜索条件的日志客户端,因此可以将目标元数据关联的日志客户端确定为候选日志客户端,将一个目标元数据对应的所有候选日志客户端确定为一个候选日志客户端集合。

步骤260、将各候选日志客户端集合中同时存在的候选日志客户端确定为待搜索日志客户端。

具体的,当一个候选日志客户端同时出现在所有候选日志客户端集合中时,说明该候选日志客户端满足用户所有的搜索条件,因此可以将该候选日志客户端确定为待搜索日志客户端。

步骤270、将日志搜索指令发送至待搜索日志客户端。

步骤280、接收待搜索日志客户端基于日志搜索指令搜索的目标压缩数据,对目标压缩数据进行解压,得到目标日志。

示例性的,中心服务器通过元数据posting索引,通过倒排索引找到数据存储对应的待搜索日志客户端,针对性的将日志搜索指令发送至待搜索日志客户端;待搜索日志客户端搜索到目标压缩数据后无需解压,直接在succinct压缩数据上异步检索得到结果返回给中心服务器;中心服务器接收到目标压缩数据后解压,得到目标日志。

本实施例的技术方案,通过采集各日志客户端的日志数据,将同一日志客户端的日志数据建立索引关系并压缩存储至对应的业务机器中,同时根据各日志数据确定对应的日志属性信息,结合各日志客户端的客户端属性信息,构建日志元数据;在接收用户端发送的日志搜索指令时,根据日志搜索指令确定日志元数据中的至少一个目标元数据;根据各目标元数据确定待搜索日志客户端,并将日志搜索指令发送至待搜索日志客户端;接收待搜索日志客户端基于日志搜索指令搜索的目标压缩数据,对目标压缩数据进行解压,得到目标日志,解决了由于采用统一的集群管理,搜索日志时需要从集群中的列表进行搜索,在日志较多时,导致的搜索时间长、搜索效率低、资源消耗大等问题,实现了根据日志元数据中进行初步检索,在数量较多的日志客户端中针对性的确定出待搜索日志客户端,由待搜索日志客户端分别进行本地日志的搜索操作,数据在本地存储及搜索节省了与其他集群机器数据传输的环节,减少了带宽压力,提高了日志搜索效率,节省了搜索成本。

实施例三

本发明实施例所提供的日志搜索装置可执行本发明任意实施例所提供的日志搜索方法,具备执行方法相应的功能模块和有益效果。图4是本发明实施例三提供的一种日志搜索装置的结构框图,如图4所示,该装置包括:目标元数据确定模块310、搜索指令发送模块320和目标日志确定模块330。

目标元数据确定模块310,用于接收用户端发送的日志搜索指令,根据所述日志搜索指令确定日志元数据中的至少一个目标元数据;

搜索指令发送模块320,用于根据各所述目标元数据确定待搜索日志客户端,并将所述日志搜索指令发送至待搜索日志客户端;

目标日志确定模块330,用于接收所述待搜索日志客户端基于所述日志搜索指令搜索的目标压缩数据,对所述目标压缩数据进行解压,得到目标日志。

本实施例的技术方案,通过接收用户端发送的日志搜索指令,根据日志搜索指令确定日志元数据中的至少一个目标元数据;根据各目标元数据确定待搜索日志客户端,并将日志搜索指令发送至待搜索日志客户端;接收待搜索日志客户端基于日志搜索指令搜索的目标压缩数据,对目标压缩数据进行解压,得到目标日志,解决了由于采用统一的集群管理,搜索日志时需要从集群中的列表进行搜索,在日志较多时,导致的搜索时间长、搜索效率低、资源消耗大等问题,实现了根据日志元数据中进行初步检索,在数量较多的日志客户端中针对性的确定出待搜索日志客户端,由待搜索日志客户端分别进行本地日志的搜索操作,数据在本地存储及搜索节省了与其他集群机器数据传输的环节,减少了带宽压力,提高了日志搜索效率,节省了搜索成本。

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

日志数据存储模块340,用于采集各日志客户端的日志数据,将同一日志客户端的日志数据建立索引关系并压缩存储至对应的业务机器中。

可选的,所述日志数据存储模块340,还用于:

在采集各日志客户端的日志数据之后,提取所述日志数据中的日志关键信息,并对各所述日志关键信息进行格式化处理。

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

日志元数据构建模块350,用于在采集各日志客户端的日志数据之后,根据各所述日志数据确定对应的日志属性信息,并结合各所述日志客户端的客户端属性信息,构建所述日志元数据。

可选的,所述日志元数据构建模块350,还用于:

将所述日志元数据进行倒排索引并压缩存储。

可选的,所述根据所述日志搜索指令确定日志元数据中的至少一个目标元数据,包括:

从所述日志搜索指令中提取待搜索日志属性信息和/或待搜索客户端属性信息,并从所述日志元数据中筛选与所述待搜索日志属性信息和/或所述待搜索客户端属性信息匹配的目标元数据。

可选的,所述根据各所述目标元数据确定待搜索日志客户端,包括:

针对每个目标元数据,将所述目标元数据关联的日志客户端确定为一个候选日志客户端集合;

将各所述候选日志客户端集合中同时存在的候选日志客户端确定为待搜索日志客户端。

本实施例的技术方案,通过采集各日志客户端的日志数据,将同一日志客户端的日志数据建立索引关系并压缩存储至对应的业务机器中,同时根据各日志数据确定对应的日志属性信息,结合各日志客户端的客户端属性信息,构建日志元数据;在接收用户端发送的日志搜索指令时,根据日志搜索指令确定日志元数据中的至少一个目标元数据;根据各目标元数据确定待搜索日志客户端,并将日志搜索指令发送至待搜索日志客户端;接收待搜索日志客户端基于日志搜索指令搜索的目标压缩数据,对目标压缩数据进行解压,得到目标日志,解决了由于采用统一的集群管理,搜索日志时需要从集群中的列表进行搜索,在日志较多时,导致的搜索时间长、搜索效率低、资源消耗大等问题,实现了根据日志元数据中进行初步检索,在数量较多的日志客户端中针对性的确定出待搜索日志客户端,由待搜索日志客户端分别进行本地日志的搜索操作,数据在本地存储及搜索节省了与其他集群机器数据传输的环节,减少了带宽压力,提高了日志搜索效率,节省了搜索成本。

实施例四

图5为本发明实施例四提供的一种计算机设备的结构框图,如图5所示,该计算机设备包括处理器410、存储器420、输入装置430和输出装置440;计算机设备中处理器410的数量可以是一个或多个,图5中以一个处理器410为例;计算机设备中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或其他方式连接,图5中以通过总线连接为例。

存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的日志搜索方法对应的程序指令/模块(例如,日志搜索装置中的目标元数据确定模块310、搜索指令发送模块320和目标日志确定模块330)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的日志搜索方法。

存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置430可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。

实施例五

本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种日志搜索方法,该方法包括:

接收用户端发送的日志搜索指令,根据所述日志搜索指令确定日志元数据中的至少一个目标元数据;

根据各所述目标元数据确定待搜索日志客户端,并将所述日志搜索指令发送至待搜索日志客户端;

接收所述待搜索日志客户端基于所述日志搜索指令搜索的目标压缩数据,对所述目标压缩数据进行解压,得到目标日志。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的日志搜索方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory, ROM)、随机存取存储器(RandomAccess Memory, RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

值得注意的是,上述日志搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

相关技术
  • 一种日志搜索方法、装置、设备及存储介质
  • 日志搜索方法、日志搜索装置和计算机可读存储介质
技术分类

06120112685869