本发明专利技术实施例提供了一种日志收集的方法、装置和系统。所述方法的具体实施方式包括步骤:按照设定的时间间隔,判断内存缓冲区中保存的日志是否满足设定要求,其中内存缓冲区的日志为解析到日志打印命令时生成的;如果是,则将内存缓冲区中的日志封装在http请求中;将所述http请求发送至服务器,以使服务器存储所述http请求中的日志。应用本实施例,能够减少对本地磁盘的占用,提高日志收集过程的可靠性。
【技术实现步骤摘要】
本专利技术涉及日志
,特别涉及一种日志收集的方法、装置和系统。
技术介绍
在大型互联网公司的系统架构中,由多台机器组成的集群来提供业务服务已经是非常普遍的模式了。对于集群上的业务来说,集群业务中的日志打印还是沿用了传统的单机程序日志输出模式,即集群中的每一台电脑的程序都各自打印日志到本地电脑的磁盘上。然而,随着互联网业务的不断发展,日志的复杂性和数据量不断上升,各业务对收集日志的需求也在不断增加。在实际应用中,日志可以是应用程序日志、安全日志、系统日志、Scheduler服务日志、FTP日志、WWW日志、DNS日志等等。每一个日志都记录着程序运行中每个事件的日期、时间、使用者信息及动作等相关操作的描述。目前,对集群业务日志的处理需求主要可以归结为如下三类:日志本地查询,即登录到每台电脑上去查看日志;日志汇总查询,将集群中所有电脑上的日志汇总后,再进行查询;日志汇总分析,对集群中所有电脑上的日志汇总后,再进行大数据分析和计算。为了满足后两种处理需求,需要对本地电脑上的日志进行收集,以便进行后续的查询、分析等操作。现有技术中,将日志打印在本地磁盘;通过一些命令(如Tai1命令)监听日志的变更,以获取新增日志,再将新增日志发送到远端日志处理服务器,如图la所示,包括日志生成装置01、新增日志收集装置02和服务器03。其中日志生产装置01用于在本地磁盘生成日志文件,新增日志收集装置02负责监听本地磁盘中的新增日志,并将新增日志发送到服务器03。这样的日志收集过程存在一些问题。首先,日志打印在本地磁盘时需要占用本地磁盘的资源,在读取日志时也会增加本地磁盘的10开销。其次,通过这些命令很难实现对所有类型、所有情况下的日志进行监听,监听新增日志的变更很容易出错。下面以一个例子进行说明。当使用Log4j作为日志输出工具时,可以将其设置成每隔一定时间生成一个日志文件,当所述间隔时间达到时,原来的日志文件会根据一定规则进行改名,比如,原来的日志名admin.log现在可能变为admin.2015_12_12_10,而新生成的日志文件名则冠以admin, log。此时正在运行的监听(Tail)命令就会发生错误,不知道该去跟踪哪个日志文件了。因此,现有技术中的日志收集过程可能会出现日志丢失,日志收集过程的可靠性不高。
技术实现思路
本专利技术实施例的目的在于提供了一种日志收集的方法、装置和系统,能够减少对本地磁盘的占用,提高日志收集过程的可靠性。为了达到上述目的,本专利技术实施例公开了一种日志收集的方法,应用于终端,包括步骤:按照设定的时间间隔,判断内存缓冲区中保存的日志是否满足设定要求,其中内存缓冲区的日志为解析到日志打印命令时生成的;如果是,则将内存缓冲区中的日志封装在http请求中;将所述http请求发送至服务器,以使服务器存储所述http请求中的日志。较佳的,所述判断内存缓冲区中保存的日志是否满足设定要求,包括:获取内存缓冲区中保存的日志的数量,判断该数量是否达到预设数量阈值。较佳的,所述判断内存缓冲区中保存的日志是否满足设定要求,包括:根据内存缓冲区中保存的日志的生成时间,识别最后一个日志的生成时间,判断该生成时间与当前时间的时间间隔是否达到设定的第一时间长度阈值。较佳的,所述判断内存缓冲区中保存的日志是否满足设定要求,包括:判断内存缓冲区中保存的日志中是否存在故障类型的日志。较佳的,在将所述http请求发送至服务器之后,所述方法还包括:识别所述http请求的发送时间,判断所述发送时间与当前时间的时间间隔是否达到设定的第二时间长度阈值,如果是,则重新发送所述http请求。为了达到上述目的,本专利技术实施例还公开了一种日志收集的装置,应用于终端,所述装置包括:判断模块,用于按照设定的时间间隔,判断内存缓冲区中保存的日志是否满足设定要求,其中内存缓冲区的日志为解析到日志打印命令时生成的;如果是,则将内存缓冲区中的日志封装在http请求中;日志封装模块,用于将内存缓冲区中的日志封装在http请求中;http请求发送模块,用于将所述http请求发送至服务器,以使服务器存储所述http请求中的日志。较佳的,所述判断模块包括第一判断子模块;所述第一判断子模块,用于获取内存缓冲区中保存的日志的数量,判断该数量是否达到预设数量阈值。较佳的,所述判断模块包括第二判断子模块;所述第二判断子模块,用于根据内存缓冲区中保存的日志的生成时间,识别最后一个日志的生成时间,判断该生成时间与当前时间的时间间隔是否达到设定的第一时间长度阈值。较佳的,所述判断模块包括第三判断子模块;所述第三判断子模块,用于判断内存缓冲区中保存的日志中是否存在故障类型的曰志。较佳的,所述http请求发送模块还包括重传模块;所述重传模块,用于在将所述http请求发送至服务器之后,识别所述http请求的发送时间,判断所述发送时间与当前时间的时间间隔是否达到设定的第二时间长度阈值,如果是,则重新发送所述http请求。为了达到上述目的,本专利技术实施例还公开了一种日志收集系统,包括上述应用于终端的日志收集装置,以及接收终端发送的http请求,并存储所述http请求中的日志的服务器。由上述技术方案可见,本专利技术实施例是,按照设定的时间间隔,判断内存缓冲区中保存的日志是否满足设定要求,其中内存缓冲区的日志为解析到日志打印命令时生成的;如果是,则将内存缓冲区中的日志封装在http请求中。然后,将所述http请求发送至服务器,以使服务器存储所述http请求中的日志。也就是说,本专利技术实施例能够根据预设的时间间隔,判断终端的内存缓冲区中的日志是否满足一定条件,如果满足条件,则将其封装在http请求中发送至服务器,以使服务器存储该日志,能够减少对本地磁盘的占用,提高日志收集过程的可靠性。当然,实施本专利技术的任一产品或方法并不一定需要同时达到以上所述的所有优点。【附图说明】为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图la为一种传统日志收集方法的流程示意图;图lb为本专利技术实施例提供的一种日志收集的方法的流程示意图;图2为本专利技术实施例提供的一种日志收集的装置的结构示意图;图3为本专利技术实施例提供的一种日志收集的系统的结构示意图。【具体实施方式】下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例提供了一种日志收集的方法、装置和系统。首先,按照设定的时间间隔,判断内存缓冲区中保存的日志是否满足设定要求,其中内存缓冲区的日志为解析到日志打印命令时生成的。如果是,则将内存缓冲区中的日志封装在http请求中。然后,将所述http请求发送至服务器,以使服务器存储所述http请求中的日志。下面通过具体实施例,对本专利技术进行详细说明。图lb为本专利技术实施例提供的一种日志收集的方法本文档来自技高网...
【技术保护点】
一种日志收集的方法,其特征在于,应用于终端,所述方法包括步骤:按照设定的时间间隔,判断内存缓冲区中保存的日志是否满足设定要求,其中内存缓冲区的日志为解析到日志打印命令时生成的;如果是,则将内存缓冲区中的日志封装在http请求中;将所述http请求发送至服务器,以使服务器存储所述http请求中的日志。
【技术特征摘要】
【专利技术属性】
技术研发人员:叶炜晨,
申请(专利权)人:北京奇艺世纪科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。