CN109885545A - 存储、查询日志信息的方法、装置 - Google Patents
存储、查询日志信息的方法、装置 Download PDFInfo
- Publication number
- CN109885545A CN109885545A CN201910106607.0A CN201910106607A CN109885545A CN 109885545 A CN109885545 A CN 109885545A CN 201910106607 A CN201910106607 A CN 201910106607A CN 109885545 A CN109885545 A CN 109885545A
- Authority
- CN
- China
- Prior art keywords
- log information
- template
- log
- database
- 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
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/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种存储日志信息的方法,该方法包括:从多条日志信息中识别出所述多条日志信息的第一部分和第二部分,多条日志信息的第一部分为在多条日志信息中小于或等于第一阈值条日志信息中相同的部分,多条日志信息的第二部分为在多条日志信息中小于或等于第二阈值条日志信息中不相同的部分;用占位标示符代替所述多条日志信息的第二部分,形成多条日志信息对应的日志信息模板;将多条日志信息对应的日志信息模板和多条日志信息的第二部分分别存储至数据库。本申请提供的技术方案可以减小多条日志信息中相同的部分所占用的存储空间,节省存储资源。
Description
技术领域
本申请涉及存储领域,并且更具体地,涉及一种存储日志信息的方法、查询日志信息的方法、装置及计算机可读存储介质。
背景技术
计算机日志是在计算机系统运行过程中由操作系统,中间件,平台自身产生或者由用户开发的程序组件产生的,记录了设备和系统自身的运行状态和使用情况,这些描述信息主要描述了系统所进行的关键操作以及系统在运行过程中所发生的错误和异常等。用户可以通过对系统日志的分析,了解系统在运行中经常出现或者偶然出现的问题,从而可以有针对性地改善对系统的运营维护,进而提高系统运行的安全和效率。
传统的日志信息存储方案中,将原始的日志信息直接存储在数据库中。一方面,传统的日志信息存储方案中的原始日志中存在大量重复的信息,从而导致大量重复的信息占用了大多数的存储资源,造成资源上的浪费。另一方面,在用户对存储的日志信息进行检索的过程中,原始日志中大量重复的信息会使得检索效率低下,并且用户在对检索到的大量的原始日志进行数据分析时,大量重复的部分会使得用户分析过程的实时性较差,不利于通过日志快速发现问题。
发明内容
本申请提供一种存储日志信息的方法和查询日志信息的方法,可以减小多条日志信息中重复的部分所占用的存储空间,节省存储资源,并缩短用户对日志信息的检索时间,提高日志信息的使用价值。
第一方面,提供了一种存储日志信息的方法,该方法包括:从多条日志信息中识别出所述多条日志信息的第一部分和第二部分,用占位标示符代替所述多条日志信息的第二部分,形成所述多条日志信息对应的日志信息模板,所述日志信息模板包括所述多条日志信息的第一部分,将所述多条日志信息对应的日志信息模板和所述多条日志信息的第二部分分别存储至数据库。
其中,所述多条日志信息的第一部分为在所述多条日志信息中小于或等于第一阈值条日志信息中相同的部分,所述多条日志信息的第二部分为在所述多条日志信息中小于或等于第二阈值条日志信息中不相同的部分。
应理解,第一阈值可以小于或等于多条日志信息的总数量,第二阈值可以小于或等于多条日志信息的总数量,第一阈值和第二阈值可以相等也可以不相等。
上述技术方案中,可以对原始日志信息进行处理,在多条日志信息中,从小于或等于多条日志信息数量的多条日志信息中识别出相同的部分和不相同的部分。将多条日志信息中相同的部分只存储一个,从而使得精简之后的日志信息不用日志信息模板中携带的一长串字符序列,减小日志信息所占的存储空间,节约日志服务系统中的存储资源消耗。
在一种可能的实现方式中,所述方法还包括:生成所述多条日志信息对应的所述日志信息模板的标识。
上述技术方案中,可以计算出每一个日志信息模板所对应的唯一的标识,从而可以在后期的用户对日志信息进行检索的过程中,通过日志信息模板标识对日志信息进行还原,使得用户可以获取到原始的日志信息。不仅可以通过对原始的日志信息的分析,了解节点在运行中经常出现或者偶然出现的问题,还可以通过分析日志信息模板所对应的标识的分布规律,挖掘潜在的系统异常,并提前发出报警提醒。
在另一种可能的实现方式中,用户在通过日志服务API对存储的日志信息进行检索的过程中,可以在日志信息模板中进行关键字的搜索。
上述技术方案中,通过在日志信息模板中通过关键字对用户需要的日志信息进行搜索,由于日志信息模板不会大量重复,因此,可以快速查找到用户需要的日志信息,减少搜索的时间,提高用户分析过程的实时性,有利于通过日志快速发现问题。
在另一种可能的实现方式中,将所述多条日志信息的第二部分和所述日志信息模板的标识存储在所述数据库的第一空间;将所述日志信息模板和所述日志信息模板的标识存储在所述数据库的第二空间。
第二方面,提供了一种查询日志信息的方法,所述方法应用于日志信息查询系统,所述日志信息查询系统包括数据库,所述数据库存储有多条日志信息的第二部分和所述多条日志信息对应的日志信息模板,所述日志信息模板包括所述多条日志信息的第一部分,所述多条日志信息的第一部分为在所述多条日志信息中小于或等于第一阈值条日志信息中相同的部分,所述多条日志信息的第二部分为在所述多条日志信息中小于或等于第二阈值条日志信息中不相同的部分,所述方法包括:
接收查询请求,所述查询请求用于查询数据库中存储的日志信息;根据所述查询请求从所述数据库中获取存储的所述多条日志信息的第二部分和所述多条日志信息对应的日志信息模板;将所述多条日志信息的第二部分带入所述多条日志信息对应的日志信息模板获得对应的日志信息,向发出所述查询请求的客户端返回所述对应的日志信息,
上述技术方案中,可以将多条日志信息的第二部分带入多条日志信息对应的日志信息模板,将形成的原始日志信息返回至用户。可以使得用户对获取到的原始的日志信息进行分析,了解节点在运行中经常出现或者偶然出现的问题。
在一种可能的实现方式中,在所述接收查询请求之前,所述方法还包括:从多条日志信息中识别出所述多条日志信息的所述第一部分和所述第二部分;
用占位标示符代替所述多条日志信息的第二部分,形成所述多条日志信息对应的日志信息模板;
将所述多条日志信息对应的日志信息模板和所述多条日志信息的第二部分分别存储至所述数据库。
在另一种可能的实现方式中,所述方法还包括:生成所述多条日志信息对应的所述日志信息模板的标识。
在另一种可能的实现方式中,所述方法还包括:将所述多条日志信息的第二部分和所述日志信息模板的标识存储在所述数据库的第一空间;将所述日志信息模板和所述日志信息模板的标识存储在所述数据库的第二空间。
第三方面,提供了一种存储日志信息的装置,该装置包括:
识别模块,用于从多条日志信息中识别出所述多条日志信息的第一部分和第二部分,其中,所述多条日志信息的第一部分为在所述多条日志信息中小于或等于第一阈值条日志信息中相同的部分,所述多条日志信息的第二部分为在所述多条日志信息中小于或等于第二阈值条日志信息中不相同的部分;
处理模块,用于通过占位标示符代替所述多条日志信息的第二部分,形成所述多条日志信息对应的日志信息模板,所述日志信息模板包括所述多条日志信息的第一部分;
存储模块,用于将所述多条日志信息对应的日志信息模板和所述多条日志信息的第二部分分别存储至数据库。
在一种可能的实现方式中,所述装置还包括:生成模块,用于生成所述多条日志信息对应的所述日志信息模板的标识。
在另一种可能的实现方式中,所述存储模块具体用于:将所述多条日志信息的第二部分和所述日志信息模板的标识存储在所述数据库的第一空间;将所述日志信息模板和所述日志信息模板的标识存储在所述数据库的第二空间。
第四方面,提供了一种查询日志信息的装置,所述装置应用于日志信息查询系统,所述日志信息查询系统包括数据库,所述数据库存储有多条日志信息的第二部分和所述多条日志信息对应的日志信息模板,所述日志信息模板包括所述多条日志信息的第一部分,所述多条日志信息的第一部分为在所述多条日志信息中小于或等于第一阈值条日志信息中相同的部分,所述多条日志信息的第二部分为在所述多条日志信息中小于或等于第二阈值条日志信息中不相同的部分,所述装置包括:
接收模块,用于接收查询请求,所述查询请求用于查询数据库中存储的日志信息;
获取模块,用于根据所述查询请求从所述数据库中获取存储的所述多条日志信息的第二部分和所述多条日志信息对应的日志信息模板;还用于将所述多条日志信息的第二部分带入所述多条日志信息对应的日志信息模板获得对应的日志信息。
可选的,所述查询日志信息的装置还可以包括返回模块,用于向发出所述查询请求的客户端返回所述对应的日志信息
在一种可能的实现方式中,所述装置还包括:识别模块,用于从多条日志信息中识别出所述多条日志信息的所述第一部分和所述第二部分;
处理模块,用于通过占位标示符代替所述多条日志信息的第二部分,形成所述多条日志信息对应的日志信息模板;
存储模块,用于将所述多条日志信息对应的日志信息模板和所述多条日志信息的第二部分分别存储至数据库。
在另一种可能的实现方式中,所述装置还包括:生成模块,用于生成所述多条日志信息对应的所述日志信息模板的标识。
在另一种可能的实现方式中,存储模块具体用于:将所述多条日志信息的第二部分和所述日志信息模板的标识存储在所述数据库的第一空间;将所述日志信息模板和所述日志信息模板的标识存储在所述数据库的第二空间。
第五方面,提供了一种存储日志信息的装置。存储日志信息的装置包括至少一个计算节点,每个计算节点包括处理器和存储器。这至少一个计算节点的处理器用于执行存储器中存储的程序代码,以执行上述第一方面或第一方面可能的实现方式中的方法。
第六方面,提供了一种查询日志信息的装置。查询日志信息的装置包括至少一个计算节点,每个计算节点包括处理器和存储器。这至少一个计算节点的处理器用于执行存储器中存储的程序代码,以执行上述第二方面或第二方面可能的实现方式中的方法。
第七方面,本申请提供一种非瞬态的非易失性计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在至少一个计算节点上运行时,使得至少一个计算节点执行上述第一方面或第一方面可能的实现方式中的方法。
第八方面,本申请提供一种非瞬态的非易失性计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在至少一个计算节点上运行时,使得至少一个计算节点执行上述第二方面或第二方面可能的实现方式中的方法。
第九方面,本申请提供了一种包含指令的计算机程序产品,当其在至少一个计算节点上运行时,使得至少一个计算节点执行上述第一方面或第一方面可能的实现方式中的方法。
第十方面,本申请提供了一种包含指令的计算机程序产品,当其在至少一个计算节点上运行时,使得至少一个计算节点执行上述第一方面或第一方面可能的实现方式中的方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1是应用于本申请实施例的一种分布式日志服务系统100的示意性框图。
图2是本申请实施例提供的一种存储日志信息的方法的示意性流程图。
图3是本申请实施例提供的一种存储日志信息的装置300的结构性示意性图。
图4是本申请实施例提供的一种存储日志信息的装置400的结构性示意性图。
图5是本申请实施例提供的一种查询日志信息的装置500的结构性示意性图。
图6是本申请实施例提供的一种查询日志信息的装置600的结构性示意性图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
计算机日志是在计算机系统运行过程中由操作系统,中间件,平台自身产生或者由用户开发的程序组件产生的,记录了设备和系统自身的运行状态和使用情况,这些描述信息主要描述了系统所进行的关键操作以及系统在运行过程中所发生的错误和异常等。用户可以通过对系统日志的分析,了解系统在运行中经常出现或者偶然出现的问题,从而可以有针对性地改善对系统的运营维护,进而提高系统运行的安全和效率。
在大规模分布式场景下,需要有专门的日志系统或者日志服务负责收集、存储来自大量被管节点的日志信息,并提供相关的检索接口供用户过滤分析他们关心的日志数据。下面对分布式的日志系统100进行详细描述。
图1是应用于本申请实施例的一种分布式日志服务系统100的示意性框图。如图1所示,系统100可以包括服务端110、至少一个节点。
本申请实施例对至少一个节点的数量不做具体限定,为了便于描述,本申请实施例以节点120、节点130为例进行描述。
应理解,节点120、节点130可以是一台物理主机上安装的不同虚拟机(virtualmachine,VM),也可以是不同物理主机上安装的VM。节点120、节点130也可以是物理主机。
日志服务系统100中的至少一个节点在运行过程中,其操作系统、平台自身或者由用户开发的程序组件可以产生相应的日志信息,该日志信息记载了至少一个节点所进行的关键操作以及在运行过程中所发生的错误和异常等。至少一个节点可以将产生的日志信息保存在相应的日志文件中。用户通过对系统日志的分析,不仅可以了解至少一个节点在运行中经常出现或者偶然出现的问题,从而有针对性地对至少一个节点的运营维护进行改善。还可以通过分析日志信息模板所对应的标识的分布规律,挖掘潜在的系统异常,并提前发出报警提醒。
节点120和节点130上分别部署有日志采集代理121、日志采集代理131。节点120中的日志采集代理121可以获取节点120中指定目录下的日志文件中保存的日志信息,并通过消息中间件114将获取到的节点120的日志信息上报至服务端110。同样的,节点130中的日志采集代理131可以获取节点130中指定目录下的日志文件中保存的日志信息,并通过消息中间件114将获取到的节点130的日志信息上报至服务端110。
需要说明的是,日志采集代理模块121、日志采集代理模块131可以是软件程序实现的模块。
日志服务系统110中的数据预处理模块113可以在接收到节点120和/或节点130分别上报的日志信息之后,可以对上报的日志信息进行预处理。并将处理之后的日志信息存储在服务端110中的分布式数据库112中。
具体的,服务端110中的数据预处理模块113可以在接收到消息中间件114上报的至少一个节点的日志信息之后,对日志信息加上标签信息之后存储至分布式数据库112中。以便于用户在检索相关的日志信息时,可以通过标签信息对相关的日志信息进行搜索。
应理解,标签信息可以是由日志信息自身携带的,也可以是至少一个节点中的日志采集代理根据日志信息所在的节点及上面运行的应用服务的属性获取到的。本申请实施例对标签信息的内容不做具体限定,可以包括但不限于:日志信息所在的日志文件的保存路径,日志信息所在节点的互联网协议(internet protocol,IP)地址,日志信息所属服务所在的公有云的区域(region)信息,日志信息所属的服务信息(例如,服务标识(identifier,ID)),日志信息所属的组件信息(例如,组件ID),租户ID等。
服务端110中的日志服务应用程序接口(application programinterface,API)111可以对用户提供检索功能,用户可以通过浏览器或命令行工具,使用日志服务API 111提供的接口与日志服务系统100进行交互。
具体的,用户可以通过日志服务API 111对其需要的日志信息进行搜索,例如,可以对日志信息的各种标签信息以及日志关键字,获取存储在分布式数据库112中的日志信息。以便于根据获取到的日志信息,了解节点在运行中经常出现或偶然出现的问题,可以有针对性的对节点的运营进行维护,从而提高节点的系统运行效率和效率。
传统的日志存储方案中,由于是直接将原始的日志信息直接存储在数据库中,其中存储大量重复的信息。一方面,在日志信息数量超过一定程度之后,大量日志信息的采集,跨节点的传输,大量数据库的资源的占用都将面临巨大的挑战。另一方面,原始日志信息的直接存储也会降低对该日志信息的使用效率。例如,在模糊搜索场景下,在巨量原始日志信息中搜索耗时很长,在使用日志信息做异常检测以及其它相关的数据挖掘分析时,需要集中对大量日志信息进行分析,实时性差,不利于快速发现问题。
本申请实施例提供了一种存储数据的方法,可以对原始的日志信息进行处理,通过消除原始数据中大量重复的数据,减小原始的数据所占的存储空间。
需要说明的是,图1为应用于本申请实施例的一种可能的场景,本申请实施例提供的方法还可以应用到大量重复的非结构化的数据进行存储的场景中。
图2是本申请实施例提供的一种存储日志信息的方法的示意性流程图。如图1所示,该方法可以包括步骤210-230,下面分别对步骤210-230进行详细描述。
步骤210:从多条日志信息中识别出所述多条日志信息的第一部分和第二部分。
本申请实施例中可以从多条日志信息中识别出多条日志信息的第一部分和第二部分,其中第一部分可以是多条日志信息中小于或等于第一阈值条日志信息中相同的部分,第二部分为在多条日志信息中小于或等于第二阈值条日志信息中不相同的部分。
应理解,第一阈值可以小于或等于多条日志信息的总数量,第二阈值可以小于或等于多条日志信息的总数量。
需要说明的是,第一阈值和第二阈值可以相等也可以不相等,本申请实施例对此不作具体限定。
参见图1,本申请实施例中可以是至少一个节点的日志采集代理对多条日志信息中小于或等于第一阈值条日志信息进行对比识别,也可以是服务端110中的数据预处理模块113对多条日志信息中小于或等于第一阈值条日志信息进行对比识别。作为一个示例,在节点120中的日志采集代理121的处理器和/或内存相对于其处理的数据量而言较充足的情况下,日志采集代理121可以在从指定目录的日志文件中获取存储的原始的日志信息之后,对多条日志信息中小于或等于第一阈值条日志信息进行识别,识别出上述第一部分和第二部分。作为另一个示例,在节点120中的日志采集代理121的处理器和/或内存相对于其处理的数据量而言较受限的情况下,服务端110中的数据预处理模块113可以在接收到至少一个节点中的日志采集代理上报的多个原始的日志信息之后,对多条日志信息中小于或等于第一阈值条日志信息进行对比识别,通过对比多条日志信息中小于或等于第一阈值条日志信息,识别出上述第一部分和第二部分。
步骤220:用占位标示符代替多条日志信息的第二部分,形成所述多条日志信息对应的日志信息模板。
本申请实施例可以对从上述识别出的所述多条日志信息的第二部分进行处理,例如,可以通过用占位标示符替换多条日志信息中的第二部分,从而形成一个多条日志对应一个日志信息模板,使得日志信息模板与M条原始日志信息之间为1:M的对应关系,从而消除多条日志信息中大量重复的部分。其中,M为大于1的正整数。
本申请实施例中可以通过占位标示符区分多条日志信息的第二部分中的类型,也可以不用区分多条日志信息的第二部分中变化部分的类型,本申请对此不作具体限定。作为一个示例,在通过占位标示符区分多条日志信息的第二部分中的变量类型时,可以用%d作为表示数值型变量的占位标示符,用%s作为表示字符串型的变量占位标示符。
步骤230:将所述多条日志信息对应的日志信息模板和所述多条日志信息的第二部分分别存储至数据库。
将本申请实施例中可以在对多个日志信息进行区分对比,识别出多个日志信息的第一部分和第二部分。将多个日志信息对应的一个日志信息模板存储在分布式数据库112的一个实体中,并将每个日志信息中变化的部分存储在分布式数据库112的另一个实体中。
上述技术方案中,可以对原始日志信息进行处理,在识别出多个日志信息中变化的部分和不变的部分之后,将每个日志信息中不变的部分只存储一个,并将每个日志信息精简成包括其变化的部分以及日志信息模板标识、该日志信息相关的标签信息等。从而使得精简之后的日志信息不用携带模板中的一长串字符序列,减小日志信息所占的存储空间,节约日志服务系统中的存储资源消耗。
可选的,在一些实施例中,可以生成每一个日志信息模板所对应的模板标识,并将每一个日志信息精简为包括:日志信息模板标识、变量值、时间戳、标签信息等。以便于用户在对日志信息进行检索并还原成原始信息的过程中,可以通过每一个日志信息中包括的日志信息模板标识,获取到日志信息模板。从而可以根据日志信息模板以及日志信息中包括的时间戳、变量值将日志信息恢复成原始的状态。
应理解,精简之后的日志信息中包括的时间戳可以是日志信息本身记录的。标签信息可以是由日志信息自身记的,也可以是至少一个节点中的日志采集代理根据日志信息所在的节点及上面运行的应用服务的属性获取到的,具体的请参考上文中对标签信息的描述,此处不再赘述。
本申请实施例可以通过信息指纹提取算法提取一个信息的特征,并根据这个信息的特征将其转换成一组代码。该代码可以作为每一个日志信息模块所对应的唯一的模板标识,这样可以使得不同的节点下相同的日志信息模板具有相同的标识。作为一个示例而非限定,可以通过摘要信息(message-digest,MD5)算法生成每一个日志信息模块所对应的唯一的模板标识。
应理解,MD5算法是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。下面会结合具体的实施例对通过MD5算法生成出每一个日志信息模块所对应的唯一的模板标识的实现过程进行详细描述,此处不再赘述。
本申请实施例中,通过采用信息指纹技术生成每一个日志信息模板所对应的唯一的模板标识,可以使得不同的节点下相同的日志信息模板具有相同的标识,从而可以减少统一为每一个日志信息模板分配其对应的标识的跨节点之间的通信所带来的额外开销和复杂度。
下面结合具体的日志信息内容,对上述过程中描述的对日志信息进行精简的具体实现过程进行详细描述。为了便于描述,下面以从3个原始日志信息中提取出一个日志信息模板为例进行说明。
应理解,下面的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将本申请实施例限于所例示的具体数值或具体场景。本领域技术人员根据所给出的下面的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本申请实施例的范围内。
原始日志信息1:[2018-11-09 13:39:14.696][10.0.26.102][INF0][bulk_thread-2][BulkHandlerRunable:submits 138]get data from queue timeout!
原始日志信息2:[2018-11-09 13:39:15.698][10.0.26.102][INF0][bulk_thread-5][BulkHandlerRunable:submits 138]get data from queue timeout!
原始日志信息3:[2018-11-09 13:39:16.066][10.0.26.102][INF0][bulk_thread-3][BulkHandlerRunable:submits 138]get data from queue timeout!
步骤1:识别出3个原始日志信息中每个原始日志信息中变化的部分和不变的部分。
本申请实施例中可以通过模式提取算法识别并提取出3个原始日志信息中每个原始日志信息中变化的部分和不变的部分。作为示例而非限定,可以通过迭代分区日志挖掘(iterative partitioning log mining,IPLOM)算法对识别出3个原始日志信息中每个原始日志信息中变化的部分和不变的部分,并可以用占位标示符替换3个原始日志信息中每个原始日志信息变化的部分。
经过步骤1的模式提取算法,对上述3个原始日志信息进行对比之后的识别结果如下所示:
原始日志信息1相对于原始日志信息2、3的比较结果如下:
不变的部分:[10.0.26.102][INF0][bulk_thread-][BulkHandlerRunable:submits 138]get data from queue timeout!
变化的部分:2,[2018-11-09 13:39:14.696]
用占位标示符%d替换原始日志信息1中变化的数值部分,用tm字段表示原始日志信息1中日志时间的字段,日志原始日志信息1可以表示为:
tm[10.0.26.102][INF0][bulk_thread-%d][BulkHandler Runable:submits138]get data from queue timeout!
其中,%d=2,tm=[2018-11-09 13:39:14.696]
原始日志信息2相对于原始日志信息1、3的比较结果如下:
不变的部分:[10.0.26.102][INF0][bulk_thread-][BulkHandlerRunable:submits 138]get data from queue timeout!
变化的部分:5,[2018-11-09 13:39:15.698]
用占位标示符%d替换原始日志信息2中变化的部分,用tm字段表示原始日志信息2中日志时间的字段,原始日志信息2可以表示为:
tm[10.0.26.102][INF0][bulk_thread-%d][BulkHandler Runable:submits138]get data from queue timeout!
其中,%d=5,tm=[2018-11-09 13:39:15.698]。
原始日志信息3相对于原始日志信息1、2的比较结果如下:
不变的部分:[10.0.26.102][INF0][bulk_thread-][BulkHandlerRunable:submits 138]get data from queue timeout!
变化的部分:3,[2018-11-09 13:39:16.066]
用占位标示符%d替换原始日志信息3中变化的部分,用tm字段表示原始日志信息3中日志时间的字段,原始日志信息3可以表示为:
tm[10.0.26.102][INF0][bulk_thread-%d][BulkHandler Runable:submits138]get data from queue timeout!
其中,%d=3,tm=[2018-11-09 13:39:16.066]。
综上所述,3个原始日志信息中识别出的日志信息模板为:tm[INF0][bulk_thread-%d][BulkHandlerRunable:submits 138]get data from queue timeout!
步骤2:生成日志信息模板对应的唯一的标识。
在包括至少一个节点的分布式场景下,不同的节点可能存在相同的日志信息模板,使得日志信息模板与该模板的标识一一对应。本申请实施例可以使用数字指纹技术来实现日志信息模板与该模板的标识一一对应,例如,采用MD5算法生成出日志信息模板对应的唯一的标识。
具体的,MD5算法上述日志信息模板的字符串进行计算,生成128位(16字节)的散列值,该散列值可以作为上述日志信息模板对应的唯一的标识。
本申请实施例中还可以从通过MD5算法生成一个128位(16字节)的散列值中选择出64位(8字节)散列值,并将64位的散列值作为实际的日志信息模板的对应的唯一的标识。从128位散列值中选择64位散列值的实现方式有多种,作为一个示例,从128位散列值中选择出64位的奇数位部分作为64位散列值。作为另一个示例,从128位散列值中选择出64个偶数位的部分作为64位散列值。作为另一个示例,从128位散列值中选择出中间的64位作为64位散列值。作为另一个示例,还可以将128位散列值折叠后相加得到64位散列值。
例如,可以用tid字段表示上述日志信息模板的标识。
{tid=5085657271133051000
tm[INF0][bulk_thread-%d][BulkHandlerRunable:submits 138]get datafrom queue timeout!}
步骤3:转换原始日志信息中日志时间的字段。
应理解,步骤3是可选的。
为了减少表示日志时间的字段中的字符串所占用的存储资源,可以对原始日志信息中的日志时间进行转换,将日志时间转换成基准时间的毫秒偏移数。作为一个示例,可以以1970年1月1日作为基准时间,计算每个图原始日志信息中记录的时间相对于基准时间的秒数偏移值。
例如,计算出的原始日志信息1中的tm=1541770754696,原始日志信息2中的tm=1541770755698,原始日志信息3中的tm=1541770756066。
步骤4:表示每一个原始日志信息中的变化的部分。
本申请实施例中可以增加存放每一个原始日志信息中变量值的字段,作为一个示例,用mg字段表示变量值列表字符串。
例如,原始日志信息1中的变量值列表字符串mg=(2),原始日志信息2中的变量值列表字符串mg=(5),原始日志信息3中的变量值列表字符串mg=(3)。
本申请实施例中还可以增加存放每一个原始日志信息中变量值的个数的字段,作为一个示例,用VL字段表示变量值的个数。
例如,原始日志信息1中的变量值的个数VL=1,原始日志信息2中的变量值的个数VL=1,原始日志信息3中的变量值的个数VL=1。
步骤5:添加每一个原始日志信息的标签信息。
本申请实施例中可以对每一个原始日志信息添加相关的标签信息,以便于通过各种标签信息获取到需要的日志信息。
为了便于描述,本申请实施例以标签信息为日志信息所在的日志文件的路径、日志信息所在节点的IP地址为例进行说明。
以标签信息为日志信息所在节点的IP地址为例,原始日志信息1中的IP=10.0.26.102,原始日志信息2中的IP=10.0.26.102,原始日志信息3中的IP=10.0.26.102。
以标签信息为日志信息所在的日志文件的路径为例,本申请实施例可以对每一个日志文件的路径进行信息指纹提取,形成每一个日志文件的路径相对应的唯一的标识,从而可以节省存储资源。具体的信息指纹提取并生成标识的过程与日志信息模板标识的计算过程类似,具体的请参考日志信息模板标识的生成过程,此处不再赘述。
作为一个示例,用pid字段表示日志信息所在的日志文件的路径。例如,原始日志信息1中的pid=864995200973638000,原始日志信息2中的pid=864995200973638000,原始日志信息3中的pid=864995200973638000。
经过上述步骤1-步骤5,将上述3个原始日志信息精简成:时间戳+模板标识+变量+相关标签信息。并可以将模板标识和模板分别存储在分布式数据库112的不同的表中。
作为一个示例,可以将原始日志信息拆分成3个部分分别存储。例如,表1用于存储精简之后的日志信息,表2用于存储日志信息所在的日志文件的路径,表3用于存储3个原始日志信息的模板。
表1中存储的内容如下所示:
精简之后的日志信息1可以表示为:
精简之后的日志信息2可以表示为:
精简之后的日志信息3可以表示为:
表2中存储的内容如下所示:
表3中存储的内容如下所示:
可以理解的,本申请实施例中,可以执行本申请实施例中的部分或全部步骤,这些步骤或操作仅是示例,本申请实施例还可以执行其它操作或者各种操作的变形。此外,各个步骤可以按照本申请实施例呈现的不同的顺序来执行,并且有可能并非要执行本申请实施例中的全部操作。
可选的,在一些实施例中,本申请实施例中用户在通过日志服务API 111对存储的日志信息进行检索的过程中,可以在日志信息模板中进行关键字的搜索,从而可快速查找到用户需要的日志信息,减少搜索的时间。
可选的,在一些实施例中,本申请实施例还可以在日志服务API 111端对存储的精简之后的日志信息进行还原,以便于用户可以获取到原始的日志信息,并可以通过对原始的日志信息的分析,了解节点在运行中经常出现或者偶然出现的问题。
具体的,如图1所示,在分布式数据库112中,用户可以通过日志服务API 111端输入各种标签信息以及日志关键字来获取到需要的日志信息。分布式数据库112可以根据关键字中包括的日志信息模板标识tid获取相关联的日志信息模板以及变量值列表字符串mg,并根据获取到的日志信息模板以及变量值列表字符串mg,将变量值列表字符串mg自动带入日志信息模板的占位标示符的位置,从而还原出原始的日志信息。
需要说明的是,本申请实施例中的分布式数据库112可以是分布式的关系型数据库,也可以是带有join功能的非关系型数据库。分布式的关系型数据库或带有join功能的非关系型数据库可以通过日志信息模板标识tid获取相关联的日志信息模板以及变量值列表字符串mg。
可选的,在一些实施例中,用户可以通过浏览器使用日志服务API 111提供的接口与日志服务系统100进行交互。
具体的,用户可以通过浏览器输入查询请求,该查询请求中可以包括用于需要查询的日志信息的关键字和/或相关的标签信息。数据库可以根据查询请求中的日志信息的关键字和/或相关的标签信息从数据库的表中获取存储的日志信息,并可以将存储的日志信息反馈给用户。用户不仅可以通过对日志信息的分析,了解节点在运行中经常出现或者偶然出现的问题,还可以通过分析日志信息模板所对应的标识的分布规律,挖掘潜在的系统异常,并提前发出报警提醒。
应理解,查询请求中包括的关键字可以是日志信息中的某一个字符串。
作为一个示例,用户输入的查询请求为查询“2018年1月1日”的日志信息,数据库可以在接收到查询请求之后,可以根据查询的时间“2018年1月1日”确定tm的取值。并可以根据tm的取值从数据库的表1中存储的日志信息中获取符合要求的日志信息。同时,数据库的join功能可以从表3中获取该日志信息中的日志信息模板标识所对应的日志信息模板,将表1中存储的日志信息带入到日志信息模板中,生成原始日志信息,并可以将原始日志信息反馈给用户。作为另一个示例,用户还可以在查询请求中输入日志信息模板中的一个字符串,数据库可以在表3中获取该日志信息中的日志信息模板标识所对应的日志信息模板。数据库的join功能还可以从表1中存储的日志信息中获取具有该日志信息模板标识的日志信息,将表1中存储的日志信息带入到日志信息模板中,生成原始日志信息,并可以将原始日志信息反馈给用户。
下面以用户输入的查询请求为查询IP地址为“10.0.26.102”上产生的日志信息作为示例,对用户查询日志信息的过程进行详细的解释说明
用户通过日志服务API 111输入的查询请求中包括:IP=10.0.26.102。数据库112可以根据IP=10.0.26.102,从表1中存储的日志信息中获取到IP=10.0.26.102的日志信息,如下所示:
数据库112的join功能还可以根据上述日志信息中的为tid=5085657271133051000,从表3中获取tid=5085657271133051000对应的日志信息模板,如下所示:
数据库112可以根据日志信息中的tm还原出日志信息中原始携带的时间戳信息。例如,将tm=1541770754696还原成[2018-11-09 13:39:14.696],将tm=1541770755698还原成[2018-11-09 13:39:15.698],将tm=1541770756066还原成[2018-11-09 13:39:16.066]。
数据库112还可以将原始携带的时间戳信息以及上述从表1中获取到的符合IP=10.0.26.102的日志信息带入到日志信息模板中,形成原始日志信息。将原始日志信息提供给日志服务API 111的前端界面,以实现对原始日志信息的还原。
提供给日志服务API 111的前端界面的原始日志信息如下所示:
日志信息1:
[2018-11-09 13:39:14.696][10.0.26.102][INF0][bulk_thread-2][BulkHandlerRunable:submits 138]get data from queue timeout!
日志信息2:
[2018-11-09 13:39:15.698][10.0.26.102][INF0][bulk_thread-5][BulkHandlerRunable:submits 138]get data from queue timeout!
日志信息3:
[2018-11-09 13:39:16.066][10.0.26.102][INF0][bulk_thread-3][BulkHandlerRunable:submits 138]get data from queue timeout!
上文结合图1至图2,详细描述了本申请实施例提供存储日志信息的方法以及查询日志信息的方法,下面将结合图3-图4,详细描述本申请的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图3是本申请实施例提供的一种存储日志信息的装置300的结构性示意性图。该装置300包括:识别模块310、处理模块320、存储模块330。
识别模块310,用于从多条日志信息中识别出所述多条日志信息的第一部分和第二部分,其中,所述多条日志信息的第一部分为在所述多条日志信息中小于或等于第一阈值条日志信息中相同的部分,所述多条日志信息的第二部分为在所述多条日志信息中小于或等于第二阈值条日志信息中不相同的部分;
处理模块320,用于通过占位标示符代替所述多条日志信息的第二部分,形成所述多条日志信息对应的日志信息模板;
存储模块330,用于将所述多条日志信息对应的日志信息模板和所述多条日志信息的第二部分分别存储至数据库。
可选的,在一些实施例中,所述装置300还包括:
生成模块340,用于生成所述多条日志信息对应的所述日志信息模板的标识。
可选的,在一些实施例中,所述存储模块330具体用于:将所述多条日志信息的第二部分和所述日志信息模板的标识存储在所述数据库的第一空间;将所述日志信息模板和所述日志信息模板的标识存储在所述数据库的第二空间。
应理解的是,本申请实施例的存储日志信息的装置300可以通过专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complexprogrammable logical device,CPLD),现场可编程门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现图2所示的存储日志信息的方法时,存储日志信息的装置300及其各个模块也可以为软件模块。
图4是本申请实施例提供的一种存储日志信息的装置400的结构性示意性图。存储日志信息的装置400包括至少一个计算节点410,计算节点410可以包括处理单元411和通信接口412,处理单元411用于执行各种软件程序所定义的功能,例如,用于实现存储日志信息的功能。通信接口412用于与其他计算节点进行通信交互,其他设备可以是其它物理服务器,具体地,通信接口412可以是网络适配卡。
可选地,该计算节点410还可以包括输入/输出接口413,输入/输出接口413连接有输入/输出设备,用于接收输入的信息,输出操作结果。输入/输出接口413可以为鼠标、键盘、显示器、或者光驱等。可选地,该计算节点410还可以包括辅助存储器414,一般也称为外存,辅助存储器414的存储介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如光盘)、或者半导体介质(例如固态硬盘)等。
可选的,计算节点410还可以包括总线415。其中,处理单元411、通信接口412、输入/输出接口413、辅助存储器414可以通过总线415连接。总线415可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extendedindustry standard architecture,EISA)总线等。总线415可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
处理单元411可以有多种具体实现形式,例如处理单元411可以包括处理器4112和存储器4111,处理器4112根据存储器4111中存储的程序指令执行图2所示的实施例的相关操作。处理器4112可以为中央处理单元(central processing unit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(fieldprogrammable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器410采用一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
应理解,计算节点410的处理器4112可以通过存储在存储器4111中的程序指令来运行如图3所示的识别模块310、处理模块320、存储模块330中的至少一个。
还应理解,计算节点410的存储器4111或辅助存储器414还可以存储有图2所述的数据库。
存储日志信息的装置400中的各个单元的上述和其它操作和/或功能分别为了实现图2中的方法的相应流程,为了简洁,在此不再赘述。
图5是本申请实施例提供的一种查询日志信息的装置500的结构性示意性图。该查询日志信息的500包括:接收模块510、获取模块520、返回模块530。
接收模块510,用于接收查询请求,所述查询请求用于查询数据库中存储的日志信息;
获取模块520,用于根据所述查询请求从所述数据库中获取存储的所述多条日志信息的第二部分和所述多条日志信息对应的日志信息模板;将所述多条日志信息的第二部分带入所述多条日志信息对应的日志信息模板获得该查询请求对应的日志信息;
可选的,还可以包括返回模块530,用于向发出该查询请求的客户端返回所述对应的日志信息。
返回模块530和接收模块510也可以由同一模块实现。
可选的,在一些实施例中,所述装置500还包括:
识别模块540,用于从多条日志信息中识别出所述多条日志信息的所述第一部分和所述第二部分;
处理模块550,用于用占位标示符代替所述多条日志信息的第二部分,形成所述多条日志信息对应的日志信息模板;
存储模块560,用于将所述多条日志信息对应的日志信息模板和所述多条日志信息的第二部分分别存储至数据库。
可选的,在一些实施例中,所述装置500还包括:
生成模块570,用于生成所述多条日志信息对应的所述日志信息模板的标识。
可选的,在一些实施例中,存储模块560具体用于:将所述多条日志信息的第二部分和所述日志信息模板的标识存储在所述数据库的第一空间;将所述日志信息模板和所述日志信息模板的标识存储在所述数据库的第二空间。
应理解的是,本申请实施例的查询日志信息的装置500可以通过专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complexprogrammable logical device,CPLD),现场可编程门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现查询日志信息的方法时,查询日志信息的装置500及其各个模块也可以为软件模块。
图6是本申请实施例提供的一种查询日志信息的装置600的结构性示意性图。查询日志信息的装置600包括至少一个计算节点610,计算节点610可以包括处理单元611和通信接口612,处理单元611用于执行各种软件程序所定义的功能,例如,用于实现存储日志信息的功能。通信接口412用于与其他计算节点进行通信交互,其他设备可以是其它物理服务器,具体地,通信接口612可以是网络适配卡。
可选地,该计算节点610还可以包括输入/输出接口613,输入/输出接口413连接有输入/输出设备,用于接收输入的信息,输出操作结果。输入/输出接口613可以为鼠标、键盘、显示器、或者光驱等。可选地,该计算节点610还可以包括辅助存储器614,一般也称为外存,辅助存储器614的存储介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如光盘)、或者半导体介质(例如固态硬盘)等。
可选的,计算节点610还可以包括总线615。其中,处理单元611、通信接口612、输入/输出接口613、辅助存储器614可以通过总线615连接。总线615与总线415的功能和实现方式类似。
处理单元611可以有多种具体实现形式,例如处理单元611可以包括处理器6112和存储器6111,处理器6112根据存储器6111中存储的程序指令执行上述实施例的相关操作。处理器6112可以为中央处理单元(central processing unit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(fieldprogrammable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器610采用一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
应理解,计算节点610的处理器6112可以通过存储在存储器6111中的程序指令来运行如图5所示的接收模块510、获取模块520、返回模块530中的至少一个。
还应理解,计算节点610的存储器6111或辅助存储器614还可以存储有图2所述的数据库。
查询日志信息的装置600中的各个单元的上述和其它操作和/或功能分别为了实现上述查询日志信息的方法的相应流程,为了简洁,在此不再赘述。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
Claims (18)
1.一种存储日志信息的方法,其特征在于,所述方法包括:
从多条日志信息中识别出所述多条日志信息的第一部分和第二部分,其中,所述多条日志信息的第一部分为在所述多条日志信息中小于或等于第一阈值条日志信息中相同的部分,所述多条日志信息的第二部分为在所述多条日志信息中小于或等于第二阈值条日志信息中不相同的部分;
用占位标示符代替所述多条日志信息的第二部分,形成所述多条日志信息对应的日志信息模板,所述日志信息模板包括所述多条日志信息的第一部分;
将所述多条日志信息对应的日志信息模板和所述多条日志信息的第二部分分别存储至数据库。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
生成所述多条日志信息对应的所述日志信息模板的标识。
3.根据权利要求2所述的方法,其特征在于,所述将所述多条日志信息对应的日志信息模板和所述多条日志信息的第二部分分别存储至数据库,包括:
将所述多条日志信息的第二部分和所述日志信息模板的标识存储在所述数据库的第一空间;
将所述日志信息模板和所述日志信息模板的标识存储在所述数据库的第二空间。
4.一种查询日志信息的方法,其特征在于,所述方法应用于日志信息查询系统,所述日志信息查询系统包括数据库,所述数据库存储有多条日志信息的第二部分和所述多条日志信息对应的日志信息模板,所述日志信息模板包括所述多条日志信息的第一部分,所述多条日志信息的第一部分为在所述多条日志信息中小于或等于第一阈值条日志信息中相同的部分,所述多条日志信息的第二部分为在所述多条日志信息中小于或等于第二阈值条日志信息中不相同的部分,所述方法包括:
接收查询请求,所述查询请求用于查询数据库中存储的日志信息;
根据所述查询请求从所述数据库中获取存储的所述多条日志信息的第二部分和所述多条日志信息对应的日志信息模板;
将所述多条日志信息的第二部分带入所述多条日志信息对应的日志信息模板获得对应的日志信息。
5.根据权利要求4所述的方法,其特征在于,在所述接收查询请求之前,所述方法还包括:
从多条日志信息中识别出所述多条日志信息的所述第一部分和所述多条日志信息的所述第二部分;
用占位标示符代替所述多条日志信息的所述第二部分,形成所述多条日志信息对应的日志信息模板;
将所述多条日志信息对应的日志信息模板和所述多条日志信息的第二部分分别存储至所述数据库。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
生成所述多条日志信息对应的所述日志信息模板的标识。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
将所述多条日志信息的第二部分和所述日志信息模板的标识存储在所述数据库的第一空间;
将所述日志信息模板和所述日志信息模板的标识存储在所述数据库的第二空间。
8.一种存储日志信息的装置,其特征在于,所述装置包括:
识别模块,用于从多条日志信息中识别出所述多条日志信息的第一部分和第二部分,其中,所述多条日志信息的第一部分为在所述多条日志信息中小于或等于第一阈值条日志信息中相同的部分,所述多条日志信息的第二部分为在所述多条日志信息中小于或等于第二阈值条日志信息中不相同的部分;
处理模块,用于通过占位标示符代替所述多条日志信息的第二部分,形成所述多条日志信息对应的日志信息模板,所述日志信息模板包括所述多条日志信息的第一部分;
存储模块,用于将所述多条日志信息对应的日志信息模板和所述多条日志信息的第二部分分别存储至数据库。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
生成模块,用于生成所述多条日志信息对应的所述日志信息模板的标识。
10.根据权利要求9所述的装置,其特征在于,所述存储模块具体用于:
将所述多条日志信息的第二部分和所述日志信息模板的标识存储在所述数据库的第一空间;
将所述日志信息模板和所述日志信息模板的标识存储在所述数据库的第二空间。
11.一种查询日志信息的装置,其特征在于,所述装置应用于日志信息查询系统,所述日志信息查询系统包括数据库,所述数据库存储有多条日志信息的第二部分和所述多条日志信息对应的日志信息模板,所述日志信息模板包括所述多条日志信息的第一部分,所述多条日志信息的第一部分为在所述多条日志信息中小于或等于第一阈值条日志信息中相同的部分,所述多条日志信息的第二部分为在所述多条日志信息中小于或等于第二阈值条日志信息中不相同的部分,所述装置包括:
接收模块,用于接收查询请求,所述查询请求用于查询数据库中存储的日志信息;
获取模块,用于根据所述查询请求从所述数据库中获取存储的所述多条日志信息的第二部分和所述多条日志信息对应的日志信息模板;将所述多条日志信息的第二部分带入所述多条日志信息对应的日志信息模板获得对应的日志信息。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
识别模块,用于从多条日志信息中识别出所述多条日志信息的所述第一部分和所述第二部分;
处理模块,用于用占位标示符代替所述多条日志信息的第二部分,形成所述多条日志信息对应的日志信息模板;
存储模块,用于将所述多条日志信息对应的日志信息模板和所述多条日志信息的第二部分分别存储至数据库。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
生成模块,用于生成所述多条日志信息对应的所述日志信息模板的标识。
14.根据权利要求13所述的装置,其特征在于,存储模块具体用于:
将所述多条日志信息的第二部分和所述日志信息模板的标识存储在所述数据库的第一空间;
将所述日志信息模板和所述日志信息模板的标识存储在所述数据库的第二空间。
15.一种存储日志信息的装置,其特征在于,包括至少一个计算节点,每个计算节点包括处理器和存储器,所述存储日志信息的装置运行时,所述处理器运行所述存储器中的计算机执行指令以执行如权利要求1至3中任一项中所述的方法。
16.一种查询日志信息的装置,其特征在于,包括至少一个计算节点,每个计算节点包括处理器和存储器,所述存储日志信息的装置运行时,所述处理器运行所述存储器中的计算机执行指令以执行如权利要求4至7中任一项中所述的方法。
17.一种计算机非瞬态的非易失性计算机可读存储介质,其特征在于,包括计算机程序,当该计算机程序在至少一个计算节点上运行时,使得该至少一个计算节点执行如权利要求1至3中任一项所述的方法。
18.一种计算机非瞬态的非易失性计算机可读存储介质,其特征在于,包括计算机程序,当该计算机程序在至少一个计算节点上运行时,使得该至少一个计算节点执行如权利要求4至7中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910106607.0A CN109885545A (zh) | 2019-02-02 | 2019-02-02 | 存储、查询日志信息的方法、装置 |
PCT/CN2019/107127 WO2020155651A1 (zh) | 2019-02-02 | 2019-09-21 | 存储、查询日志信息的方法、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910106607.0A CN109885545A (zh) | 2019-02-02 | 2019-02-02 | 存储、查询日志信息的方法、装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109885545A true CN109885545A (zh) | 2019-06-14 |
Family
ID=66927813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910106607.0A Pending CN109885545A (zh) | 2019-02-02 | 2019-02-02 | 存储、查询日志信息的方法、装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109885545A (zh) |
WO (1) | WO2020155651A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020155651A1 (zh) * | 2019-02-02 | 2020-08-06 | 华为技术有限公司 | 存储、查询日志信息的方法、装置 |
CN112152823A (zh) * | 2019-06-26 | 2020-12-29 | 北京易真学思教育科技有限公司 | 网站运行错误监控方法、装置及计算机存储介质 |
CN113420003A (zh) * | 2021-06-30 | 2021-09-21 | 中国航空油料有限责任公司 | 一种数据交互日志的处理方法、装置、设备及介质 |
CN113472555A (zh) * | 2020-03-30 | 2021-10-01 | 华为技术有限公司 | 故障检测方法、系统、装置、服务器及存储介质 |
CN116894021A (zh) * | 2023-05-24 | 2023-10-17 | 北京优特捷信息技术有限公司 | 一种日志数据存储方法、查询方法、装置、设备及介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116644039B (zh) * | 2023-05-25 | 2023-12-19 | 安徽继远软件有限公司 | 一种基于大数据的在线能力运营日志自动采集分析的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080072140A1 (en) * | 2006-07-05 | 2008-03-20 | Vydiswaran V G V | Techniques for inducing high quality structural templates for electronic documents |
US20110219046A1 (en) * | 2010-03-05 | 2011-09-08 | Igor Nesmyanovich | System, method and computer program product for managing data storage and rule-driven communications for a plurality of tenants |
CN103544176A (zh) * | 2012-07-13 | 2014-01-29 | 百度在线网络技术(北京)有限公司 | 用于生成多个页面所对应的页面结构模板的方法和设备 |
CN104331487A (zh) * | 2014-11-13 | 2015-02-04 | 携程计算机技术(上海)有限公司 | 日志的处理方法及装置 |
CN108241658A (zh) * | 2016-12-24 | 2018-07-03 | 北京亿阳信通科技有限公司 | 一种日志模式发现方法及系统 |
CN108694206A (zh) * | 2017-04-11 | 2018-10-23 | 富士通株式会社 | 信息处理方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8533193B2 (en) * | 2010-11-17 | 2013-09-10 | Hewlett-Packard Development Company, L.P. | Managing log entries |
US8620928B1 (en) * | 2012-07-16 | 2013-12-31 | International Business Machines Corporation | Automatically generating a log parser given a sample log |
US9166866B2 (en) * | 2013-04-30 | 2015-10-20 | Microsoft Technology Licensing, Llc | Hydration and dehydration with placeholders |
CN109885545A (zh) * | 2019-02-02 | 2019-06-14 | 华为技术有限公司 | 存储、查询日志信息的方法、装置 |
-
2019
- 2019-02-02 CN CN201910106607.0A patent/CN109885545A/zh active Pending
- 2019-09-21 WO PCT/CN2019/107127 patent/WO2020155651A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080072140A1 (en) * | 2006-07-05 | 2008-03-20 | Vydiswaran V G V | Techniques for inducing high quality structural templates for electronic documents |
US20110219046A1 (en) * | 2010-03-05 | 2011-09-08 | Igor Nesmyanovich | System, method and computer program product for managing data storage and rule-driven communications for a plurality of tenants |
CN103544176A (zh) * | 2012-07-13 | 2014-01-29 | 百度在线网络技术(北京)有限公司 | 用于生成多个页面所对应的页面结构模板的方法和设备 |
CN104331487A (zh) * | 2014-11-13 | 2015-02-04 | 携程计算机技术(上海)有限公司 | 日志的处理方法及装置 |
CN108241658A (zh) * | 2016-12-24 | 2018-07-03 | 北京亿阳信通科技有限公司 | 一种日志模式发现方法及系统 |
CN108694206A (zh) * | 2017-04-11 | 2018-10-23 | 富士通株式会社 | 信息处理方法和装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020155651A1 (zh) * | 2019-02-02 | 2020-08-06 | 华为技术有限公司 | 存储、查询日志信息的方法、装置 |
CN112152823A (zh) * | 2019-06-26 | 2020-12-29 | 北京易真学思教育科技有限公司 | 网站运行错误监控方法、装置及计算机存储介质 |
CN113472555A (zh) * | 2020-03-30 | 2021-10-01 | 华为技术有限公司 | 故障检测方法、系统、装置、服务器及存储介质 |
CN113472555B (zh) * | 2020-03-30 | 2022-09-23 | 华为技术有限公司 | 故障检测方法、系统、装置、服务器及存储介质 |
CN113420003A (zh) * | 2021-06-30 | 2021-09-21 | 中国航空油料有限责任公司 | 一种数据交互日志的处理方法、装置、设备及介质 |
CN116894021A (zh) * | 2023-05-24 | 2023-10-17 | 北京优特捷信息技术有限公司 | 一种日志数据存储方法、查询方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020155651A1 (zh) | 2020-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109885545A (zh) | 存储、查询日志信息的方法、装置 | |
US11860874B2 (en) | Multi-partitioning data for combination operations | |
US11341131B2 (en) | Query scheduling based on a query-resource allocation and resource availability | |
US11599541B2 (en) | Determining records generated by a processing task of a query | |
US11663227B2 (en) | Generating a subquery for a distinct data intake and query system | |
US20200364223A1 (en) | Search time estimate in a data intake and query system | |
US11615104B2 (en) | Subquery generation based on a data ingest estimate of an external data system | |
US10447772B2 (en) | Managed function execution for processing data streams in real time | |
US10798148B2 (en) | Configuring nodes of distributed systems | |
US20210117425A1 (en) | Management of distributed computing framework components in a data fabric service system | |
US20190095493A1 (en) | Multi-partition operation in combination operations | |
EP2182448A1 (en) | Federated configuration data management | |
CN107111527A (zh) | 用于分析仪器化软件的数据流处理语言 | |
US11829381B2 (en) | Data source metric visualizations | |
WO2020087082A1 (en) | Trace and span sampling and analysis for instrumented software | |
CN108573029B (zh) | 一种获取网络访问关系数据的方法、装置及存储介质 | |
US11604789B1 (en) | Bi-directional query updates in a user interface | |
JP2013140510A (ja) | データ処理方法、分散処理システムおよびプログラム | |
US11681707B1 (en) | Analytics query response transmission | |
US11663172B2 (en) | Cascading payload replication | |
US20180176095A1 (en) | Data analytics rendering for triage efficiency | |
US12130829B2 (en) | Generation of modified queries using a field value for different fields | |
CN117971606A (zh) | 基于ElasticSearch的日志管理系统及方法 | |
US11899670B1 (en) | Generation of queries for execution at a separate system | |
US10324818B2 (en) | Data analytics correlation for heterogeneous monitoring systems |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190614 |
|
RJ01 | Rejection of invention patent application after publication |