CN118113670A - 一种分布式日志的存储方法及系统 - Google Patents
一种分布式日志的存储方法及系统 Download PDFInfo
- Publication number
- CN118113670A CN118113670A CN202410173949.5A CN202410173949A CN118113670A CN 118113670 A CN118113670 A CN 118113670A CN 202410173949 A CN202410173949 A CN 202410173949A CN 118113670 A CN118113670 A CN 118113670A
- Authority
- CN
- China
- Prior art keywords
- log
- query
- distributed
- client
- field
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 230000015654 memory Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 8
- 230000004931 aggregating effect Effects 0.000 claims description 5
- 230000006870 function Effects 0.000 description 7
- 230000002776 aggregation Effects 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种分布式日志的存储方法及系统,分布式日志的存储系统通过预设规则拉取各个客户端中的日志中的预设关键字段及其字段信息,以得到分布式日志;之后获取到日志的查询请求时,若所需查询的字段存在于预设关键字段中,就可以从分布式日志中直接进行查询,否则,就需要拉取客户端的全量日志,并重新聚合分布式日志。以此方式,能够在海量存储数据的时候,减少分布式日志存储系统中无用日志的存储,因此存储系统只存储最关键的数据信息,而具体完整日志仍然由各个客户端实例自身保存,有效减少存储系统存储日志的压力。
Description
技术领域
本发明涉及日志存储的技术领域,特别涉及一种分布式日志的存储方法及系统。
背景技术
现在的互联网系统中,为了满足高并发、高吞吐的性能要求,大部分的互联网系统服务端都会采用微服务架构的方式,该架构方式下,将会产生众多的微服务系统,即各个服务组件、功能组件或者各个组件之间可能存在互相依赖的场景。
而每一个微服务的实例都会产生日志,成千上万的应用实例可以产生海量的日志数据,为了实现日志的快速查询功能,目前通用的方式就是使用ELK之类的分布式日志组件,其主要的功能就是从各个实例中获取全量的日志信息,之后,统一存储在ELK的存储组件中,并提供快速查询的功能。虽然ELK实现了分布式日志的统一存储与快速查询功能,但是,如果日志数量达到一定级别之后,会给统一存储系统带来巨大的压力。
面对海量数据存储,无论是服务器资源、磁盘、网络IO或者内存等的需求量都会急剧增多,最终导致成本增加。日志的存储只是为了查询以及跟踪问题使用的,绝大多数的日志基本都是无用的,因此对于日志存储会占用大量的存储资源。
发明内容
本发明所要解决的技术问题是:提供一种分布式日志的存储方法及系统,能够减少无用日志的存储,从而减少分布式日志存储日志的压力。
为了解决上述技术问题,本发明采用的技术方案为:
一种分布式日志的存储方法,包括步骤:
按照预设规则拉取各个客户端中的日志以得到分布式日志,所述预设规则为拉取日志中预设关键字段及其对应的字段信息;
获取日志查询请求,判断所述日志查询请求对应的查询字段是否存在于所述预设关键字段中,若是,则从所述分布式日志中进行日志查询,否则,拉取所述日志查询请求对应客户端的全量日志,将所述全量日志聚合至所述分布式日志中。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种分布式日志的存储系统,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的一种分布式日志的存储方法的各个步骤。
本发明的有益效果在于:分布式日志的存储系统通过预设规则拉取各个客户端中的日志中的预设关键字段及其字段信息,以得到分布式日志;之后获取到日志的查询请求时,若所需查询的字段存在于预设关键字段中,就可以从分布式日志中直接进行查询,否则,就需要拉取客户端的全量日志,并重新聚合分布式日志。以此方式,能够在海量存储数据的时候,减少分布式日志存储系统中无用日志的存储,因此存储系统只存储最关键的数据信息,而具体完整日志仍然由各个客户端实例自身保存,有效减少存储系统存储日志的压力。
附图说明
图1为本发明实施例的一种分布式日志的存储方法的流程图;
图2为本发明实施例的一种分布式日志的存储系统的示意图;
标号说明:
1、一种分布式日志的存储系统;2、存储器;3、处理器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1,本发明实施例提供了一种分布式日志的存储方法,包括步骤:
按照预设规则拉取各个客户端中的日志以得到分布式日志,所述预设规则为拉取日志中预设关键字段及其对应的字段信息;
获取日志查询请求,判断所述日志查询请求对应的查询字段是否存在于所述预设关键字段中,若是,则从所述分布式日志中进行日志查询,否则,拉取所述日志查询请求对应客户端的全量日志,将所述全量日志聚合至所述分布式日志中。
从上述描述可知,本发明的有益效果在于:分布式日志的存储系统通过预设规则拉取各个客户端中的日志中的预设关键字段及其字段信息,以得到分布式日志;之后获取到日志的查询请求时,若所需查询的字段存在于预设关键字段中,就可以从分布式日志中直接进行查询,否则,就需要拉取客户端的全量日志,并重新聚合分布式日志。以此方式,能够在海量存储数据的时候,减少分布式日志存储系统中无用日志的存储,因此存储系统只存储最关键的数据信息,而具体完整日志仍然由各个客户端实例自身保存,有效减少存储系统存储日志的压力。
进一步地,所述按照预设规则拉取各个客户端中的日志以得到分布式日志,包括:
使用日志收集组件按照预设规则拉取各个客户端中的日志,并为各个客户端的日志配置对应的索引信息,所述预设规则为拉取预设关键字段及其对应的字段信息,所述预设关键字段包括时间、地点、IP信息、端口信息以及实例id中的任意三种。
由上述描述可知,日志收集组件只会收集客户端本地日志中的关键字段及其字段信息,关键字段可以从时间、地点、IP、端口、实例id以及关键日志信息等字段中进行选取,最终也只会保存日志中的这些关键字段及其字段信息,以此方式能够精简存储的日志信息,减少存储压力。
进一步地,拉取所述日志查询请求对应客户端的全量日志,包括:
判断所述日志查询请求中是否存在查询时间范围,若存在,则在所述日志查询请求对应客户端中提取所述查询时间范围内的全量日志;
否则,在所述日志查询请求对应的客户端中进行日志查找,并根据查找到的日志的时间信息确定待查时间范围,在所述客户端中提取所述待查时间范围内的全量日志。
由上述描述可知,根据日志查询请求提取出对应的日志的查询时间范围,因此无论日志查询请求中是否存在查询时间范围的信息,都可以为其匹配对应的时间范围进行全量日志的查找,以便于提取出合适范围的全量日志,避免多次在邻近范围提取日志并聚合的情况。
进一步地,所述根据查找到的日志的时间信息待查时间范围,包括:
若查找到的日志对应的仅有一个时间信息,则在所述时间信息前后扩展预设时长,得到待查时间范围;
若查找到的日志对应多个时间信息,则根据最大的时间信息和最小的时间信息建立待查时间范围。
由上述描述可知,当日志查询请求中不存在查询时间范围的信息时,先使用该日志查询请求查找对应的日志以及时间,并根据查找到的日志时间建立一个待查时间范围,以便于快速准确地确定出合理的全量日志提取范围。
进一步地,还包括:
若所述日志查询请求对应的查询字段是否不存在于所述预设关键字段中,则记录所述查询字段及其出现次数,当所述查询字段的出现次数大于阈值时,将所述查询字段添加至所述预设关键字段中。
由上述描述可知,如果存在因相同的日志查询字段缺失而经常去各实例聚合查询的情况,说明预设关键字段的设置不全面,缺少了关键信息字段,可以重新设置关键信息字段,即可避免多次聚合的问题。
请参照图2,本发明另一实施例提供了一种分布式日志的存储系统,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的一种分布式日志的存储方法的各个步骤。
本发明上述的一种分布式日志的存储方法及系统,适用于面对海量数据存储时,减少无用日志的存储,从而减少分布式日志存储日志的压力,以下通过具体的实施方式进行说明:
实施例一
请参照图1,一种分布式日志的存储方法,包括步骤:
S1、按照预设规则拉取各个客户端中的日志以得到分布式日志,所述预设规则为拉取日志中预设关键字段及其对应的字段信息。
其中,步骤S1的具体步骤为:
使用日志收集组件按照预设规则拉取各个客户端中的日志,并为各个客户端的日志配置对应的索引信息,所述预设规则为拉取预设关键字段及其对应的字段信息,所述预设关键字段包括时间、地点、IP信息、端口信息以及实例id中的任意三种。
现有技术中的日志客户端收集组件会收集客户端本地日志的所有信息,并传输到分布式日志系统,由分布式日志系统进行全日志的统一存储。
而本实施例中,日志收集组件按照预设规则拉取客户端的日志,只会收集客户端本地日志中的关键字段及其字段信息,关键字段可以从时间、地点、IP、端口、实例id以及关键日志信息等字段中进行选取。最终也只会保存日志中的这些关键字段及其字段信息。
其中,本实施例的存储系统中有一个分布式日志集群,该集群内部也存在多个节点,但是,分布式日志是从各个客户端机器中按照一定的规则,只拉取所需要的日志的关键信息,日志的所有原始日志仍然记录在客户端机器中,并不会统一存储在分布式集群中。而分布式集群中只会记录需要的日志的关键信息,用来进行日志索引。
S2、获取日志查询请求,判断所述日志查询请求对应的查询字段是否存在于所述预设关键字段中,若是,则从所述分布式日志中进行日志查询,否则,拉取所述日志查询请求对应客户端的全量日志,将所述全量日志聚合至所述分布式日志中。
S21、若日志查询请求对应的查询字段存在于所述预设关键字段中,则从所述分布式日志中进行日志查询。
具体的,当用户进行日志查询时,根据用户输入的查询字段在自身统一存储的分布式日志中进行查询。由于自身系统的存储内容中都添加了索引信息,故能够根据索引信息快速查询到结果信息。
S22、若日志查询请求对应的查询字段不存在于所述预设关键字段中,则判断所述日志查询请求中是否存在查询时间范围:
若存在,则在所述日志查询请求对应客户端中提取所述查询时间范围内的全量日志;
若不存在,则在所述日志查询请求对应的客户端中进行日志查找,并根据查找到的日志的时间信息确定待查时间范围,在所述客户端中提取所述待查时间范围内的全量日志,将拉取到的所述全量日志聚合到所述分布式日志中。
具体的,当无法在分布式日志系统的统一存储的信息中查询到相关信息时,提供一个全量日志查询的功能。当触发该功能时,将会从日志查询请求中确定要查询的时间范围,之后根据特定条件至对应的应用实例客户端的本地日志文件中进行查询。特定条件可以为:日志时间范围【必传】,用户id【可为空】,ip、端口以及其他查询字段【可为空】。通过日志收集组件去读取全量的完整日志信息,并进行统一存储,最终由统一存储来实现后续的内容展示。
因此,本实施例中的存储数据由原先的日志原始数据变成了日志关键字段及其字段内容,日志的存储量呈几何数据级的下降,当需要查询日志的原始文件时,则再去对应的客户端机器中获取原始日志数据,减少分布式日志存储日志的压力。
实施例二
本实施例与实施例一的区别在于,进一步限定了待查时间范围的确定方法,具体为:
若查找到的日志对应的仅有一个时间信息,则在所述时间信息前后扩展预设时长,得到待查时间范围;
若查找到的日志对应多个时间信息,则根据最大的时间信息和最小的时间信息建立待查时间范围。
在本实施例中,若查找到的日志对应的仅有一个时间信息,那么以该时间信息为中心,向前向后扩展10s,即可得到一段待查时间范围,后续根据该待查时间范围进行全量日志的提取。
若查找到的日志对应了多个时间信息,那么取最小的时间信息a以及最大的时间信息b,根据这两个时间信息建立待查时间范围,即查询a至b之间的日志。
因此,在本实施例中,能够直接根据日志查询请求拉取一段时间的全量日志,以便于将全量日志聚合到分布式日志中。
实施例三
本实施例与实施例一和实施例二的区别在于,对预设关键字段进行调整,具体为:
若所述日志查询请求对应的查询字段是否不存在于所述预设关键字段中,则记录所述查询字段及其出现次数,当所述查询字段的出现次数大于阈值时,将所述查询字段添加至所述预设关键字段中。
在本实施例中,如果有经常去各应用实例聚合查询这种情况,说明预设关键字段的设置需要调整,因此统计历史查询过程中预设关键字段缺少的查询字段,将出现次数最多的查询字段加入预设关键字段中,即可减少多次聚合的问题。
实施例四
请参照图2,一种分布式日志的存储系统1,包括存储器2、处理器3以及存储在所述存储器2上并可在处理器3上运行的计算机程序,所述处理器3执行所述计算机程序时实现实施例一至三中的一种分布式日志的存储方法的各个步骤。
综上所述,本发明提供的一种分布式日志的存储方法及系统,针对每一个客户端日志收集组件进行改造,只收集日志中的关键数据信息,并针对这些关键数据信息进行统一存储。当查询日志信息时,如果查询内容在关键数据信息中时,则由统一日志存储中的索引信息实现快速查询功能,当查询内容不在关键数据信息中时,由日志系统根据时间范围至各个实例节点中进行完整日志的查询操作,聚合完毕后统一返回给客户端进行展示。通过此种方式,统一日志系统只存储最关键的数据信息,而具体完整日志则仍然有各个实例节点自身保存,有效的减少了分布式日志系统存储日志的压力,提高了整体系统的性能。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种分布式日志的存储方法,其特征在于,包括步骤:
按照预设规则拉取各个客户端中的日志以得到分布式日志,所述预设规则为拉取日志中预设关键字段及其对应的字段信息;
获取日志查询请求,判断所述日志查询请求对应的查询字段是否存在于所述预设关键字段中,若是,则从所述分布式日志中进行日志查询,否则,拉取所述日志查询请求对应客户端的全量日志,将所述全量日志聚合至所述分布式日志中。
2.根据权利要求1所述的一种分布式日志的存储方法,其特征在于,所述按照预设规则拉取各个客户端中的日志以得到分布式日志,包括:
使用日志收集组件按照预设规则拉取各个客户端中的日志,并为各个客户端的日志配置对应的索引信息,所述预设规则为拉取预设关键字段及其对应的字段信息,所述预设关键字段包括时间、地点、IP信息、端口信息以及实例id中的任意三种。
3.根据权利要求1所述的一种分布式日志的存储方法,其特征在于,拉取所述日志查询请求对应客户端的全量日志,包括:
判断所述日志查询请求中是否存在查询时间范围,若存在,则在所述日志查询请求对应客户端中提取所述查询时间范围内的全量日志;
否则,在所述日志查询请求对应的客户端中进行日志查找,并根据查找到的日志的时间信息确定待查时间范围,在所述客户端中提取所述待查时间范围内的全量日志。
4.根据权利要求3所述的一种分布式日志的存储方法,其特征在于,所述根据查找到的日志的时间信息待查时间范围,包括:
若查找到的日志对应的仅有一个时间信息,则在所述时间信息前后扩展预设时长,得到待查时间范围;
若查找到的日志对应多个时间信息,则根据最大的时间信息和最小的时间信息建立待查时间范围。
5.根据权利要求1所述的一种分布式日志的存储方法,其特征在于,还包括:
若所述日志查询请求对应的查询字段是否不存在于所述预设关键字段中,则记录所述查询字段及其出现次数,当所述查询字段的出现次数大于阈值时,将所述查询字段添加至所述预设关键字段中。
6.一种分布式日志的存储系统,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
按照预设规则拉取各个客户端中的日志以得到分布式日志,所述预设规则为拉取日志中预设关键字段及其对应的字段信息;
获取日志查询请求,判断所述日志查询请求对应的查询字段是否存在于所述预设关键字段中,若是,则从所述分布式日志中进行日志查询,否则,拉取所述日志查询请求对应客户端的全量日志,将所述全量日志聚合至所述分布式日志中。
7.根据权利要求6所述的一种分布式日志的存储系统,其特征在于,所述按照预设规则拉取各个客户端中的日志以得到分布式日志,包括:
使用日志收集组件按照预设规则拉取各个客户端中的日志,并为各个客户端的日志配置对应的索引信息,所述预设规则为拉取预设关键字段及其对应的字段信息,所述预设关键字段包括时间、地点、IP信息、端口信息以及实例id中的任意三种。
8.根据权利要求6所述的一种分布式日志的存储系统,其特征在于,拉取所述日志查询请求对应客户端的全量日志,包括:
判断所述日志查询请求中是否存在查询时间范围,若存在,则在所述日志查询请求对应客户端中提取所述查询时间范围内的全量日志;
否则,在所述日志查询请求对应的客户端中进行日志查找,并根据查找到的日志的时间信息确定待查时间范围,在所述客户端中提取所述待查时间范围内的全量日志。
9.根据权利要求8所述的一种分布式日志的存储系统,其特征在于,所述根据查找到的日志的时间信息待查时间范围,包括:
若查找到的日志对应的仅有一个时间信息,则在所述时间信息前后扩展预设时长,得到待查时间范围;
若查找到的日志对应多个时间信息,则根据最大的时间信息和最小的时间信息建立待查时间范围。
10.根据权利要求6所述的一种分布式日志的存储系统,其特征在于,还包括:
若所述日志查询请求对应的查询字段是否不存在于所述预设关键字段中,则记录所述查询字段及其出现次数,当所述查询字段的出现次数大于阈值时,将所述查询字段添加至所述预设关键字段中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410173949.5A CN118113670A (zh) | 2024-02-07 | 2024-02-07 | 一种分布式日志的存储方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410173949.5A CN118113670A (zh) | 2024-02-07 | 2024-02-07 | 一种分布式日志的存储方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118113670A true CN118113670A (zh) | 2024-05-31 |
Family
ID=91208061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410173949.5A Pending CN118113670A (zh) | 2024-02-07 | 2024-02-07 | 一种分布式日志的存储方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118113670A (zh) |
-
2024
- 2024-02-07 CN CN202410173949.5A patent/CN118113670A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11775501B2 (en) | Trace and span sampling and analysis for instrumented software | |
CN106980699B (zh) | 一种数据处理平台和系统 | |
WO2017096892A1 (zh) | 索引构建方法、查询方法及对应装置、设备、计算机存储介质 | |
CN104111958A (zh) | 一种数据查询方法及装置 | |
CN113312376B (zh) | 一种用于Nginx日志实时处理分析的方法及终端 | |
US20110179013A1 (en) | Search Log Online Analytic Processing | |
US10776368B1 (en) | Deriving cardinality values from approximate quantile summaries | |
US7895247B2 (en) | Tracking space usage in a database | |
CN111459900B (zh) | 大数据生命周期设置方法、装置、存储介质及服务器 | |
CN111125199B (zh) | 一种数据库访问方法、装置及电子设备 | |
CN111026709A (zh) | 基于集群访问的数据处理方法及装置 | |
US9092338B1 (en) | Multi-level caching event lookup | |
CN112579552A (zh) | 日志存储及调用方法、装置及系统 | |
US20220215021A1 (en) | Data Query Method and Apparatus, Computing Device, and Storage Medium | |
CN118113670A (zh) | 一种分布式日志的存储方法及系统 | |
US20110029480A1 (en) | Method of Compiling Multiple Data Sources into One Dataset | |
US20230237049A1 (en) | Artifact life tracking storage | |
US11720591B1 (en) | Virtual metrics | |
CN114138831A (zh) | 一种数据搜索方法、装置及存储介质 | |
CN112181994B (zh) | 运维大数据的分布式内存数据库的刷新方法、装置、介质 | |
CN107203550B (zh) | 一种数据处理方法和数据库服务器 | |
CN117390040B (zh) | 基于实时宽表的业务请求处理方法、设备及存储介质 | |
CN111949439B (zh) | 基于数据库的数据文件更新方法和装置 | |
CN110781210A (zh) | 一种应对大规模数据多维聚合实时查询的数据处理平台 | |
US11321392B2 (en) | Light weight index for querying low-frequency data in a big data environment |
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 |