CN112579552A - 日志存储及调用方法、装置及系统 - Google Patents
日志存储及调用方法、装置及系统 Download PDFInfo
- Publication number
- CN112579552A CN112579552A CN201910944362.9A CN201910944362A CN112579552A CN 112579552 A CN112579552 A CN 112579552A CN 201910944362 A CN201910944362 A CN 201910944362A CN 112579552 A CN112579552 A CN 112579552A
- Authority
- CN
- China
- Prior art keywords
- log
- target
- log information
- service request
- 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/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供了日志存储及调用方法、装置及系统,该系统包括:请求截取模块,用于拦截针对应用系统的目标业务请求;针对目标业务请求设置唯一的会话标识;日志分析模块,用于获取应用系统中的应用线程在执行目标业务请求的过程中所生成的各日志信息,得到各目标日志信息;对各目标日志信息进行结构化处理,得到各结构化目标日志信息,其中,结构化目标日志信息中包括目标业务请求的会话标识;日志存储模块,用于存储携带有会话标识的各结构化目标日志信息。存储的日志信息中携带有会话标识,利用会话标识能够区分该日志信息为处理哪个用户业务请求时产生的日志,能够便于根据用户业务请求或者用户身份来进行日志管理和查询。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及日志存储及调用方法、装置及系统。
背景技术
传统的日志分析系统通过编写代码或者利用插件直接将日志信息记录在文本文件中,用户可以利用基于文本文件开发的日志查看分析工具,或者将文本日志信息导入到数据库的转换工具构建日志分析系统。
相关技术中,一般日志分析系统采用ELK系统架构,ELK是三个开源软件的缩写,分别表示:Elasticsearch,Logstash,Kibana。在典型的ELK架构中,Logstash作为日志采集模块分布于多台服务器上,把非结构化日志按照规则解析然后输出至Elasticsearch;Elasticsearch为日志存储模块,是存储日志的核心。Kibana是数据分析与可视化分析组件,可以对Elasticsearch中的日志进行高效的搜索、统计分析和可视化操作。
现有大型应用系统一般均采用分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,需要根据问题暴露的关键信息,定位到具体的服务器和服务模块。但是采用上述日志分析系统,因分布式环境,单次请求的运行日志可能散布于多个节点,没办法快速定位用户在一次请求中对应的所有日志,或者说是定位某个用户操作的所有日志,导致无法根据一个请求或者用户身份标示来做日志的搜索及分析,总之现有的日志存储方式不利于日志信息的管理。
发明内容
本申请实施例的目的在于提供一种日志存储及调用方法、装置及系统,以实现方便日志信息的管理。具体技术方案如下:
第一方面,本申请实施例提供了一种日志存储系统,所述系统包括:
请求截取模块、日志分析模块及日志存储模块;
所述请求截取模块,用于拦截针对应用系统的目标业务请求;针对所述目标业务请求设置唯一的会话标识,并将设置会话标识后的所述目标业务请求返还给所述应用系统;
所述日志分析模块,用于获取所述应用系统中的应用线程在执行所述目标业务请求的过程中所生成的各日志信息,得到各目标日志信息;对各所述目标日志信息进行结构化处理,得到各结构化目标日志信息,其中,所述结构化目标日志信息中包括所述目标业务请求的会话标识;
所述日志存储模块,用于存储携带有会话标识的各所述结构化目标日志信息。
可选的,所述系统还包括:
日志收集模块,用于收集所述应用系统中的各应用线程的日志信息,并将各所述应用线程的日志信息发送给所述日志分析模块。
可选的,所述日志收集模块还用于:对各所述应用线程的日志信息打标签,其中,针对任一日志信息,该日志信息的标签表示该日志信息对应的应用线程。
可选的,所述请求截取模块还用于:将所述目标业务请求的应用上下文信息存储到指定位置,以使所述应用系统按照所述目标业务请求的应用上下文信息,通过各所述应用线程依序执行与所述目标业务请求相关的业务,其中,所述目标业务请求的应用上下文信息表示执行与所述目标业务请求相关的业务的各应用线程及各所述应用线程的执行顺序。
可选的,所述系统还包括:消息队列,用于存放待存储的结构化目标日志信息;
所述日志分析模块,还用于将各所述结构化目标日志信息添加到所述消息队列中;
所述日志存储模块,还用于在针对指定结构化目标日志信息的存储失败后,返回针对所述指定结构化目标日志信息存储失败的信息,以重新存储所述指定结构化目标日志信息。
可选的,所述日志存储模块,还用于:根据各所述结构化目标日志信息的会话标识,提供基于调用链的日志信息查询服务。
可选的,所述目标业务请求的会话标识还用于唯一标识所述目标业务请求对应的用户。
第二方面,本申请实施例提供了一种日志存储方法,所述方法包括:
获取目标业务请求,针对所述目标业务请求设置唯一的会话标识;
为所述目标业务请求分配各应用线程,其中,所述应用线程用于执行与所述目标业务请求相关的业务;
获取各所述应用线程的日志信息,得到各目标日志信息;
对各所述目标日志信息进行结构化处理,得到各结构化目标日志信息,其中,所述结构化目标日志信息中包括所述目标业务请求的会话标识;
存储各携带有会话标识的结构化目标日志信息。
可选的,所述获取各所述应用线程的日志信息,得到各目标日志信息,包括:
收集各所述应用线程的日志信息;
对各所述应用线程的日志信息打标签,得到各目标日志信息,其中,针对任一日志信息,该日志信息的标签标识该日志信息对应的应用线程。
可选的,在所述为所述目标业务请求分配各应用线程之后,所述方法还包括:
根据各所述应用线程,确定目标业务请求的应用上下文信息,其中,所述目标业务请求的应用上下文信息表示执行与所述目标业务请求相关的业务的各应用线程及各所述应用线程的执行顺序;
将所述目标业务请求的应用上下文信息存储到指定位置,以使服务器按照所述目标业务请求的应用上下文信息,通过各所述应用线程依序执行与所述目标业务请求相关的业务。
可选的,在所述对各所述目标日志信息进行结构化处理,得到各结构化目标日志信息之后,所述方法还包括:
将各所述结构化目标日志信息添加到预设消息队列中;
所述存储各携带有会话标识的结构化目标日志信息,包括:
从所述消息队列中选取指定结构化目标日志信息进行存储;
在针对所述指定结构化目标日志信息的存储失败后,返回针对所述指定结构化目标日志信息存储失败的信息,以重新存储所述指定结构化目标日志信息。
可选的,所述方法还包括:
在获取到针对所述目标业务请求的日志查询信息时,按照所述目标业务请求的会话标识,提供基于调用链的日志信息查询服务。
可选的,所述目标业务请求的会话标识还用于唯一标识所述目标业务请求对应的用户。
第三方面,本申请实施例提供了一种日志调用方法,应用于日志存储系统,所述日志存储系统中存储有包含会话标识的日志信息,针对任一日志信息,该日志信息的会话标识表示该日志信息对应的业务请求,所述方法包括:
获取针对指定业务请求的日志调用指令,其中,所述日志调用指令中包括所述指定业务请求的目标会话标识及待调用日志的目标属性条件;
响应于所述日志调用指令,在会话标识为所述目标会话标识的日志信息中,调用满足所述目标属性条件的日志信息。
可选的,哈希值相同的日志文档存储在所述日志存储系统的同一主分片中。
可选的,所述响应于所述日志调用指令,在会话标识为所述目标会话标识的日志信息中,调用满足所述目标属性条件的日志信息,包括:
响应于所述日志调用指令,在所述日志存储系统的各日志信息中,过滤出会话标识为所述目标会话标识、且满足所述目标属性条件的日志信息。
可选的,所述方法还包括:
将所述日志存储系统中的同一分片中的日志信息的段进行段合并。
第四方面,本申请实施例提供了一种日志存储装置,所述装置包括:
标识设置模块,用于获取目标业务请求,针对所述目标业务请求设置唯一的会话标识;
线程配置模块,用于为所述目标业务请求分配各应用线程,其中,所述应用线程用于执行与所述目标业务请求相关的业务;
日志获取模块,用于获取各所述应用线程的日志信息,得到各目标日志信息;
标识添加模块,用于对各所述目标日志信息进行结构化处理,得到各结构化目标日志信息,其中,所述结构化目标日志信息中包括所述目标业务请求的会话标识;
日志存储模块,用于存储各携带有会话标识的结构化目标日志信息。
可选的,所述标识添加模块,具体用于:收集各所述应用线程的日志信息;对各所述应用线程的日志信息打标签,得到各目标日志信息,其中,针对任一日志信息,该日志信息的标签标识该日志信息对应的应用线程。
可选的,所述装置还包括:
上下文信息生产模块,用于根据各所述应用线程,确定目标业务请求的应用上下文信息,其中,所述目标业务请求的应用上下文信息表示执行与所述目标业务请求相关的业务的各应用线程及各所述应用线程的执行顺序;
上下文信息存储模块,用于将所述目标业务请求的应用上下文信息存储到指定位置,以使服务器按照所述目标业务请求的应用上下文信息,通过各所述应用线程依序执行与所述目标业务请求相关的业务。
可选的,所述装置还包括:
信息入列模块,用于将各所述结构化目标日志信息添加到预设消息队列中;
所述日志存储模块,具体用于:从所述消息队列中选取指定结构化目标日志信息进行存储;在针对所述指定结构化目标日志信息的存储失败后,返回针对所述指定结构化目标日志信息存储失败的信息,以重新存储所述指定结构化目标日志信息。
可选的,所述装置还包括:
在获取到针对所述目标业务请求的日志查询信息时,按照所述目标业务请求的会话标识,提供基于调用链的日志信息查询服务。
可选的,所述目标业务请求的会话标识还用于唯一标识所述目标业务请求对应的用户。
第五方面,本申请实施例提供了一种日志调用装置,应用于日志存储系统,所述日志存储系统中存储有包含会话标识的日志信息,针对任一日志信息,该日志信息的会话标识表示该日志信息对应的业务请求,所述装置包括:
日志调用指令获取模块,用于获取针对指定业务请求的日志调用指令,其中,所述日志调用指令中包括所述指定业务请求的目标会话标识及待调用日志的目标属性条件;
日志信息调用模块,用于响应于所述日志调用指令,在会话标识为所述目标会话标识的日志信息中,调用满足所述目标属性条件的日志信息。
可选的,在本申请实施例的日志调用装置中,哈希值相同的日志文档存储在所述日志存储系统的同一主分片中。
可选的,所述日志信息调用模块,具体用于:
响应于所述日志调用指令,在所述日志存储系统的各日志信息中,过滤出会话标识为所述目标会话标识、且满足所述目标属性条件的日志信息。
可选的,所述装置还包括:
段合并模块,用于将所述日志存储系统中的同一分片中的日志信息的段进行段合并。
本申请实施例提供的日志存储及调用方法、装置及系统,该系统包括:请求截取模块、日志分析模块及日志存储模块;请求截取模块,用于拦截针对应用系统的目标业务请求;针对目标业务请求设置唯一的会话标识,并将设置会话标识后的目标业务请求返还给应用系统;日志分析模块,用于获取应用系统中的应用线程在执行目标业务请求的过程中所生成的各日志信息,得到各目标日志信息;对各目标日志信息进行结构化处理,得到各结构化目标日志信息,其中,结构化目标日志信息中包括目标业务请求的会话标识;日志存储模块,用于存储携带有会话标识的各结构化目标日志信息。存储的日志信息中携带有会话标识,利用会话标识能够区分该日志信息为处理哪个用户业务请求时产生的日志,能够便于根据用户业务请求或者用户身份来进行日志管理。当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的日志存储系统的第一种示意图;
图2为本申请实施例的日志存储系统的第二种示意图;
图3为本申请实施例的日志存储系统的第三种示意图;
图4为本申请实施例的日志存储方法的一种示意图;
图5为本申请实施例的日志存储装置的一种示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先,对本申请实施例中的专业术语进行解释:
日志:日志是网络设备、系统及服务程序运作时产生的事件记录,是系统运维、故障诊断、性能分析的重要来源。
日志分析系统:一种从日志中可以发掘运维信息,异常情况,统计分析的系统。
调用链:一个从源头请求到底层系统把程序运行所有中间环节的调用关系完整串联起来的计算机概念。
用户业务请求:用户与计算机服务或系统进行交互的一段指令。
为了方便日志信息的管理,本申请实施例提供了一种日志存储系统,参见图1,该系统包括:
请求截取模块101、日志分析模块102及日志存储模块103;
上述请求截取模块101,用于拦截针对应用系统的目标业务请求;针对上述目标业务请求设置唯一的会话标识,并将设置会话标识后的上述目标业务请求返还给上述应用系统;
上述日志分析模块102,用于获取上述应用系统中的应用线程在执行上述目标业务请求的过程中所生成的各日志信息,得到各目标日志信息;对各上述目标日志信息进行结构化处理,得到各结构化目标日志信息,其中,上述结构化目标日志信息中包括上述目标业务请求的会话标识;
上述日志存储模块103,用于存储携带有会话标识的各上述结构化目标日志信息。
请求截取模块101、日志分析模块102及日志存储模块103可以分别为独立的服务器,也可以为服务器中具体的服务模块。本申请实施例的日志存储系统可以应用于为提供业务服务的分布式的应用系统。
在用户的业务请求未被业务服务器执行前,即在日志信息生成前,请求截取模块101通过拦截业务请求,获取各业务请求。目标业务请求为各用户业务请求中的任一请求,针对每个业务请求,均可以执行与目标业务请求相同或相似的操作。
请求截取模块101为目标业务请求设置唯一的会话标识,用于唯一区分业务请求。在完成会话标识的设置后,请求截取模块101会将目标业务请求返回给应用系统,从而使应用系统中的应用线程执行与目标业务请求相关的业务。
为了方便应用线程确定自身需要处理的请求,在一种可能的实施方式中,上述请求截取模块101还用于:将上述目标业务请求的应用上下文信息存储到指定位置,以使上述应用系统按照上述目标业务请求的应用上下文信息,通过各上述应用线程依序执行与上述目标业务请求相关的业务,其中,上述目标业务请求的应用上下文信息表示执行与上述目标业务请求相关的业务的各应用线程及各上述应用线程的执行顺序。
处理模块101还可以将目标业务请求的会话标识符放到一个映射(该映射可以为内存中的一个区域)中,并通过这个映射存储应用上下文信息,应用上下文信息标识表示执行与目标业务请求相关的业务的各应用线程及各应用线程的执行顺序。
各应用线程可以根据应用上下文信息确定自身需要处理的业务请求,同时各应用线程可以通过应用上下文信息获知处理顺序,从而能够减少线程间的共享竞争。在一种可能的实施方式中可以利用父线程传递应用上下文相关信息给子线程,以确保调用链的完备性。例如业务请求A的应用上下文信息中记录了业务请求A利用应用线程1及应用线程2处理,且处理顺序为应用线程1→应用线程2。则处理模块101将业务请求A发送给应用线程1,应用线程1从映射中读取业务请求A的应用上下文信息,得知下面需要应用线程2进行处理,应用线程1将业务请求A的业务处理结果及应用上下文信息发送给应用线程2继续处理。
在处理完目标业务请求后,可以清除掉该目标业务请求存储在映射中的应用上下文信息,以避免内存泄漏。在一种可能的实施方式中,为了适应业务请求的处理,在日志配置文件中也需要进行相应设置,从而在输出的日志信息中添加会话标识等信息。
日志分析模块102获取各目标日志信息,日志信息一般都是非结构化数据,而且包含很多不必要的信息,所以需要在日志分析模块102中添加过滤插件对目标日志信息进行结构化处理,将非结构化的日志信息解析成针对日志格式定义的结构化数据。日志分析模块102可以在生成的结构化数据中,加入目标业务请求的会话标识,得到结构化目标日志信息。
日志存储模块103获取各结构化目标日志信息,并进行存储,结构化目标日志信息中包含目标业务请求的会话标识,从而能够方便日志信息的管理。
在一种可能的实施方式中,上述目标业务请求的会话标识还用于唯一标识上述目标业务请求对应的用户。此处的用户是指发送目标业务请求的账户或设备。会话标识同时标识业务请求及用户,可以利用会话标识针对业务请求或者用户对日志信息进行关联。
在本申请实施例中,存储的日志信息中携带有会话标识,利用会话标识能够区分该日志信息为处理哪个用户业务请求时产生的日志,能够便于根据用户业务请求或者用户身份来进行日志管理。
在一种可能的实施方式中,上述日志存储模块103,还用于:根据各上述结构化目标日志信息的会话标识,提供基于调用链的日志信息查询服务。
日志存储模块103可以包含日志存储子模块和日志查询子模块,日志存储子模块用于存储各携带有会话标识的结构化目标日志信息。
日志查询子模块用于对外提供查询所需的接口,日志查询子模块在提供相关技术中的基本查询需求外,还提供基于调用链的查询。例如可以查询指定业务请求的日志级别为ERROR(错误)的全部日志信息。
可选的,日志查询子模块还可以针对查询进行相应的优化,具体可以为将具有相同哈希值的文档放置到同一个主分片中,从而合理使用路由机制以提高查询性能。日志查询子模块可以使用Filter搜索机制,当然也可以使用Query搜索机制。但是相比于Query搜索机制Filter响应速度更快,这是因为query搜索机制需要通过模型计算相关度,而Filter搜索机制利用过滤机制,只需要根据条件进行过滤,无需计算相关度。在Elasticsearch中每个分片均有多个段,每个段都是一个完整的倒序索引,在查询时Elasticsearch会把所有段的查询结果汇总作为最终的查询结果。当索引的文档不断增多时段也会增多,查询性能就会下降。可以通过优化接口方法强制分片进行段合并,把多个小的段合并成大的段,通过减少段的数量来达到提高检索性能的目的。
在本申请实施例中,将链路追踪与日志分析相结合,在日志信息中加入了请求的唯一会话标识,通过区别不同的业务请求,利用会话标识可以基于调用链快速定位用户在一次请求中对应的所有日志信息,或者定位某个用户操作的所有日志信息,可以在复杂的分布式服务场景下,快速定位异常,锁定性能瓶颈。
在一种可能的实施方式中,参见图2,本申请实施例的日志存储系统还包括:
日志收集模块104,用于收集上述应用系统中的各应用线程的日志信息,并将各上述应用线程的日志信息发送给上述日志分析模块。
日志收集模块104可以设置在应用系统中的一个或多个服务器上,用于收集各服务器的日志信息;日志收集模块104也可以作为一个独立的电子设备,用于收集各服务器的日志信息。针对分布式的服务架构,可以在每个服务器上均设置一个日志收集模块104,从而方便各服务器中日志信息的收集。
为了方便各业务请求的日志信息的区分,在一种可能的实施方式中,上述日志收集模块104还用于:对各上述应用线程的日志信息打标签,其中,针对任一日志信息,该日志信息的标签标识该日志信息对应的应用线程。
日志收集模块104,用于收集不同服务器上的日志信息,把分散的日志信息进行汇总。日志收集模块104可以采用Filebeat(一种开源的日志数据采集器)作为文本日志收集器,相比于其他日志收集器,Filebeat占用资源较少,对服务器资源消耗相对较少,考虑到Filebeat的特性日志收集模块104不对日志信息做多余的清洗和转换工作。日志收集模块104可以对Filebeat采集的日志信息进行重新封装,对日志监听以及日志信息输出进行统一管理。日志收集模块104可以对来源不同的日志信息添加标签,便于后续区分不同服务器节点及不同用户线程的日志。
在一种可能的实施方式中,参见图3,本申请实施例的日志存储系统还包括:消息队列105,用于存放待存储的结构化目标日志信息;
上述日志分析模块102,还用于将各上述结构化目标日志信息添加到上述消息队列中;
上述日志存储模块103,还用于在针对指定结构化目标日志信息的存储失败后,返回针对上述指定结构化目标日志信息存储失败的信息,以重新存储上述指定结构化目标日志信息。
消息队列105可以位于日志分析模块102与日志存储模块103之间,具体的,消息队列105可以为分布式消息队列,日志分析模块102将结构化目标日志信息以异步的方式写入分布式消息队列,此方式提高了磁盘I/O(In/Out,输入/输出)和CPU的利用率,减缓高并发导致的系统负载下降的问题。可以通过日志存储模块103或其他的模块或硬件等实现消费者线程功能,消费者线程功能用于从消息队列105批量拉取日志信息,将日志信息从消息队列105消费出来,然后根据写入到日志存储模块103。日志存储模块103返回状态判断信息,状态判断信息表示拉取日志信息流程是否执行完成,如未完成则判定失败,之后将重新消费。通过添加消息队列105,即使系统出现故障,结构化目标日志信息也会被持久化保存下来,能够减少数据丢失的情况。
本申请实施例还提供了一种日志存储方法,参见图4,该方法包括:
S401,获取目标业务请求,针对上述目标业务请求设置唯一的会话标识;
S402,为上述目标业务请求分配各应用线程,其中,上述应用线程用于执行与上述目标业务请求相关的业务;
S403,获取各上述应用线程的日志信息,得到各目标日志信息;
S404,对各上述目标日志信息进行结构化处理,得到各结构化目标日志信息,其中,上述结构化目标日志信息中包括上述目标业务请求的会话标识;
S405,存储各携带有会话标识的结构化目标日志信息。
可选的,上述获取各上述应用线程的日志信息,得到各目标日志信息,包括:
收集各上述应用线程的日志信息;
对各上述应用线程的日志信息打标签,得到各目标日志信息,其中,针对任一日志信息,该日志信息的标签标识该日志信息对应的应用线程。
可选的,在上述为上述目标业务请求分配各应用线程之后,上述方法还包括:
根据各上述应用线程,确定目标业务请求的应用上下文信息,其中,上述目标业务请求的应用上下文信息表示执行与上述目标业务请求相关的业务的各应用线程及各上述应用线程的执行顺序;
将上述目标业务请求的应用上下文信息存储到指定位置,以使服务器按照上述目标业务请求的应用上下文信息,通过各上述应用线程依序执行与上述目标业务请求相关的业务。
可选的,在上述对各上述目标日志信息进行结构化处理,得到各结构化目标日志信息之后,上述方法还包括:
将各上述结构化目标日志信息添加到预设消息队列中;
上述存储各携带有会话标识的结构化目标日志信息,包括:
从上述消息队列中选取指定结构化目标日志信息进行存储;
在针对上述指定结构化目标日志信息的存储失败后,返回针对上述指定结构化目标日志信息存储失败的信息,以重新存储上述指定结构化目标日志信息。
可选的,上述方法还包括:
在获取到针对上述目标业务请求的日志查询信息时,按照上述目标业务请求的会话标识,提供基于调用链的日志信息查询服务。
本申请实施例还提供了一种日志调用方法,应用于日志存储系统,上述日志存储系统中存储有包含会话标识的日志信息,针对任一日志信息,该日志信息的会话标识表示该日志信息对应的业务请求,上述方法包括:
步骤一,获取针对指定业务请求的日志调用指令,其中,上述日志调用指令中包括上述指定业务请求的目标会话标识及待调用日志的目标属性条件;
步骤二,响应于上述日志调用指令,在会话标识为上述目标会话标识的日志信息中,调用满足上述目标属性条件的日志信息。
包含会话标识的日志信息的生成及存储具体可以参见上述日志存储系统及日志存储方法,此处不再赘述。日志存储系统对外提供查询所需的接口,在提供相关技术中的基本查询需求外,还提供基于调用链的查询。例如可以查询指定业务请求的日志级别为ERROR(错误)的全部日志信息。
在本申请实施例中,存储的日志信息中携带有会话标识,利用会话标识能够区分该日志信息为处理哪个用户业务请求时产生的日志,能够便于根据用户业务请求或者用户身份来进行日志管理。
可选的,哈希值相同的日志文档存储在上述日志存储系统的同一主分片中。
为了增加日志信息调用速度,可以为将具有相同哈希值的文档放置到同一个主分片中,从而合理使用路由机制以提高查询性能。
可选的,上述响应于上述日志调用指令,在会话标识为上述目标会话标识的日志信息中,调用满足上述目标属性条件的日志信息,包括:
响应于上述日志调用指令,在上述日志存储系统的各日志信息中,过滤出会话标识为上述目标会话标识、且满足上述目标属性条件的日志信息。
可以使用Filter搜索机制,当然也可以使用Query搜索机制。但是相比于Query搜索机制Filter响应速度更快,这是因为query搜索机制需要通过模型计算相关度,而Filter搜索机制利用过滤机制,只需要根据条件进行过滤,无需计算相关度。
可选的,上述方法还包括:将上述日志存储系统中的同一分片中的日志信息的段进行段合并。
在Elasticsearch中每个分片均有多个段,每个段都是一个完整的倒序索引,在查询时Elasticsearch会把所有段的查询结果汇总作为最终的查询结果。当索引的文档不断增多时段也会增多,查询性能就会下降。可以通过优化接口方法强制分片进行段合并,把多个小的段合并成大的段,通过减少段的数量来达到提高检索性能的目的。
本申请实施例还提供了一种日志存储装置,参见图5,该装置包括:
标识设置模块501,用于获取目标业务请求,针对上述目标业务请求设置唯一的会话标识;
线程配置模块502,用于为上述目标业务请求分配各应用线程,其中,上述应用线程用于执行与上述目标业务请求相关的业务;
日志获取模块503,用于获取各上述应用线程的日志信息,得到各目标日志信息;
标识添加模块504,用于对各上述目标日志信息进行结构化处理,得到各结构化目标日志信息,其中,上述结构化目标日志信息中包括上述目标业务请求的会话标识;
日志存储模块505,用于存储各携带有会话标识的结构化目标日志信息。
可选的,上述标识添加模块,具体用于:收集各上述应用线程的日志信息;对各上述应用线程的日志信息打标签,得到各目标日志信息,其中,针对任一日志信息,该日志信息的标签标识该日志信息对应的应用线程。
可选的,上述装置还包括:
上下文信息生产模块,用于根据各上述应用线程,确定目标业务请求的应用上下文信息,其中,上述目标业务请求的应用上下文信息表示执行与上述目标业务请求相关的业务的各应用线程及各上述应用线程的执行顺序;
上下文信息存储模块,用于将上述目标业务请求的应用上下文信息存储到指定位置,以使服务器按照上述目标业务请求的应用上下文信息,通过各上述应用线程依序执行与上述目标业务请求相关的业务。
可选的,上述装置还包括:
信息入列模块,用于将各上述结构化目标日志信息添加到预设消息队列中;
上述日志存储模块,具体用于:从上述消息队列中选取指定结构化目标日志信息进行存储;在针对上述指定结构化目标日志信息的存储失败后,返回针对上述指定结构化目标日志信息存储失败的信息,以重新存储上述指定结构化目标日志信息。
可选的,上述装置还包括:
在获取到针对上述目标业务请求的日志查询信息时,按照上述目标业务请求的会话标识,提供基于调用链的日志信息查询服务。
可选的,上述目标业务请求的会话标识还用于唯一标识上述目标业务请求对应的用户。
本申请实施例还提供了一种日志调用装置,应用于日志存储系统,上述日志存储系统中存储有包含会话标识的日志信息,针对任一日志信息,该日志信息的会话标识表示该日志信息对应的业务请求,上述装置包括:
日志调用指令获取模块,用于获取针对指定业务请求的日志调用指令,其中,上述日志调用指令中包括上述指定业务请求的目标会话标识及待调用日志的目标属性条件;
日志信息调用模块,用于响应于上述日志调用指令,在会话标识为上述目标会话标识的日志信息中,调用满足上述目标属性条件的日志信息。
可选的,在本申请实施例的日志调用装置中,哈希值相同的日志文档存储在上述日志存储系统的同一主分片中。
可选的,上述日志信息调用模块,具体用于:
响应于上述日志调用指令,在上述日志存储系统的各日志信息中,过滤出会话标识为上述目标会话标识、且满足上述目标属性条件的日志信息。
可选的,上述装置还包括:段合并模块,用于将上述日志存储系统中的同一分片中的日志信息的段进行段合并。
需要说明的是,在本文中,各个可选方案中的技术特征只要不矛盾均可组合来形成方案,这些方案均在本申请公开的范围内。诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备及存储介质的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (24)
1.一种日志存储系统,其特征在于,所述系统包括:
请求截取模块、日志分析模块及日志存储模块;
所述请求截取模块,用于拦截针对应用系统的目标业务请求;针对所述目标业务请求设置唯一的会话标识,并将设置会话标识后的所述目标业务请求返还给所述应用系统;
所述日志分析模块,用于获取所述应用系统中的应用线程在执行所述目标业务请求的过程中所生成的各日志信息,得到各目标日志信息;对各所述目标日志信息进行结构化处理,得到各结构化目标日志信息,其中,所述结构化目标日志信息中包括所述目标业务请求的会话标识;
所述日志存储模块,用于存储携带有会话标识的各所述结构化目标日志信息。
2.根据权利要求1所述的日志存储系统,其特征在于,所述系统还包括:
日志收集模块,用于收集所述应用系统中的各应用线程的日志信息,并将各所述应用线程的日志信息发送给所述日志分析模块。
3.根据权利要求2所述的日志存储系统,其特征在于,所述日志收集模块还用于:对各所述应用线程的日志信息打标签,其中,针对任一日志信息,该日志信息的标签表示该日志信息对应的应用线程。
4.根据权利要求1所述的日志存储系统,其特征在于,所述请求截取模块还用于:将所述目标业务请求的应用上下文信息存储到指定位置,以使所述应用系统按照所述目标业务请求的应用上下文信息,通过各所述应用线程依序执行与所述目标业务请求相关的业务,其中,所述目标业务请求的应用上下文信息表示执行与所述目标业务请求相关的业务的各应用线程及各所述应用线程的执行顺序。
5.根据权利要求1所述的日志存储系统,其特征在于,所述系统还包括:消息队列,用于存放待存储的结构化目标日志信息;
所述日志分析模块,还用于将各所述结构化目标日志信息添加到所述消息队列中;
所述日志存储模块,还用于在针对指定结构化目标日志信息的存储失败后,返回针对所述指定结构化目标日志信息存储失败的信息,以重新存储所述指定结构化目标日志信息。
6.根据权利要求1所述的日志存储系统,其特征在于,所述日志存储模块,还用于:根据各所述结构化目标日志信息的会话标识,提供基于调用链的日志信息查询服务。
7.根据权利要求1所述的日志存储系统,其特征在于,所述目标业务请求的会话标识还用于唯一标识所述目标业务请求对应的用户。
8.一种日志存储方法,其特征在于,所述方法包括:
获取目标业务请求,针对所述目标业务请求设置唯一的会话标识;
为所述目标业务请求分配各应用线程,其中,所述应用线程用于执行与所述目标业务请求相关的业务;
获取各所述应用线程的日志信息,得到各目标日志信息;
对各所述目标日志信息进行结构化处理,得到各结构化目标日志信息,其中,所述结构化目标日志信息中包括所述目标业务请求的会话标识;
存储各携带有会话标识的结构化目标日志信息。
9.根据权利要求8所述的方法,其特征在于,所述获取各所述应用线程的日志信息,得到各目标日志信息,包括:
收集各所述应用线程的日志信息;
对各所述应用线程的日志信息打标签,得到各目标日志信息,其中,针对任一日志信息,该日志信息的标签标识该日志信息对应的应用线程。
10.根据权利要求8所述的方法,其特征在于,在所述为所述目标业务请求分配各应用线程之后,所述方法还包括:
根据各所述应用线程,确定目标业务请求的应用上下文信息,其中,所述目标业务请求的应用上下文信息表示执行与所述目标业务请求相关的业务的各应用线程及各所述应用线程的执行顺序;
将所述目标业务请求的应用上下文信息存储到指定位置,以使服务器按照所述目标业务请求的应用上下文信息,通过各所述应用线程依序执行与所述目标业务请求相关的业务。
11.根据权利要求8所述的方法,其特征在于,在所述对各所述目标日志信息进行结构化处理,得到各结构化目标日志信息之后,所述方法还包括:
将各所述结构化目标日志信息添加到预设消息队列中;
所述存储各携带有会话标识的结构化目标日志信息,包括:
从所述消息队列中选取指定结构化目标日志信息进行存储;
在针对所述指定结构化目标日志信息的存储失败后,返回针对所述指定结构化目标日志信息存储失败的信息,以重新存储所述指定结构化目标日志信息。
12.根据权利要求8所述的方法,其特征在于,所述方法还包括:
在获取到针对所述目标业务请求的日志查询信息时,按照所述目标业务请求的会话标识,提供基于调用链的日志信息查询服务。
13.根据权利要求8所述的方法,其特诊在于,所述目标业务请求的会话标识还用于唯一标识所述目标业务请求对应的用户。
14.一种日志调用方法,其特征在于,应用于日志存储系统,所述日志存储系统中存储有包含会话标识的日志信息,针对任一日志信息,该日志信息的会话标识表示该日志信息对应的业务请求,所述方法包括:
获取针对指定业务请求的日志调用指令,其中,所述日志调用指令中包括所述指定业务请求的目标会话标识及待调用日志的目标属性条件;
响应于所述日志调用指令,在会话标识为所述目标会话标识的日志信息中,调用满足所述目标属性条件的日志信息。
15.根据权利要求14所述的方法,其特征在于,哈希值相同的日志文档存储在所述日志存储系统的同一主分片中。
16.根据权利要求14所述的方法,其特征在于,所述响应于所述日志调用指令,在会话标识为所述目标会话标识的日志信息中,调用满足所述目标属性条件的日志信息,包括:
响应于所述日志调用指令,在所述日志存储系统的各日志信息中,过滤出会话标识为所述目标会话标识、且满足所述目标属性条件的日志信息。
17.根据权利要求14所述的方法,其特征在于,所述方法还包括:
将所述日志存储系统中的同一分片中的日志信息的段进行段合并。
18.一种日志存储装置,其特征在于,所述装置包括:
标识设置模块,用于获取目标业务请求,针对所述目标业务请求设置唯一的会话标识;
线程配置模块,用于为所述目标业务请求分配各应用线程,其中,所述应用线程用于执行与所述目标业务请求相关的业务;
日志获取模块,用于获取各所述应用线程的日志信息,得到各目标日志信息;
标识添加模块,用于对各所述目标日志信息进行结构化处理,得到各结构化目标日志信息,其中,所述结构化目标日志信息中包括所述目标业务请求的会话标识;
日志存储模块,用于存储各携带有会话标识的结构化目标日志信息。
19.根据权利要求18所述的装置,其特征在于,所述标识添加模块,具体用于:收集各所述应用线程的日志信息;对各所述应用线程的日志信息打标签,得到各目标日志信息,其中,针对任一日志信息,该日志信息的标签标识该日志信息对应的应用线程。
20.根据权利要求18所述的装置,其特征在于,所述装置还包括:
上下文信息生产模块,用于根据各所述应用线程,确定目标业务请求的应用上下文信息,其中,所述目标业务请求的应用上下文信息表示执行与所述目标业务请求相关的业务的各应用线程及各所述应用线程的执行顺序;
上下文信息存储模块,用于将所述目标业务请求的应用上下文信息存储到指定位置,以使服务器按照所述目标业务请求的应用上下文信息,通过各所述应用线程依序执行与所述目标业务请求相关的业务。
21.根据权利要求18所述的装置,其特征在于,所述装置还包括:
信息入列模块,用于将各所述结构化目标日志信息添加到预设消息队列中;
所述日志存储模块,具体用于:从所述消息队列中选取指定结构化目标日志信息进行存储;在针对所述指定结构化目标日志信息的存储失败后,返回针对所述指定结构化目标日志信息存储失败的信息,以重新存储所述指定结构化目标日志信息。
22.根据权利要求18所述的装置,其特征在于,所述装置还包括:
在获取到针对所述目标业务请求的日志查询信息时,按照所述目标业务请求的会话标识,提供基于调用链的日志信息查询服务。
23.根据权利要求18所述的装置,其特征在于,所述目标业务请求的会话标识还用于唯一标识所述目标业务请求对应的用户。
24.一种日志调用装置,其特征在于,应用于日志存储系统,所述日志存储系统中存储有包含会话标识的日志信息,针对任一日志信息,该日志信息的会话标识表示该日志信息对应的业务请求,所述装置包括:
日志调用指令获取模块,用于获取针对指定业务请求的日志调用指令,其中,所述日志调用指令中包括所述指定业务请求的目标会话标识及待调用日志的目标属性条件;
日志信息调用模块,用于响应于所述日志调用指令,在会话标识为所述目标会话标识的日志信息中,调用满足所述目标属性条件的日志信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910944362.9A CN112579552A (zh) | 2019-09-30 | 2019-09-30 | 日志存储及调用方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910944362.9A CN112579552A (zh) | 2019-09-30 | 2019-09-30 | 日志存储及调用方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112579552A true CN112579552A (zh) | 2021-03-30 |
Family
ID=75116653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910944362.9A Pending CN112579552A (zh) | 2019-09-30 | 2019-09-30 | 日志存储及调用方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112579552A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115757043A (zh) * | 2022-11-29 | 2023-03-07 | 广发银行股份有限公司 | 一种日志数据记录方法及系统 |
WO2024097232A1 (en) * | 2022-10-31 | 2024-05-10 | Bitdrift, Inc. | Systems and methods for providing a timeline view of log information for a client application |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678933A (zh) * | 2017-09-28 | 2018-02-09 | 中国平安人寿保险股份有限公司 | 日志生成管理方法、装置、设备及计算机可读存储介质 |
CN108459939A (zh) * | 2018-01-08 | 2018-08-28 | 平安科技(深圳)有限公司 | 一种日志收集方法、装置、终端设备及存储介质 |
CN108763044A (zh) * | 2018-05-30 | 2018-11-06 | 中国建设银行股份有限公司 | 一种日志处理方法及装置 |
CN109582655A (zh) * | 2018-11-08 | 2019-04-05 | 深圳市云智融科技有限公司 | 系统日志的定位方法及装置、计算机可读存储介质 |
CN109800225A (zh) * | 2018-12-24 | 2019-05-24 | 北京奇艺世纪科技有限公司 | 业务指标的获取方法、装置、服务器及计算机可读存储介质 |
CN110162512A (zh) * | 2019-05-05 | 2019-08-23 | 中国银行股份有限公司 | 一种日志检索方法、装置及存储介质 |
-
2019
- 2019-09-30 CN CN201910944362.9A patent/CN112579552A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107678933A (zh) * | 2017-09-28 | 2018-02-09 | 中国平安人寿保险股份有限公司 | 日志生成管理方法、装置、设备及计算机可读存储介质 |
CN108459939A (zh) * | 2018-01-08 | 2018-08-28 | 平安科技(深圳)有限公司 | 一种日志收集方法、装置、终端设备及存储介质 |
CN108763044A (zh) * | 2018-05-30 | 2018-11-06 | 中国建设银行股份有限公司 | 一种日志处理方法及装置 |
CN109582655A (zh) * | 2018-11-08 | 2019-04-05 | 深圳市云智融科技有限公司 | 系统日志的定位方法及装置、计算机可读存储介质 |
CN109800225A (zh) * | 2018-12-24 | 2019-05-24 | 北京奇艺世纪科技有限公司 | 业务指标的获取方法、装置、服务器及计算机可读存储介质 |
CN110162512A (zh) * | 2019-05-05 | 2019-08-23 | 中国银行股份有限公司 | 一种日志检索方法、装置及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024097232A1 (en) * | 2022-10-31 | 2024-05-10 | Bitdrift, Inc. | Systems and methods for providing a timeline view of log information for a client application |
CN115757043A (zh) * | 2022-11-29 | 2023-03-07 | 广发银行股份有限公司 | 一种日志数据记录方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11182098B2 (en) | Optimization for real-time, parallel execution of models for extracting high-value information from data streams | |
US12008027B2 (en) | Optimization for real-time, parallel execution of models for extracting high-value information from data streams | |
CN111046011B (zh) | 日志收集方法、系统、装置、电子设备及可读存储介质 | |
CN108521339B (zh) | 一种基于集群日志的反馈式节点故障处理方法及系统 | |
CN105224445A (zh) | 分布式跟踪系统 | |
CN111339175B (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN111309550A (zh) | 应用程序的数据采集方法、系统、设备和存储介质 | |
CN110147470B (zh) | 一种跨机房数据比对系统及方法 | |
CN110928851B (zh) | 处理日志信息的方法、装置、设备及存储介质 | |
CN108632111A (zh) | 一种基于日志的服务链路监控方法 | |
CN110912757B (zh) | 业务的监控方法和服务器 | |
CN111400288A (zh) | 数据质量检查方法及系统 | |
CN112711496A (zh) | 日志信息全链路追踪方法、装置、计算机设备和存储介质 | |
CN111752945B (zh) | 一种基于容器和层次模型的时序数据库数据交互方法和系统 | |
CN110674231A (zh) | 一种面向数据湖的用户id集成方法和系统 | |
CN113760677A (zh) | 异常链路分析方法、装置、设备及存储介质 | |
CN102750184A (zh) | 云资源分类与标识系统及方法 | |
CN112579552A (zh) | 日志存储及调用方法、装置及系统 | |
CN114385551B (zh) | 日志分时管理方法、装置、设备及存储介质 | |
CN113094166A (zh) | 一种链路追踪方法、装置、介质和计算设备 | |
CN113297245A (zh) | 获取执行信息的方法及装置 | |
CN116126621A (zh) | 大数据集群的任务监控方法及相关设备 | |
CN113824601A (zh) | 一种基于业务日志的电力营销监控系统 | |
EP3380906A1 (en) | Optimization for real-time, parallel execution of models for extracting high-value information from data streams | |
JP6070338B2 (ja) | 多階層システムに含まれる処理システムの分類装置及び多階層システムに含まれる処理システムの分類プログラム並びに多階層システムに含まれる処理システムの分類方法 |
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 |