本申请提供一种服务器日志的采集方法、系统及相关装置,涉及服务器领域,服务器与客户端设有SSE服务连接,所述方法包括:接收源于客户端的日志采集请求;调用日志采集组件响应所述日志采集请求,得到日志数据;将所述日志数据通过所述SSE服务连接反馈至所述客户端。由于SSE协议无需采用第三方服务即可实现服务器到客户端的长连接,且支持短线重连和自定义发送的数据类型,使得本申请中客户端请求服务器日志的过程无需采用第三方服务,简化了日志采集结构,扩展了日志数据的数据类型,使得日志的采集过程更加灵活便捷。的采集过程更加灵活便捷。的采集过程更加灵活便捷。
【技术实现步骤摘要】
一种服务器日志的采集方法、系统及相关装置
[0001]本申请涉及服务器领域,特别涉及一种服务器日志的采集方法、系统及相关装置。
技术介绍
[0002]分布式集群的微服务架构通常包含几百甚至上千个服务,这些服务可能会被部署到集群中的任何一台机器上。因此,若要查看某个微服务的日志输出时,其过程较为繁琐。通常,首先需要查询服务部署在哪台服务器上,然后向系统管理员获取目标服务器的访问权限,并通过ssh登录到服务器并使用tail
–
f命令来实时查看日志。此过程非常耗时,且对用户操作要求高。并且如果微服务基于k8s多副本部署的高可用环境,一个微服务可能会部署多个副本,又会给定位问题增加复杂性,在排查问题的时候,经常需要遍历各个副本中的日志信息。
[0003]目前已有的技术方案中,通过websocket建立WEB页面与服务端的通信,并将日志信息从服务器输出到web页面。但由于websocket的复杂性,需要借助第三方类库进行实现,使得日志信息的获取极其不方便。
技术实现思路
[0004]本申请的目的是提供一种服务器日志的采集方法、采集系统、计算机可读存储介质和服务器,能够搞笑获取服务器的日志数据。
[0005]为解决上述技术问题,本申请提供一种服务器日志的采集方法,服务器与客户端设有SSE服务连接,所述方法包括:
[0006]接收源于客户端的日志采集请求;
[0007]调用日志采集组件响应所述日志采集请求,得到日志数据;
[0008]将所述日志数据通过所述SSE服务连接反馈至所述客户端。
[0009]优选地,调用日志采集组件响应所述日志采集请求,得到日志数据包括:
[0010]调用日志采集组件解析所述日志采集请求,确定所述日志请求对应的服务名称;
[0011]执行所述服务器中内核缓冲区的预设日志采集操作指令,并通过所述内核缓冲区的预设通道获取所述服务名称对应的日志数据。
[0012]优选地,若所述SSE服务连接中配有适配器,接收源于客户端的日志采集请求包括:
[0013]在所述适配器接收客户端的预设请求指令后,接收所述适配器转发的日志采集请求。
[0014]优选地,所述日志数据通过所述SSE服务连接反馈至所述客户端包括:
[0015]将所述日志数据发送至所述适配器;
[0016]所述适配器判断所述日志数据是否为单副本服务的日志;
[0017]若是,将所述日志数据反馈至所述客户端;
[0018]若否,对所述日志数据进行整合或排序后,反馈至所述客户端。
[0019]优选地,对所述日志数据进行整合或排序后,反馈至所述客户端包括:
[0020]若对所述日志数据进行整合,对所述日志数据每个副本分别标记,得到第一日志数据,并反馈至所述客户端;所述标记用于在所述客户端进行分屏展示时记录副本的展示位置和展示顺序;
[0021]若对所述日志数据进行排序,对所述日志数据中各副本的日志记录按照时间戳排序,得到第二日志数据,并反馈至所述客户端;所述副本顺序为所述日志数据在所述客户端的展示顺序。
[0022]优选地,对所述日志数据中各副本的日志记录按照时间戳排序,得到第二日志数据包括:
[0023]定义预设集合,并在所述预设集合中为每个副本配置相应的迭代器;
[0024]遍历所述预设集合;其中,每次遍历过程中确定当前预设集合中包含最小时间戳的目标副本,并将所述最小时间戳对应的日志记录添加至中间日志数据,同时所述目标副本对应的迭代器向前移动;
[0025]当所述预设集合中所有副本对应的迭代器都迭代结束时结束遍历,将中间日志数据作为所述第二日志数据。
[0026]优选地,将所述日志数据通过所述SSE服务连接反馈至所述客户端之后,还包括:
[0027]接收关键词查询指令;
[0028]高亮显示所述日志数据中所述关键词查询指令对应的关键词。
[0029]本申请还提供一种服务器日志的采集系统,服务器与客户端设有SSE服务连接,包括:
[0030]请求接收模块,用于接收源于客户端的日志采集请求;
[0031]日志采集模块,用于调用日志采集组件响应所述日志采集请求,得到日志数据;
[0032]日志反馈模块,用于将所述日志数据通过所述SSE服务连接反馈至所述客户端。
[0033]本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。
[0034]本申请还提供一种服务器,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的方法的步骤。
[0035]本申请提供一种服务器日志的采集方法,服务器与客户端设有SSE服务连接,所述方法包括:接收源于客户端的日志采集请求;调用日志采集组件响应所述日志采集请求,得到日志数据;将所述日志数据通过所述SSE服务连接反馈至所述客户端。
[0036]本申请在接收到日志采集请求后,直接调用日志采集组件采集相应的日志数据,并通过SSE服务连接反馈,由于SSE协议无需采用第三方服务即可实现服务器到客户端的长连接,且支持短线重连和自定义发送的数据类型,使得客户端请求服务器日志的过程无需采用第三方服务,简化了日志采集结构,扩展了日志数据的数据类型,使得日志的采集过程更加灵活便捷。
[0037]本申请还提供一种服务器日志的采集系统、计算机可读存储介质和服务器,具有上述有益效果,此处不再赘述。
附图说明
[0038]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0039]图1为本申请实施例所提供的一种服务器日志的采集方法的流程图;
[0040]图2为本申请实施例所提供的一种服务器日志的采集系统的结构示意图。
具体实施方式
[0041]为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0042]请参考图1,图1为本申请实施例所提供的一种服务器日志的采集方法的流程图,具体过程如下:
[0043]S101:接收源于客户端的日志采集请求;
[0044]本实施例的实施主体可以为任何可提供日志查询服务的服务器。本步骤旨在接收日志采集请求,但需要注意的是,该日志采集请求并不必须直接由客户端发出,还可以为由客户端发出并经过其他设备终端的请求。例如,若SSE服务连接中配有本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种服务器日志的采集方法,其特征在于,服务器与客户端设有SSE服务连接,所述方法包括:接收源于所述客户端的日志采集请求;调用日志采集组件响应所述日志采集请求,得到日志数据;将所述日志数据通过所述SSE服务连接反馈至所述客户端。2.根据权利要求1所述的采集方法,其特征在于,调用日志采集组件响应所述日志采集请求,得到日志数据包括:调用日志采集组件解析所述日志采集请求,确定所述日志请求对应的服务名称;执行所述服务器中内核缓冲区的预设日志采集操作指令,并通过所述内核缓冲区的预设通道获取所述服务名称对应的日志数据。3.根据权利要求1所述的采集方法,其特征在于,若所述SSE服务连接中配有适配器,接收源于客户端的日志采集请求包括:在所述适配器接收客户端的预设请求指令后,接收所述适配器转发的日志采集请求。4.根据权利要求3所述的采集方法,其特征在于,所述日志数据通过所述SSE服务连接反馈至所述客户端包括:将所述日志数据发送至所述适配器;所述适配器判断所述日志数据是否为单副本服务的日志;若是,将所述日志数据反馈至所述客户端;若否,对所述日志数据进行整合或排序后,反馈至所述客户端。5.根据权利要求4所述的采集方法,其特征在于,对所述日志数据进行整合或排序后,反馈至所述客户端包括:若对所述日志数据进行整合,对所述日志数据每个副本分别标记,得到第一日志数据,并反馈至所述客户端;所述标记用于在所述客户端进行分屏展示时记录副本的展示位置和展示顺序;若对所述日志数据进行排序,对所述日志数据中各副本的日志记录按照时间戳排序,得到第二日志数据,并反馈至所述客户端;所...
【专利技术属性】
技术研发人员:李世刚,
申请(专利权)人:苏州浪潮智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。