一种分布式日志采集方法、装置及系统制造方法及图纸

技术编号:12439853 阅读:100 留言:0更新日期:2015-12-04 02:28
本发明专利技术提供一种分布式日志采集方法、装置及系统,能够在最大限度保证宿主服务器正常运行的同时,把业务日志完整、准确地记录下来并实时显示,为故障查找提供了数据依据。本发明专利技术的一种分布式日志采集方法包括:无需发送日志数据采集请求,直接根据保存的接口参数通过接口来接收业务系统发送的日志数据;将接收到的所述日志数据发送到线程池进行处理;将在所述线程池中处理后的所述日志数据发送以便保存。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别地涉及一种分布式日志采集方法、装置及系统
技术介绍
许多公司的平台每天会产生大量的日志(一般为流式数据,如,搜索引擎的页面浏览量,查询信息等),日志数据是为了便于业务分析和系统分析而记录的程序行为数据,这类数据通常具有数据量大的特点。日志数据可用于分析各应用程序的运行状态,对系统的稳定运行而言是至关重要的。在分布式系统中,经常需要采集各个节点的日志,然后统一分析。现有的日志采集技术大多都是在日志数据产生时,日志采集系统将采集到的日志数据以文件的形式直接存储在应用程序所在服务器的物理磁盘上,然后,根据配置的日志数据存储磁盘所在的服务器和路径等信息,日志收集系统会定时到用户记录日志的磁盘采集数据以进行分析。但是,现有的日志采集方式存在以下不足:(I)给系统带来了性能压力,一定程度上降低了服务器应用程序的执行效率,尤其延长了服务请求的响应时间;(2)无法将采集到的日志信息进行实时处理及显示;(3)当出现日志数据高并发时,会出现数据覆盖或者采集不成功的情况。综上所述,现有的日志采集方式,不但影响了系统的正常运行,而且当应用程序出现问题时,无法及时发现,且无法快速、准确地确定故障原因。
技术实现思路
有鉴于此,本专利技术提供一种分布式日志采集方法、装置及系统,通过给需要采集日志的业务提供一个接口方法进行调用,再采用线程池和队列缓存机制对日志数据进行处理,然后发送以便保存,能够在最大限度保证宿主服务器正常运行的同时,把业务日志完整、准确地记录下来并实时显示,为故障查找提供了数据依据。真实的解决了业务系统复杂,并且要求实时采集大量业务性比较强的日志的问题,为业务实时日志分析提供支撑。为实现上述目的,根据本专利技术的一个方面,提供了一种分布式日志采集方法。 一种分布式日志采集方法包括:无需发送日志数据采集请求,直接根据保存的接口参数通过接口来接收业务系统发送的日志数据;将接收到的所述日志数据发送到线程池进行处理,所述处理包括判断所述线程池中是否有空闲线程;如果所述线程池中有空闲线程,则利用所述空闲线程对接收到的日志数据进行处理;以及如果所述线程池中没有空闲线程,则将接收到的日志数据存放在队列中,以等待有空闲线程时处理;将在所述线程池中处理后的所述日志数据发送以便保存。可选地,将接收到的日志数据存放在队列中的步骤还包括:判断所述队列是否已满;以及如果所述队列已满,则将采集到的所述日志数据直接保存到业务系统所在的磁盘中。可选地,将在所述线程池中处理后的所述日志数据发送以便保存的步骤还包括:将处理后的所述日志数据通过消息队列服务器的生产者线程发送到消息队列服务器;以及通过消息队列服务器的消费者线程发送到存储服务器以便保存。可选地,所述接口参数包括以下中的一个或多个:业务编号、业务类型、业务调用者实例、调用者、业务日志文本。可选地,所述存储服务器为MongoDB数据库。根据本专利技术的另一方面,提供了一种分布式日志采集装置。一种分布式日志采集装置包括:日志数据接收模块,用于无需发送日志数据采集请求,直接根据保存的接口参数通过接口来接收业务系统发送的日志数据;日志数据处理模块,用于将接收到的所述日志数据发送到线程池进行处理,所述处理包括判断所述线程池中是否有空闲线程;如果所述线程池中有空闲线程,则利用所述空闲线程对接收到的日志数据进行处理;以及如果所述线程池中没有空闲线程,则将接收到的日志数据存放在队列中,以等待有空闲线程时处理;日志数据发送模块,用于将处理后的所述日志数据发送以便保存。可选地,所述装置包含在一个软件开发工具包内。可选地,所述日志数据处理模块还用于:判断所述队列是否已满;以及如果所述队列已满,则将采集到的所述日志数据直接保存到业务系统所在的磁盘中。可选地,所述日志数据发送模块还用于:将处理后的所述日志数据通过消息队列服务器的生产者线程发送到消息队列服务器;以及通过消息队列服务器的消费者线程发送到存储服务器以便保存。可选地,所述接口参数包括以下中的一个或多个:业务编号、业务类型、业务调用者实例、调用者、业务日志文本。可选地,所述存储服务器为MongoDB数据库。根据本专利技术的又一方面,提供了一种分布式日志采集系统。—种分布式日志采集系统,包括所述分布式日志采集装置,还包括:日志数据存储装置,用于存储所述日志数据发送模块发送的所述日志数据;日志数据显示装置,用于将存储的所述日志数据进行实时显示。根据本专利技术的技术方案,通过给需要采集日志的业务提供一个接口方法进行调用,再采用线程池和队列缓存机制对日志数据进行处理,然后发送以便保存,能够在最大限度保证宿主服务器正常运行的同时,把业务日志完整、准确地记录下来并实时显示,为故障查找提供了数据依据。特别是在业务系统复杂,并且要求实时采集大量业务性比较强的日志的时候,可以为实时日志分析提供支撑。【附图说明】附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是根据本专利技术实施例的一种分布式日志采集方法的主要步骤示意图;图2是根据本专利技术实施例的一种分布式日志采集装置的主要模块示意图;图3是根据本专利技术实施例的一种分布式日志采集系统的组成部分示意图;图4是根据本专利技术实施例的一种分布式日志采集系统的系统架构图;图5是根据本专利技术实施例的一种分布式日志采集系统的实施过程示意图。【具体实施方式】以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识至IJ,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。本专利技术的一种分布式日志采集装置是以软件开发工具包SDK.jar的形式存在的,通过提供接口以备调用的方式内嵌于需要采集日志的业务系统来实现日志采集的功能。图1是根据本专利技术实施例的一种分布式日志采集方法的主要步骤示意图。如图1所示,本专利技术的一种分布式日志采集方法主要包括如下的步骤Sll至步骤S13。步骤Sll:无需发送日志数据采集请求,直接根据保存的接口参数通过接口来接收业务系统发送的日志数据。当前第1页1 2 3 本文档来自技高网...

【技术保护点】
一种分布式日志采集方法,其特征在于,包括:无需发送日志数据采集请求,直接根据保存的接口参数通过接口来接收业务系统发送的日志数据;将接收到的所述日志数据发送到线程池进行处理,所述处理包括:判断所述线程池中是否有空闲线程;如果所述线程池中有空闲线程,则利用所述空闲线程对接收到的日志数据进行处理;以及如果所述线程池中没有空闲线程,则将接收到的日志数据存放在队列中,以等待有空闲线程时处理;将在所述线程池中处理后的所述日志数据发送以便保存。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈伟
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1