CN114020893A - 一种基于分布式存储的日志检索方法、装置及存储介质 - Google Patents
一种基于分布式存储的日志检索方法、装置及存储介质 Download PDFInfo
- Publication number
- CN114020893A CN114020893A CN202111308054.0A CN202111308054A CN114020893A CN 114020893 A CN114020893 A CN 114020893A CN 202111308054 A CN202111308054 A CN 202111308054A CN 114020893 A CN114020893 A CN 114020893A
- Authority
- CN
- China
- Prior art keywords
- log
- storage
- retrieval
- block
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Human Computer Interaction (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于分布式存储的日志检索方法、装置及存储介质,所述的日志检索方法,包括:将日志按照自定义类别划分条件进行分类,并按照设定时间维度拆分为对应各个类别的日志块;针对各个日志块进行存储并建立日志块索引;接收目标日志检索信息,通过日志块索引信息检索目标日志所对应的目标日志块,并发针对目标日志块进行全文检索得到目标日志的检索结果信息。本发明针对日志块做索引,而非每条日志,所以整体的索引数据量会减少千倍以上,在写入日志时也不再需要去更新索引,这就节省了大量的CPU;与之相应的,在进行日志检索时先检索出目标检索日志对应所属的日志块,再在日志块中进行全文检索,极大的提升了检索的效率。
Description
技术领域
本发明涉及日志检索技术领域,具体的涉及一种基于分布式存储的日志检索方法、装置及存储介质。
背景技术
云计算环境中分布式部署了大量的物理设备、业务***,同时,也部署了运维,安全管理等的平台监控、管理***,日志信息成为平台监控、管理的重要手段,海量的、来自不同设备的、***的分布式日志信息需要被多个***使用,平台中一旦设备出现问题,日志信息就成为排查故障,预防故障的重要手段。
现有技术中,大多搭建ELK平台(分布式日志搜索平台,由Elasticsearch搜索服务器,Logstash数据收集引擎,Kibana可视化平台等工具组成)来实现日志的搜索,其中Elasticsearch基于Lucene搜索引擎(全文搜索引擎),提供了index(索引)存储、集群管理、搜索等功能;Logstash负责日志采集;Kibana则提供日志查询界面,具体由Logstash采集日志,并统一存储在Elasticsearch集群,用户通过Kibana发起日志搜索请求时,在集群中查找对应的日志并在Kibana展示。
不过ELK平台需要对所有日志建立全文索引,并且索引和日志数据都存储在本地磁盘上,日志场景会面临以下两种情况:
1.数据量庞大,一个用户请求会通过多个服务来进行处理,从而会产生上百条的日志,因此,整个云计算环境会产生海量的日志需要被存储,针对海量日志的存储压力巨大。
2.保存时间长,日志需要长时间保存,以便后续的问题排查、审计使用。
在面临海量日志时,使用ELK平台就对机器CPU和磁盘空间造成了很大的压力,要保存大量的日志并提供检索无疑需要耗费高昂的成本。
有鉴于此,特提出本发明。
发明内容
本发明为了解决上述技术问题,提出了一种基于分布式存储的日志检索方法、装置及存储介质,致力于降低海量日志场景下日志检索平台的成本,能够使用更少的CPU支持更大量的日志写入量,使每GB的存储成本降低一个数量级,具体技术方案如下:
一种基于分布式存储的日志检索方法,包括:
将日志按照自定义类别划分条件进行分类,并按照设定时间维度拆分为对应各个类别的日志块;
针对各个日志块进行存储并建立日志块索引;
接收目标日志检索信息,通过日志块索引信息检索目标日志所对应的目标日志块,并发针对目标日志块进行全文检索得到目标日志的检索结果信息。
作为本发明的可选实施方式,所述将日志按照自定义类别划分条件进行分类,并按照设定时间维度拆分为对应各个类别的日志块包括:
自定义同一类别日志的划分条件包括:是否为同一个机器产生的日志,和/或是否同属于同一个模块的日志,和/或是否为同一种类型的日志,或者是否为同一个日志级别。
作为本发明的可选实施方式,本发明的基于分布式存储的日志检索方法分别在各个机器上部署日志采集代理,日志采集代理获取所部署机器的日志信息,并在上传日志信息时附带所属机器名称标签、和/或所属模块名称标签、和/或日志类型标签、和/或日志级别标签;
可选地,所述模块名称包括部署在机器上的各个服务名称;
可选地,所述日志类型包括业务访问日志(access.log)、和/或数据库访问日志(sql.log)、和/或业务日志(server.log);同时所述日志类型也支持业务自定义,所述日志采集代理会将日志类型附带在日志信息里用于在检索时选择对应的日志类型;
可选地,所述的日志级别包括:
DEBUG指出细粒度信息事件对调试应用程序是非常有帮助的;
INFO表明消息在粗粒度级别上突出强调应用程序的运行过程;
WARN表明会出现潜在错误的情形;
ERROR指出虽然发生错误事件,但仍然不影响***的继续运行;
FATAL指出每个严重的错误事件将会导致应用程序的退出。作为本发明的可选实施方式,本发明的基于分布式存储的日志检索方法,包括:
针对全部类别的日志块设定统一的时间维度,将采集的所有日志缓存至设定的统一的时间维度后,拆分成对应类别的日志块。
作为本发明的可选实施方式,所述针对各个日志块进行存储并建立日志块索引包括:
按照***预设时间条件针对各日志块进行多级存储;
将满足第一预设时间条件的日志块存储在本地磁盘上,将满足第二预设时间条件的日志块压缩后上传至远程存储上,将满足第三预设时间条件的冷日志块数据从远程存储转移至归档存储中保存。
作为本发明的可选实施方式,所述针对各个日志块进行存储并建立日志块索引包括:
按照***预设存储量条件针对各日志块进行多级存储;
将小于第一预设存储量条件的日志块存储在本地磁盘上,当本地磁盘上存储的日志块超过第一预设存储量条件时,将本地磁盘上存储时间超过第一设定值的日志块压缩后上传至远程存储上进行存储;
当远程存储上存储的日志块超过第二预设存储量条件时,将远程存储上存储时间超过第二设定值的冷日志块数据从远程存储转移至归档存储中保存。
作为本发明的可选实施方式,所述针对各个日志块建立日志块索引包括:
针对各个日志块建立索引,所述的索引内容包括:时间、日志块元信息及日志块存储位置;其中,所述的日志块元信息包括日志块所属的机器信息和/或模块信息和/或类型信息和/或级别信息。
作为本发明的可选实施方式,所述在进行目标日志检索时,通过日志块索引信息检索目标日志所对应的目标日志块,并发针对目标日志块进行全文检索得到目标日志的检索结果信息包括:
在进行目标日志检索时,提取获取的目标日志中与日志块分类类别对应的关键信息;
以获取的关键信息在日志块索引信息检索出目标日志块以及目标日志块所存储的位置;
将存储在远程存储上或者归档存储上的目标日志块下载至本地磁盘中,再以目标日志的检索信息为检索条件在各个日志块中进行全文检索,汇总排序得到检索结果信息。
本发明同时提供一种基于分布式存储的日志检索装置,包括:
日志块分类模块,将日志按照自定义类别划分条件进行分类,并按照设定时间维度拆分为对应各个类别的日志块;
日志块存储模块,针对各个日志块进行存储;
以及日志块检索模块,针对存储的日志块建立日志块索引,所述日志块检索模块接收目标日志检索信息,通过日志块索引信息检索目标日志所对应的目标日志块,并发针对目标日志块进行全文检索得到目标日志的检索结果信息。本发明同时还提供一种存储介质,存储有计算机可执行程序,所述计算机可执行程序被执行时,实现上述任意一项所述的一种基于分布式存储的日志检索方法。
与现有技术相比,本发明的有益效果:
本发明的基于分布式存储的日志检索方法中日志存储的最小单元不再是逐条存储,而是将日志分类划分为日志块并按照日志块存储。本发明的基于分布式存储的日志检索方法中将同一类的日志聚合到一起,并按时间维度拆分为一个个日志块。一个日志块内会包含几千或几万条左右的同一类日志,同一类的日志可以定义为同一个主机下产生的,和/或同属于一个模块,和/或同一个日志类型,和/或同一个日志级别的就可以把它们当成同一类日志块。
本发明的基于分布式存储的日志检索方法会对每一个日志块建立索引,通过日志块索引信息,我们可以快速找到需要的日志块。因此,本发明针对日志块建立块索引可以极大的提升建立索引的效率。
本发明的基于分布式存储的日志检索方法针对日志块做索引,而非每条日志,所以整体的索引数据量会减少千倍以上,在写入日志时也不再需要去更新索引,这就节省了大量的CPU。
在检索日志时,本发明的基于分布式存储的日志检索方法首先会从日志块索引中取出需要检索的日志块位置,并将它们从远程存储或者归档存储中取回到本地磁盘中,然后并发地对日志块进行全文检索,从而拿到我们需要的日志信息。因为日志块的大小固定,所以单个日志块全文检索的速度也很快。最后我们会将所有日志块检索的结果汇聚到一起,返回给用户。因此,本发明在进行日志检索时先检索出目标检索日志对应所属的日志块,再在日志块中进行全文检索,极大的提升了检索的效率。
本发明的基于分布式存储的日志检索方法针对日志块是分级存储,使用了远程存储和归档存储分离冷热数据,相比于全部存在本地磁盘上,可以节省大量的磁盘成本。
附图说明:
图1本发明实施例的基于分布式存储的日志检索方法中针对日志块的分级存储流程框图;
图2本发明实施例的基于分布式存储的日志检索方法的流程图一;
图3本发明实施例的基于分布式存储的日志检索方法的流程图二;
图4本发明实施例的基于分布式存储的日志检索方法的流程图三;
图5本发明实施例的基于分布式存储的日志检索方法的流程图四。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。
因此,以下对本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的部分实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征和技术方案可以相互组合。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,或者是本领域技术人员惯常理解的方位或位置关系,这类术语仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
参见图1及图2所示,本实施例提供一种基于分布式存储的日志检索方法,包括:
将日志按照自定义类别划分条件进行分类,并按照设定时间维度拆分为对应各个类别的日志块;
针对各个日志块进行存储并建立日志块索引;
接收目标日志检索信息,通过日志块索引信息检索目标日志所对应的目标日志块,并发针对目标日志块进行全文检索得到目标日志的检索结果信息。
本实施例的基于分布式存储的日志检索方法中日志存储的最小单元不再是逐条存储,而是将日志分类划分为日志块并按照日志块存储。本实施例的基于分布式存储的日志检索方法中将同一类的日志聚合到一起,并按时间维度拆分为一个个日志块。一个日志块内会包含几千或几万条左右的同一类日志,同一类的日志可以定义为同一个主机下产生的,和/或同属于一个模块,和/或同一个日志类型,和/或同一个日志级别的就可以把它们当成同一类日志块。
本实施例的基于分布式存储的日志检索方法会对每一个日志块建立索引,通过日志块索引信息,我们可以快速找到需要的日志块。因此,本实施例针对日志块建立块索引可以极大的提升建立索引的效率。
本实施例的基于分布式存储的日志检索方法因为是对日志块做索引,而非每条日志,所以整体的索引数据量会减少千倍以上,在写入日志时也不再需要去更新索引,这就节省了大量的CPU。
在检索日志时,本实施例的基于分布式存储的日志检索方法首先会从日志块索引中取出需要检索的日志块位置,并将它们从远程存储或者归档存储中取回到本地磁盘中,然后并发地对日志块进行全文检索,从而拿到我们需要的日志信息。因为日志块的大小固定,所以单个日志块全文检索的速度也很快。最后我们会将所有日志块检索的结果汇聚到一起,返回给用户。因此,本实施例在进行日志检索时先检索出目标检索日志对应所属的日志块,再在日志块中进行全文检索,极大的提升了检索的效率。
作为本实施例的可选实施方式,本实施例基于分布式存储的日志检索方法中,所述将日志按照自定义类别划分条件进行分类,并按照设定时间维度拆分为对应各个类别的日志块包括:
自定义同一类别日志的划分条件包括:是否为同一个机器产生的日志,和/或是否同属于同一个模块的日志,和/或是否为同一种类型的日志,或者是否为同一个日志级别。
本实施例的基于分布式存储的日志检索方法在进行日志划分为日志块时,可以定义上述条件中的某一个划分条件进行日志划分,也可以采用多个划分条件进行结合划分多级日志块的方式,具体地:
例如,可先以日志产生的机器或者模块进行划分为一级日志块,再在一级日志块下以日志类型或者日志级别划分为二级日志块,在进行日志检索时,先检索出一级日志块,再在一级日志块中检索出二级日志块,并在二级日志块中进行全文检索得到目标日志的检索结果信息。
本实施例的基于分布式存储的日志检索方法分别在各个机器上部署日志采集代理,日志采集代理获取所部署机器的日志信息,并在上传日志信息时附带所属机器名称标签、和/或所属模块名称标签、和/或日志类型标签、和/或日志级别标签。
可选地,所述模块名称包括部署在机器上的各个服务名称;服务都是容器化部署,每台机器会部署多个服务,每一个服务产生的日志就可以定义为一个模块的日志。
可选地,所述日志类型包括业务访问日志(access.log)、和/或数据库访问日志(sql.log)、和/或业务日志(server.log);同时所述日志类型也支持业务自定义,所述日志采集代理会将日志类型附带在日志信息里用于在检索时选择对应的日志类型;
应用程序日志:包含应用程序编写的各种错误消息,警告或其他事件。这些消息可以提供与特定用例相关的逻辑高级信息。应用程序日志包括:用例中发生的异常的堆栈跟踪;有关外部***响应时间较慢的警告消息;用例被触发或完成的信息。每条应用程序日志消息都需要提供有用的信息,以帮助了解应用程序的行为。
Web或应用程序服务器的日志:大多数企业应用程序都部署到Web服务器(例如Apache Tomcat)或应用程序服务器(例如Wildfly或WebSphere Liberty)。他们的日志文件为您提供有关技术问题和服务器当前状态的信息。
垃圾收集器日志:所述垃圾收集器提供自动存储器管理。它跟踪JVM中实例化的所有对象,并删除不再使用的对象。这是一项非常复杂的任务,并且有几种不同的垃圾收集器实现可用。
通常,Java中的垃圾收集过程非常有效。它非常高效,有很多应用程序使用默认实现及其标准配置。但是,如果您的应用程序必须处理高负载或使用大量复杂的对象结构,则应用程序的性能可能会随着时间的推移而降低。当垃圾收集器需要花费越来越多的时间来管理可用内存时,通常会发生这种情况。垃圾收集器日志提供分析所有垃圾收集器活动的必要信息。
***日志:操作***会将某些事件写入这些日志。作为部署的一部分的其他应用程序也可以这样做。因此,***日志是获取外部事件概述的好地方。
如果您在Windows上运行应用程序,则这是事件日志。Windows的事件日志包含类别应用程序安全性、设置、***和转发事件中的重要硬件和软件事件。
在Linux上的Linux***日志记录:Linux的syslog服务及其后续版本提供了一个高度可配置的日志记录***。它将应用程序或操作***触发的消息写入文件或将其发送到远程***。
可选地,所述的日志级别包括:
DEBUG指出细粒度信息事件对调试应用程序是非常有帮助的;
INFO表明消息在粗粒度级别上突出强调应用程序的运行过程;
WARN表明会出现潜在错误的情形;
ERROR指出虽然发生错误事件,但仍然不影响***的继续运行;
FATAL指出每个严重的错误事件将会导致应用程序的退出。进一步地,本实施例的基于分布式存储的日志检索方法,包括:
针对全部类别的日志块设定统一的时间维度,将采集的所有日志缓存至设定的统一的时间维度后,拆分成对应类别的日志块。
作为本实施例的可选实施方式,参见图3所示,本实施例的基于分布式存储的日志检索方法,所述针对各个日志块进行存储并建立日志块索引包括:
按照***预设时间条件针对各日志块进行多级存储;
将满足第一预设时间条件的日志块存储在本地磁盘上,将满足第二预设时间条件的日志块压缩后上传至远程存储上,将满足第三预设时间条件的冷日志块数据从远程存储转移至归档存储中保存。
本实施例针对日志块采取多级存储的方式,其中:
远程存储:远程磁盘的存储介质,可以是对象存储或者网络文件***,相比本地磁盘的存储成本会更加低廉。
归档存储:一种价格低廉的离线冷数据存储,适用于海量、非结构化数据长时间备份,其成本比远程存储更为低廉。
由于日志一般都具有时效性,存储时间越长的日志被检索到的可能性就越低,为了避免日志长时间存储对于本地磁盘造成存储压力,本实施例按照预设时间参数,定期将本地磁盘中存储的日志打包上传至远程存储上,将远程存储上存储时间过长的日志转移至归档存储中保存,大大降低了对本地磁盘的存储空间要求,降低实现本实施例的基于分布式存储的日志检索方法的硬件成本。
因此,本实施例的基于分布式存储的日志检索方法针对日志块是分级存储,使用了远程存储和归档存储分离冷热数据,相比于全部存在本地磁盘上,可以节省大量的磁盘成本。
作为本实施例的可选实施方式,参见图4所示,本实施例的基于分布式存储的日志检索方法,所述针对各个日志块进行存储并建立日志块索引包括:
按照***预设存储量条件针对各日志块进行多级存储;
将小于第一预设存储量条件的日志块存储在本地磁盘上,当本地磁盘上存储的日志块超过第一预设存储量条件时,将本地磁盘上存储时间超过第一设定值的日志块压缩后上传至远程存储上进行存储;
当远程存储上存储的日志块超过第二预设存储量条件时,将远程存储上存储时间超过第二设定值的冷日志块数据从远程存储转移至归档存储中保存。
进一步地,本实施例以存储空间参数存储时间相结合,在保证本地磁盘、远程存储的剩余存储空间的基础上,按照存储时间的长短逐步进行日志块存储位置的转移。
作为本实施例的可选实施方式,本实施例的基于分布式存储的日志检索方法,所述针对各个日志块建立日志块索引包括:
针对各个日志块建立索引,所述的索引内容包括:时间、日志块元信息及日志块存储位置;其中,所述的日志块元信息包括日志块所属的机器信息和/或模块信息和/或类型信息和/或级别信息。
本实施例在针对日志块建立块索引时只需要考虑时间、日志块元信息以及日志块存储位置,相对于针对每一条日志的全文建立索引,可以极大的提升建立索引的效率,同时在进行日志检索时先检索出目标检索日志对应所属的日志块,再在日志块中进行全文检索,极大的提升了检索的效率。
作为本实施例的可选实施方式,参见图5所示,本实施例的基于分布式存储的日志检索方法,所述在进行目标日志检索时,通过日志块索引信息检索目标日志所对应的目标日志块,并发针对目标日志块进行全文检索得到目标日志的检索结果信息包括:
在进行目标日志检索时,提取获取的目标日志中与日志块分类类别对应的关键信息;
以获取的关键信息在日志块索引信息检索出目标日志块以及目标日志块所存储的位置;
将存储在远程存储上或者归档存储上的目标日志块下载至本地磁盘中,再以目标日志的检索信息为检索条件在各个日志块中进行全文检索,汇总排序得到检索结果信息。
本实施例同时提供一种基于分布式存储的日志检索装置,包括:
-,将日志按照自定义类别划分条件进行分类,并按照设定时间维度拆分为对应各个类别的日志块;
日志块存储模块,针对各个日志块进行存储;
以及日志块检索模块,针对存储的日志块建立日志块索引,所述日志块检索模块接收目标日志检索信息,通过日志块索引信息检索目标日志所对应的目标日志块,并发针对目标日志块进行全文检索得到目标日志的检索结果信息。
本实施例的基于分布式存储的日志检索装置中,日志块存储模块存储日志的最小单元不再是逐条存储,而是将日志分类划分为日志块并按照日志块存储。本实施例的基于分布式存储的日志检索装置中,日志块分类模块将同一类的日志聚合到一起,并按时间维度拆分为一个个日志块。一个日志块内会包含几千或几万条左右的同一类日志,同一类的日志可以定义为同一个主机下产生的,和/或同属于一个模块,和/或同一个日志类型,和/或同一个日志级别的就可以把它们当成同一类日志块。
本实施例的基于分布式存储的日志检索装置中,日志块检索模块会对每一个日志块建立索引,通过日志块索引信息,我们可以快速找到需要的日志块。
在检索日志时,本实施例的基于分布式存储的日志检索装置,日志块检索模块首先会从日志块索引中取出需要检索的日志块位置,并将它们从日志块存储模块的远程存储或者归档存储中取回到本地磁盘中,然后并发地对日志块进行全文检索,从而拿到我们需要的日志信息。因为日志块的大小固定,所以单个日志块全文检索的速度也很快。最后我们会将所有日志块检索的结果汇聚到一起,返回给用户。
作为本实施例的可选实施方式,本实施例基于分布式存储的日志检索装置中,所述日志块分类模块自定义同一类别日志的划分条件包括:是否为同一个机器产生的日志,和/或是否同属于同一个模块的日志,和/或是否为同一种类型的日志,或者是否为同一个日志级别。
本实施例的基于分布式存储的日志检索装置,日志块分类模块在进行日志划分为日志块时,可以定义上述条件中的某一个划分条件进行日志划分,也可以采用多个划分条件进行结合划分多级日志块的方式,具体地:
例如,可先以日志产生的机器或者模块进行划分为一级日志块,再在一级日志块下以日志类型或者日志级别划分为二级日志块,在进行日志检索时,先检索出一级日志块,再在一级日志块中检索出二级日志块,并在二级日志块中进行全文检索得到目标日志的检索结果信息。
具体地,本实施例的基于分布式存储的日志检索装置包括分别部署在各个机器上的日志采集代理模块,日志采集代理模块获取所部署机器的日志信息,并在向日志块分类模块上传日志信息时附带所属机器名称标签、和/或所属模块名称标签、和/或日志类型标签、和/或日志级别标签。
可选地,所述模块名称包括部署在机器上的各个服务名称。
可选地,所述日志类型包括业务访问日志(access.log)、和/或数据库访问日志(sql.log)、和/或业务日志(server.log);同时所述日志类型也支持业务自定义,所述日志采集代理会将日志类型附带在日志信息里用于在检索时选择对应的日志类型。所述日志类型还可包括:
应用程序日志:包含应用程序编写的各种错误消息,警告或其他事件。这些消息可以提供与特定用例相关的逻辑高级信息。应用程序日志包括:用例中发生的异常的堆栈跟踪;有关外部***响应时间较慢的警告消息;用例被触发或完成的信息。每条应用程序日志消息都需要提供有用的信息,以帮助了解应用程序的行为。
Web或应用程序服务器的日志:大多数企业应用程序都部署到Web服务器(例如Apache Tomcat)或应用程序服务器(例如Wildfly或WebSphere Liberty)。他们的日志文件为您提供有关技术问题和服务器当前状态的信息。
垃圾收集器日志:所述垃圾收集器提供自动存储器管理。它跟踪JVM中实例化的所有对象,并删除不再使用的对象。这是一项非常复杂的任务,并且有几种不同的垃圾收集器实现可用。
通常,Java中的垃圾收集过程非常有效。它非常高效,有很多应用程序使用默认实现及其标准配置。但是,如果您的应用程序必须处理高负载或使用大量复杂的对象结构,则应用程序的性能可能会随着时间的推移而降低。当垃圾收集器需要花费越来越多的时间来管理可用内存时,通常会发生这种情况。垃圾收集器日志提供分析所有垃圾收集器活动的必要信息。
***日志:操作***会将某些事件写入这些日志。作为部署的一部分的其他应用程序也可以这样做。因此,***日志是获取外部事件概述的好地方。
如果您在Windows上运行应用程序,则这是事件日志。Windows的事件日志包含类别应用程序安全性、设置、***和转发事件中的重要硬件和软件事件。
在Linux上的Linux***日志记录:Linux的syslog服务及其后续版本提供了一个高度可配置的日志记录***。它将应用程序或操作***触发的消息写入文件或将其发送到远程***。
可选地,所述的日志级别包括:
DEBUG指出细粒度信息事件对调试应用程序是非常有帮助的;
INFO表明消息在粗粒度级别上突出强调应用程序的运行过程;
WARN表明会出现潜在错误的情形;
ERROR指出虽然发生错误事件,但仍然不影响***的继续运行;
FATAL指出每个严重的错误事件将会导致应用程序的退出。进一步地,本实施例的基于分布式存储的日志检索装置,日志块分类模块针对全部类别的日志块设定统一的时间维度,将采集的所有日志缓存至设定的统一的时间维度后,拆分成对应类别的日志块。
作为本实施例的可选实施方式,本实施例的基于分布式存储的日志检索装置,所述日志块存储模块按照***预设时间条件针对各日志块进行多级存储;将满足第一预设时间条件的日志块存储在本地磁盘上,将满足第二预设时间条件的日志块压缩后上传至远程存储上,将满足第三预设时间条件的冷日志块数据从远程存储转移至归档存储中保存。
本实施例日志块存储模块针对日志块采取多级存储的方式,其中:
远程存储:远程磁盘的存储介质,可以是对象存储或者网络文件***,相比本地磁盘的存储成本会更加低廉。
归档存储:一种价格低廉的离线冷数据存储,适用于海量、非结构化数据长时间备份,其成本比远程存储更为低廉。
由于日志一般都具有时效性,存储时间越长的日志被检索到的可能性就越低,为了避免日志长时间存储对于本地磁盘造成存储压力,本实施例按照预设时间参数,定期将本地磁盘中存储的日志打包上传至远程存储上,将远程存储上存储时间过长的日志转移至归档存储中保存,大大降低了对本地磁盘的存储空间要求,降低实现本实施例的基于分布式存储的日志检索方法的硬件成本。
作为本实施例的可选实施方式,本实施例的基于分布式存储的日志检索装置,所述日志存储模块按照***预设存储量条件针对各日志块进行多级存储;将小于第一预设存储量条件的日志块存储在本地磁盘上,当本地磁盘上存储的日志块超过第一预设存储量条件时,将本地磁盘上存储时间超过第一设定值的日志块压缩后上传至远程存储上进行存储;当远程存储上存储的日志块超过第二预设存储量条件时,将远程存储上存储时间超过第二设定值的冷日志块数据从远程存储转移至归档存储中保存。
进一步地,本实施例的日志存储模块以存储空间参数存储时间相结合,在保证本地磁盘、远程存储的剩余存储空间的基础上,按照存储时间的长短逐步进行日志块存储位置的转移。
作为本实施例的可选实施方式,本实施例的基于分布式存储的日志检索装置,所述日志块检索模块包括:
日志块索引模块,针对各个日志块建立索引,所述的索引内容包括:时间、日志块元信息及日志块存储位置;其中,所述的日志块元信息包括日志块所属的机器信息和/或模块信息和/或类型信息和/或级别信息。
本实施例的日志块索引模块在针对日志块建立块索引时只需要考虑时间、日志块元信息以及日志块存储位置,相对于针对每一条日志的全文建立索引,可以极大的提升建立索引的效率,同时在进行日志检索时先检索出目标检索日志对应所属的日志块,再在日志块中进行全文检索,极大的提升了检索的效率。
作为本实施例的可选实施方式,本实施例的基于分布式存储的日志检索装置,所述日志块检索模块包括日志块搜索模块:
在进行目标日志检索时,日志块搜索模块通过日志块索引信息检索目标日志所对应的目标日志块,并发针对目标日志块进行全文检索得到目标日志的检索结果信息包括:
在进行目标日志检索时,日志块搜索模块提取获取的目标日志中与日志块分类类别对应的关键信息;
日志块搜索模块以获取的关键信息在日志块索引信息检索出目标日志块以及目标日志块所存储的位置;
将存储在远程存储上或者归档存储上的目标日志块下载至本地磁盘中,日志块搜索模块再以目标日志的检索信息为检索条件在各个日志块中进行全文检索,汇总排序得到检索结果信息。
本实施例还提供一种存储介质,存储有计算机可执行程序,所述计算机可执行程序被执行时,实现所述的一种基于分布式存储的海量日志检索方法。
本实施例所述存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
本实施例还提供了一种电子设备,包括处理器和存储器,所述存储器用于存储计算机可执行程序,当所述计算机程序被所述处理器执行时,所述处理器执行所述的一种基于分布式存储的海量日志检索方法。
电子设备以通用计算设备的形式表现。其中处理器可以是一个,也可以是多个并且协同工作。本发明也不排除进行分布式处理,即处理器可以分散在不同的实体设备中。本发明的电子设备并不限于单一实体,也可以是多个实体设备的总和。
所述存储器存储有计算机可执行程序,通常是机器可读的代码。所述计算机可读程序可以被所述处理器执行,以使得电子设备能够执行本发明的方法,或者方法中的至少部分步骤。
所述存储器包括易失性存储器,例如随机存取存储单元(RAM)和/或高速缓存存储单元,还可以是非易失性存储器,如只读存储单元(ROM)。
应当理解,本发明的电子设备中还可以包括上述示例中未示出的元件或组件。例如,有些电子设备中还包括有显示屏等显示单元,有些电子设备还包括人机交互元件,例如按扭、键盘等。只要该电子设备能够执行存储器中的计算机可读程序以实现本发明方法或方法的至少部分步骤,均可认为是本发明所涵盖的电子设备。
通过以上对实施方式的描述,本领域的技术人员易于理解,本发明可以由能够执行特定计算机程序的硬件来实现,例如本发明的***,以及***中包含的电子处理单元、服务器、客户端、手机、控制单元、处理器等。本发明也可以由执行本发明的方法的计算机软件来实现,例如由微处理器、电子控制单元,客户端、服务器端等执行的控制软件来实现。但需要说明的是,执行本发明的方法的计算机软件并不限于由一个或特定个的硬件实体中执行,其也可以是由不特定具体硬件的以分布式的方式来实现。对于计算机软件,软件产品可以存储在一个计算机可读的存储介质(可以是CD-ROM,U盘,移动硬盘等)中,也可以分布式存储于网络上,只要其能使得电子设备执行根据本发明的方法。
以上实施例仅用以说明本发明而并非限制本发明所描述的技术方案,尽管本说明书参照上述的各个实施例对本发明已进行了详细的说明,但本发明不局限于上述具体实施方式,因此任何对本发明进行修改或等同替换;而一切不脱离发明的精神和范围的技术方案及其改进,其均涵盖在本发明的权利要求范围当中。
Claims (10)
1.一种基于分布式存储的日志检索方法,其特征在于,包括:
将日志按照自定义类别划分条件进行分类,并按照设定时间维度拆分为对应各个类别的日志块;
针对各个日志块进行存储并建立日志块索引;
接收目标日志检索信息,通过日志块索引信息检索目标日志所对应的目标日志块,并发针对目标日志块进行全文检索得到目标日志的检索结果信息。
2.根据权利要求1所述的一种基于分布式存储的日志检索方法,其特征在于,所述将日志按照自定义类别划分条件进行分类,并按照设定时间维度拆分为对应各个类别的日志块包括:
自定义同一类别日志的划分条件包括:是否为同一个机器产生的日志,和/或是否同属于同一个模块的日志,和/或是否为同一种类型的日志,或者是否为同一个日志级别。
3.根据权利要求2所述的一种基于分布式存储的海量日志检索方法,其特征在于,分别在各个机器上部署日志采集代理,日志采集代理获取所部署机器的日志信息,并在上传日志信息时附带所属机器名称标签、和/或所属模块名称标签、和/或日志类型标签、和/或日志级别标签;
可选地,所述模块名称包括部署在机器上的各个服务名称;
可选地,所述日志类型包括业务访问日志(access.log)、和/或数据库访问日志(sql.log)、和/或业务日志(server.log);同时所述日志类型也支持业务自定义,所述日志采集代理会将日志类型附带在日志信息里用于在检索时选择对应的日志类型;
可选地,所述的日志级别包括:
DEBUG指出细粒度信息事件对调试应用程序是非常有帮助的;
INFO表明消息在粗粒度级别上突出强调应用程序的运行过程;
WARN表明会出现潜在错误的情形;
ERROR指出虽然发生错误事件,但仍然不影响***的继续运行;
FATAL指出每个严重的错误事件将会导致应用程序的退出。
4.根据权利要求2所述的一种基于分布式存储的日志检索方法,其特征在于,包括:
针对全部类别的日志块设定统一的时间维度,将采集的所有日志缓存至设定的统一的时间维度后,拆分成对应类别的日志块。
5.根据权利要求1所述的一种基于分布式存储的日志检索方法,其特征在于,所述针对各个日志块进行存储并建立日志块索引包括:
按照***预设时间条件针对各日志块进行多级存储;
将满足第一预设时间条件的日志块存储在本地磁盘上,将满足第二预设时间条件的日志块压缩后上传至远程存储上,将满足第三预设时间条件的冷日志块数据从远程存储转移至归档存储中保存。
6.根据权利要求1所述的一种基于分布式存储的日志检索方法,其特征在于,所述针对各个日志块进行存储并建立日志块索引包括:
按照***预设存储量条件针对各日志块进行多级存储;
将小于第一预设存储量条件的日志块存储在本地磁盘上,当本地磁盘上存储的日志块超过第一预设存储量条件时,将本地磁盘上存储时间超过第一设定值的日志块压缩后上传至远程存储上进行存储;
当远程存储上存储的日志块超过第二预设存储量条件时,将远程存储上存储时间超过第二设定值的冷日志块数据从远程存储转移至归档存储中保存。
7.根据权利要求5或6所述的一种基于分布式存储的日志检索方法,其特征在于,所述针对各个日志块建立日志块索引包括:
针对各个日志块建立索引,所述的索引内容包括:时间、日志块元信息及日志块存储位置;其中,所述的日志块元信息包括日志块所属的机器信息和/或模块信息和/或类型信息和/或级别信息。
8.根据权利要求7所述的一种基于分布式存储的日志检索方法,其特征在于,所述在进行目标日志检索时,通过日志块索引信息检索目标日志所对应的目标日志块,并发针对目标日志块进行全文检索得到目标日志的检索结果信息包括:
在进行目标日志检索时,提取获取的目标日志中与日志块分类类别对应的关键信息;
以获取的关键信息在日志块索引信息检索出目标日志块以及目标日志块所存储的位置;
将存储在远程存储上或者归档存储上的目标日志块下载至本地磁盘中,再以目标日志的检索信息为检索条件在各个日志块中进行全文检索,汇总排序得到检索结果信息。
9.一种基于分布式存储的日志检索装置,其特征在于,包括:
日志块分类模块,将日志按照自定义类别划分条件进行分类,并按照设定时间维度拆分为对应各个类别的日志块;
日志块存储模块,针对各个日志块进行存储;
以及日志块检索模块,针对存储的日志块建立日志块索引,所述日志块检索模块接收目标日志检索信息,通过日志块索引信息检索目标日志所对应的目标日志块,并发针对目标日志块进行全文检索得到目标日志的检索结果信息。
10.一种存储介质,其特征在于,存储有计算机可执行程序,所述计算机可执行程序被执行时,实现如权利要求1-8中任意一项所述的一种基于分布式存储的海量日志检索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111308054.0A CN114020893A (zh) | 2021-11-05 | 2021-11-05 | 一种基于分布式存储的日志检索方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111308054.0A CN114020893A (zh) | 2021-11-05 | 2021-11-05 | 一种基于分布式存储的日志检索方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114020893A true CN114020893A (zh) | 2022-02-08 |
Family
ID=80061832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111308054.0A Pending CN114020893A (zh) | 2021-11-05 | 2021-11-05 | 一种基于分布式存储的日志检索方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114020893A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115460214A (zh) * | 2022-11-10 | 2022-12-09 | 北京天元特通科技有限公司 | 一种分布式网络通联日志存储检索方法及装置 |
-
2021
- 2021-11-05 CN CN202111308054.0A patent/CN114020893A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115460214A (zh) * | 2022-11-10 | 2022-12-09 | 北京天元特通科技有限公司 | 一种分布式网络通联日志存储检索方法及装置 |
CN115460214B (zh) * | 2022-11-10 | 2023-02-07 | 北京天元特通科技有限公司 | 一种分布式网络通联日志存储检索方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11989707B1 (en) | Assigning raw data size of source data to storage consumption of an account | |
US11550829B2 (en) | Systems and methods for load balancing in a system providing dynamic indexer discovery | |
US11614856B2 (en) | Row-based event subset display based on field metrics | |
US11604782B2 (en) | Systems and methods for scheduling concurrent summarization of indexed data | |
US11144528B2 (en) | Event time selection output techniques | |
US20200159742A1 (en) | Maintaining data lineage to detect data events | |
US20180150529A1 (en) | Event driven extract, transform, load (etl) processing | |
US20180285596A1 (en) | System and method for managing sensitive data | |
CN111046011B (zh) | 日志收集方法、***、装置、电子设备及可读存储介质 | |
CN113556254B (zh) | 一种异常告警的方法、装置、电子设备及可读存储介质 | |
US11892976B2 (en) | Enhanced search performance using data model summaries stored in a remote data store | |
US11687219B2 (en) | Statistics chart row mode drill down | |
CN114020893A (zh) | 一种基于分布式存储的日志检索方法、装置及存储介质 | |
CN111414355A (zh) | 一种海上风电场数据监测存储***及方法、装置 | |
US11841827B2 (en) | Facilitating generation of data model summaries | |
CN111368039B (zh) | 一种数据管理*** | |
CN110719334B (zh) | 适用于云桌面行为的审计***及方法 | |
Haihong et al. | Distributed cloud monitoring platform based on log in-sight | |
CN118295596A (zh) | 监控数据存储*** | |
Liu et al. | A novel development and analysis solution to PaaS log by using CouchDB | |
CN117407900A (zh) | 一种实现数据和日志分析及安全运营的***及应用 | |
CN113868099A (zh) | 一种数据监控*** | |
CN117573467A (zh) | 日志处理方法、装置、设备及存储介质 | |
CN118055014A (zh) | 远程日志数据传输方法、装置、设备及存储介质 | |
CN115269625A (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 |