日志处理方法及其装置、电子设备及存储介质与流程

文档序号:35468245发布日期:2023-09-16 10:41阅读:42来源:国知局
日志处理方法及其装置、电子设备及存储介质与流程

本发明涉及日志处理领域及其他相关,具体而言,涉及一种日志处理方法及其装置、电子设备及存储介质。


背景技术:

1、网络设备、系统及服务程序等,在运作时都会产生一个log.形式的事件记录文件,文件中每一行日志都记载着日期、时间、使用者及执行动作等相关操作的描述,通过分析和挖掘日志数据可以发现系统性能瓶颈、安全威胁、异常行为等问题,同时日志数据可以为系统维护人员和开发人员提供实时和历史信息,在出现问题时快速定位并解决问题。

2、图1是根据现有技术的一种日志处理方法的流程图,如图1所示,现有的采集和处理日志的步骤包括:步骤一,基于应用节点(图1中以应用节点1、应用节点2、应用节点3……应用节点n示意说明)采集应用日志;步骤二,根据日志插件将应用日志转化成log.的标准日志格式的日志文件;步骤三,将日志文件写到本地磁盘;步骤四,将日志文件发送到服务端,服务端将日志文件加入到mq消息队列中进行消费,并将日志数据存储在日志数据库,将日志索引存储在索引数据库。

3、相关技术中,基于上述步骤实现对日志的采集和处理,经历了多次读写,每次读写都伴随着磁盘的读写和频繁的序列化与反序列化,应用文件写入和日志备份文件都需要写入磁盘,会导致日志文件对磁盘的内存占用大,且频繁的序列化和反序列化会导致网络资源占用量高。

4、针对上述的问题,目前尚未提出有效的解决方案。


技术实现思路

1、本发明实施例提供了一种日志处理方法及其装置、电子设备及存储介质,以至少解决相关技术中,通过生成日志文件的方式进行日志采集和处理,磁盘内存占用大且网络资源占用量高的技术问题。

2、根据本发明实施例的一个方面,提供了一种日志处理方法,应用于客户端,包括:获取客户端的应用日志集合,其中,所述应用日志集合包括n个应用日志,所述应用日志的类型至少包括:业务逻辑日志、请求对象日志、响应对象日志,n为大于等于1的正整数;对所述应用日志中的日志数据进行压缩,得到日志字节数组;基于用户数据报协议将所述日志字节数组发送至服务端。

3、可选地,在获取客户端的应用日志集合之前,还包括:在所述客户端中部署进程启动时,将过滤器组件和日志框架组件部署到所述客户端中,由所述过滤器组件和所述日志框架组件生成所述应用日志,其中,所述进程用于代理所述客户端与所述服务端进行交互。

4、可选地,获取客户端的应用日志集合的步骤,包括:通过所述过滤器组件拦截所述客户端的请求报文和响应报文,并对所述请求报文和所述响应报文进行打印生成请求对象日志和响应对象日志,其中,所述请求报文和所述响应报文是基于所述客户端和所述服务端的交互产生的;通过所述日志框架组件对所述客户端执行业务逻辑时产生的数据进行打印,得到业务逻辑日志;基于所述业务逻辑日志、所述请求对象日志和所述响应对象日志得到应用日志集合。

5、可选地,所述日志字节数组包括:业务逻辑日志字节数组、请求对象日志字节数组、响应对象日志字节数组,对所述应用日志中的日志数据进行压缩,得到日志字节数组的步骤,包括:采用数据压缩工具对所述业务逻辑日志中的日志数据进行压缩,得到业务逻辑日志字节数组;基于protobuf对所述请求对象日志和所述响应对象日志中的日志数据进行序列化压缩,得到所述请求对象日志字节数组和所述响应对象日志字节数组。

6、可选地,在基于用户数据报协议将日志字节数组发送至服务端之前,还包括:统计所述服务端的可用服务节点数量,并获取每个可用服务节点的ip地址信息;基于负载均衡算法将n个所述日志数据经过压缩得到的所述日志字节数组进行拆分,得到多个日志字节数组块。

7、可选地,在基于用户数据报协议将所述日志字节数组发送至服务端之后,还包括:由所述服务端对所述日志字节数组进行解压并将解压后得到的所述日志数据加入到数据库,进行日志全链路展示。

8、根据本发明实施例的另一方面,还提供了一种日志处理方法,应用于服务端,包括:接收客户端发送的日志字节数组,并对所述日志字节数组进行解压,得到日志数据,其中,所述日志字节数组是对采集的日志数据进行压缩得到的;将所述日志数据加入至消息队列;采用多线程技术并发处理消息队列中的日志数据,并提取所述日志数据中的关键特征,得到日志索引;将所述日志数据批量存储至数据库。

9、根据本发明实施例的另一方面,还提供了一种日志处理装置,应用于客户端,包括:获取单元,用于获取客户端的应用日志集合,其中,所述应用日志集合包括n个应用日志,所述应用日志的类型至少包括:业务逻辑日志、请求对象日志、响应对象日志,n为大于等于1的正整数;压缩单元,用于对所述应用日志中的日志数据进行压缩,得到日志字节数组;发送单元,用于基于用户数据报协议将所述日志字节数组发送至服务端。

10、可选地,所述日志处理装置还包括:第一部署模块,用于在所述客户端中部署进程启动时,将过滤器组件和日志框架组件部署到所述客户端中,由所述过滤器组件和所述日志框架组件生成所述应用日志,其中,所述进程用于代理所述客户端与所述服务端进行交互。

11、可选地,所述获取单元包括:第一拦截模块,用于通过所述过滤器组件拦截所述客户端的请求报文和响应报文,并对所述请求报文和所述响应报文进行打印生成请求对象日志和响应对象日志,其中,所述请求报文和所述响应报文是基于所述客户端和所述服务端的交互产生的;第一打印模块,用于通过所述日志框架组件对所述客户端执行业务逻辑时产生的数据进行打印,得到业务逻辑日志;第一获取模块,用于基于所述业务逻辑日志、所述请求对象日志和所述响应对象日志得到应用日志集合。

12、可选地,所述日志字节数组包括:业务逻辑日志字节数组、请求对象日志字节数组、响应对象日志字节数组,所述压缩单元包括:第一压缩模块,用于采用数据压缩工具对所述业务逻辑日志中的日志数据进行压缩,得到业务逻辑日志字节数组;第二压缩模块,用于基于protobuf对所述请求对象日志和所述响应对象日志中的日志数据进行序列化压缩,得到所述请求对象日志字节数组和所述响应对象日志字节数组。

13、可选地,所述日志处理装置还包括:第一统计模块,用于统计所述服务端的可用服务节点数量,并获取每个可用服务节点的ip地址信息;第一拆分模块,用于基于负载均衡算法将n个所述日志数据经过压缩得到的所述日志字节数组进行拆分,得到多个日志字节数组块。

14、可选地,所述日志处理装置还包括:第一解压模块,用于由所述服务端对所述日志字节数组进行解压并将解压后得到的所述日志数据加入到数据库,进行日志全链路展示。

15、根据本发明实施例的另一方面,还提供了一种日志处理装置,应用于服务端,包括:接收单元,用于接收客户端发送的日志字节数组,并对所述日志字节数组进行解压,得到日志数据,其中,所述日志字节数组是对采集的日志数据进行压缩得到的;第一加入单元,用于将所述日志数据加入至消息队列;处理单元,用于采用多线程技术并发处理消息队列中的日志数据,并提取所述日志数据中的关键特征,得到日志索引;第二加入单元,用于将所述日志数据批量存储至数据库。

16、根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任意一项日志处理方法。

17、根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述任意一项日志处理方法。

18、在本公开中,通过以下步骤,先获取客户端的应用日志集合,其中,应用日志集合包括n个应用日志,应用日志的类型至少包括:业务逻辑日志、请求对象日志、响应对象日志,n为大于等于1的正整数,再对应用日志中的日志数据进行压缩,得到日志字节数组,最后基于用户数据报协议将日志字节数组发送至服务端。

19、本公开中,从客户端获取应用日志后,以压缩日志数据流的方式对日志数据进行处理,不生成日志文件,避免了进行本地磁盘写入,减少了序列化和反序列化的次数,节省了磁盘资源,同时,在日志数据传输的过程中,将日志数据压缩成字节数组,减少了传输数据的体量,节省了网络资源,提升了日志处理效率,进而解决了相关技术中,通过生成日志文件的方式进行日志采集和处理,磁盘内存占用大且网络资源占用量高的技术问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1