应用日志的收集、发送方法、装置、系统及日志服务器制造方法及图纸

技术编号:15059312 阅读:62 留言:0更新日期:2017-04-06 09:03
本申请实施例中提供了一种应用日志的收集方法、装置、系统及日志服务器,该方法包括:查询日志服务器中会话队列的状态,其中,会话队列中存储日志内容,会话队列的状态是日志服务器根据接收到来自客户端的日志获取请求的第一时刻确定的;根据会话队列的状态触发代理端Agent收集或停止收集应用日志。采用本申请实施例中的方案,能够避免Agent所在的计算机的资源的浪费,提高计算机资源的利用率。

【技术实现步骤摘要】

本申请涉及计算机技术,具体涉及一种应用日志的收集、方法方法、装置、系统及日志服务器。
技术介绍
当应用出现问题时,基于应用的日志文件来判断导致问题的原因是非常重要的线上调试手段。为了获取应用日志,通常是到出现问题的应用所在的计算机上抓取应用日志文件,然后以此为基础推测问题的原因。现有技术中,从计算机上实时抓取应用日志的方法主要是在应用所在的计算机上部署代理端Agent。当用户请求应用日志时,用户通过客户端向特定计算机上的Agent发送指令要求开始收集应用日志。Agent开始监听相应的端口,不断收集应用日志,然后等待指令将收集的日志发送给客户端。同时,客户端也会不断发送指令以请求日志内容,Agent将收集到的日志内容发送给客户端。当用户期望停止获取日志内容时,客户端发送停止日志指令给Agent,Agent停止日志收集。整个过程如图1所示。但是,通常情况下,在期望停止获取日志内容时,大部分用户的习惯是直接关闭客户端,而不会向Agent发送停止指令。此时,Agent不知道在什么时间点关闭日志传输通道,所以会一直收集日志文件,但是这部分的文件不会被用户所获取,从而导致Agent所在的计算机的资源的浪费。
技术实现思路
本申请实施例中提供了一种应用日志的收集、发送方法、装置、系统及日志服务器,用于解决现有技术中Agent所在计算机资源浪费的问题。根据本申请实施例的第一个方面,提供了一种应用日志的收集方法,包括:查询日志服务器中会话队列的状态,其中,会话队列中存储日志内容,会话队列的状态是日志服务器根据接收到来自客户端的日志获取请求的第一时刻确定的;根据会话队列的状态触发代理端Agent收集或停止收集应用日志。根据本申请实施例的第二个方面,提供了一种应用日志的收集方法,包括:日志服务器根据接收到来自客户端的日志获取请求的第一时刻,确定会话队列的状态,其中,会话队列中存储:日志获取请求对应的日志内容;接收Agent对会话队列的状态查询;将会话队列的状态反馈给Agent。根据本申请实施例的第三个方面,提供了一种应用日志的发送方法,包括:接收来自客户端的日志获取请求,日志获取请求携带日志内容标识;根据日志内容标识查询日志服务器是否存在对应的会话队列;如果存在,则将对应的会话队列中的日志内容发送给客户端。根据本申请实施例的第四个方面,提供了一种应用日志收集装置,包括:查询模块,用于查询日志服务器中会话队列的状态,其中,会话队列中存储日志内容,会话队列的状态是日志服务器根据接收到来自客户端的日志获取请求的第一时刻确定的;确定模块,用于根据会话队列的状态触发代理端Agent收集或停止收集应用日志。根据本申请实施例的第五个方面,提供了一种日志服务器,包括:会话队列状态确定模块,用于根据接收到来自客户端的日志获取请求的第一时刻确定会话队列的状态,其中,会话队列中存储:日志获取请求对应的日志内容;第一接收模块,用于接收Agent对会话队列的状态查询;状态反馈模块,用于将会话队列的状态反馈给Agent。根据本申请实施例的第六个方面,提供了一种应用日志发送装置,包括:第三接收模块,用于接收来自客户端的日志获取请求,日志获取请求携带日志内容标识;查询模块,用于根据日志内容标识查询日志服务器是否存在对应的会话队列;第二发送模块,用于在存在时,将对应的会话队列中的日志内容发送给客户端。根据本申请实施例的第七个方面,提供了一种应用日志收集系统,包括:客户端,向日志服务器发送日志获取请求,并从日志服务器接收日志内容;如上述的日志服务器;如上述的日志发送装置;包括如上述的日志收集装置的Agent。采用本申请实施例中的应用日志的收集方法,查询日志服务器中存储相应日志内容的会话队列的状态,该状态是根据客户端的日志获取请求的时刻确定的,并根据该状态触发Agent收集或停止收集应用日志;从而使得Agent能够获知停止收集日志的时机,避免Agent所在的计算机的资源的浪费,提高计算机资源的利用率。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为现有技术中的应用日志收集方法流程图;图2为本申请实施例一所示的应用日志的收集方法流程图;图3为本申请实施例二所示的应用日志的收集方法流程图;图4为本申请实施例三所示的应用日志的发送方法流程图图5为本申请实施例四所示应用日志收集装置的结构示意图;图6为本申请实施例五所示日志服务器的结构示意图;图7为本申请实施例六所示应用日志发送装置的结构示意图;图8为本申请实施例七所示应用日志收集系统的结构示意图图9为本申请实施例七所示应用日志收集系统中客户端与日志服务器之间的交互流程图;图10为本申请实施例七所示应用日志收集系统中日志服务器与Agent之间的交互流程图。具体实施方式为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本申请实施例中提供的方案能够应用于需要进行多个应用日志的收集、发送的场景中。例如,可以应用于如PaaS(Platform-as-a-Service,平台即服务)产品EDAS(EnterpriseDistributedApplicationService,企业级分布式应用服务)等的中间件中。为了解决现有技术中Agent所在计算机资源浪费的问题,本申请实施例中提供了一种应用日志的收集、发送方法,其核心在于,在客户端和代理Agent之间新增日志服务器,在日志服务器中维护各日志内容对应的会话队列,在该会话队列中,维护相应的日志内容;并根据客户端发送的日志获取请求和Agent存储日志内容的动作来设置会话队列的状态,并根据会话队列的状态来触发Agent收集日志或是停止收集日志。从而使得Agent能够获知停止收集日志的时机,避免Agent所在的计算机的资源的浪费,提高计算机资源的利用率。图2为本申请实施例一所示的应用日志的收集方法流程图。如图2所示,本申请实施例一所示的应用日志的收集方法包括如下步骤:S202,查询日志服务器中会话队列的状态,其中,会话队列中存储日志内容,该会话队列的状态是日志服务器根据接收到来自客户端的日志获取请求的第一时刻确定的;S204,根据会话队列的状态触发代理端Agent收集或停止收集应用日志。在具体实施时,本方法可应用于Agent,也可独立于Agent;此时Agent不直接和客户端交互,而是从日志服务器接受日志收集指令,收集日志后将日志内容发送给日志服务器。同时,Agent并不接受停止收集日志的指令,而是不断查询日志服务器中相应的会话队列的状态,并根据该状态确定是否收集应用日志。在具体实施时,日志服务器中的会话队列可以是预先创建的,也可以是在接收到客户端发送的日志获取请求后,发现还没有相应的会话队列之后创建的新会话队列。在具体实施时,在Agent查询会话队列状态之前,日志服务器可以在接收到客户端的日志获取请求之后,创建一个新的会话队列,并为该会话生成一个新的日志收集指令本文档来自技高网...

【技术保护点】
一种应用日志的收集方法,其特征在于,包括:查询日志服务器中会话队列的状态,其中,所述会话队列中存储日志内容,所述会话队列的状态是日志服务器根据接收到来自客户端的日志获取请求的第一时刻确定的;根据所述会话队列的状态触发代理端Agent收集或停止收集应用日志。

【技术特征摘要】
1.一种应用日志的收集方法,其特征在于,包括:查询日志服务器中会话队列的状态,其中,所述会话队列中存储日志内容,所述会话队列的状态是日志服务器根据接收到来自客户端的日志获取请求的第一时刻确定的;根据所述会话队列的状态触发代理端Agent收集或停止收集应用日志。2.根据权利要求1所述的方法,其特征在于,根据所述会话队列的状态触发代理端Agent收集或停止收集应用日志,具体包括:当所述会话队列的状态为有效时,触发代理端Agent收集应用日志;当所述会话队列的状态为失效时,触发代理端Agent停止收集应用日志。3.一种应用日志的收集方法,其特征在于,包括:日志服务器根据接收到来自客户端的日志获取请求的第一时刻,确定会话队列的状态,其中,所述会话队列中存储:所述日志获取请求对应的日志内容;接收Agent对所述会话队列的状态查询;将所述会话队列的状态反馈给所述Agent。4.根据权利要求3所述的方法,其特征在于,日志服务器根据接收到来自客户端的日志获取请求的第一时刻确定会话队列的状态,具体包括:记录最近一次接收到所述日志获取请求的第一时刻,并开始第一计时;根据所述第一时刻和第一计时时长确定所述会话队列的状态。5.根据权利要求4所述的方法,其特征在于,所述会话队列为多个,所述日志获取请求中携带日志内容标识,在日志服务器接收来自客户端的日志获取请求之后,记录最近一次接收到所述日志获取请求的第一时刻,并开始第一计时之前,还包括:根据所述日志内容标识判断所述会话队列是否已存在。6.根据权利要求5所述的方法,其特征在于,如果判断结果为是,则记录最近一次接收到所述日志获取请求的第一时刻,并开始第一计时,具体包括:更新接收到的所述日志获取请求的第一时刻,并重启第一计时。7.根据权利要求4至6任一项所述的方法,其特征在于,根据所述第一时刻和第一计时时长确定会话队列的状态,具体包括:在所述第一计时时长达到预定时长时,将所述会话队列的状态设置为失效,否则将所述会话队列的状态设置为有效。8.根据权利要求7所述的方法,其特征在于,还包括:记录最近一次将所述日志内容存储至会话队列的第二时刻,并开始第二计时;在所述第二计时时长超过预定阈值时,关闭会话队列。9.根据权利要求5所述的方法,其特征在于,如果判断结果为否,则在记录最近一次接收到所述日志获取请求的第一时刻,并开始第一计时之前,所述方法还包括:创建所述日志内容对应的会话队列。10.根据权利要求3所述的方法,其特征在于,还包括:接收来自Agent的日志内容;将所述日志内容存储至相应的会话队列。11.根据权利要求8所述的方法,其特征在于,还包括:接收来自客户端的日志获取请求;根据接收到所述日志获取请求的第一时刻和将所述日志获取请求对应的日志内容存储至会话队列的第二时刻,在会话队列中确定所述客户端请求的日志内容;将确定的日志内容发送给所述客户端。12.一种应用日志的发送方法,其特征在于,包括:接收来自客户端的日志获取请求,所述日志获取请求携带日志内容标识;根据所述日志内容标识查询日志服务器是否存在对应的会话队列;如果存在,则将对应的会话队列中的日志内容发送给所述客户端。13.根据权利要求12所述的方法,其特征在于,如果不存在,则创建所述日志获取请求对应的会话队列。14.根据权利要求12所述的方法,其特征在于,所述日志内容标识为会话队列标识。15.一种应用日志收集装置,其特征在于,包括:查询模块,用于查询日志服务器中会话队列的状态,其中,所述会话队列中存储日志内容,所述会话队列的状态是日志服务器根据接收到来自客户端的日志获取请求的第一时刻确定的:确定模块,用于根据所述会话队...

【专利技术属性】
技术研发人员:谭佳倪超赵林闫宁葛婷婷
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1