日志采集系统及方法与流程

文档序号:33749745发布日期:2023-04-06 14:20阅读:255来源:国知局
日志采集系统及方法与流程

本发明涉及数据采集,具体涉及一种日志采集系统及方法。


背景技术:

1、日志数据可以记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。运维工程师可以通过日志数据来实现排查故障、监控业务、提前告警等功能。但随着产生日志数据的集群增多,产生的日志数据也随之增多,如何保证随时可接入全部集群的日志数据,又能实时的查看日志数据,成为日志采集系统所亟需解决的问题。

2、现有技术中的日志采集系统如图1所示,日志采集系统包括由fluent-bit、fluent-d构成的采集端、由kafka、zookeeper、schema registry、connector等组件构成的传输端以及用于存储日志数据的数据库。但现有技术的日志采集系统存在以下技术问题:当日志采集系统配置完成后,由于集群产生的日志随着时间变化的,可能会在某些时间段产生很少的日志,而在另外一些时间段则会产生非常多的日志,形成波峰波谷。在日志峰值时,由于日志数据的消费速度比不上产生速度,可能会产生日志数据积压在传输端中,造成消费积压。日志波谷时,产生的日志数据过慢,日志数据的消费是累积到一定时才会批量消费写入到数据库中。这两种情况下都会造成日志数据无法实时存储的技术问题。

3、因此,急需提供一种日志采集系统及方法,保证将集群产生的日志数据进行实时采集和实时存储。


技术实现思路

1、有鉴于此,有必要提供一种日志采集系统及方法,用以解决现有技术中存在的集群产生的日志数据无法实时采集和实时存储的技术问题。

2、一方面,本发明提供了一种日志采集系统,包括调度模块以及用于采集至少一个集群中日志数据的至少一个日志采集模块;所述日志采集模块包括日志获取单元、至少一个日志缓存单元以及至少一个日志消费单元;

3、所述日志获取单元用于采集所述日志数据,并将所述日志数据发送至所述至少一个日志缓存单元进行存储;

4、所述至少一个日志消费单元用于从所述至少一个日志缓存单元中读取所述日志数据,并将所述日志数据存储至数据库;

5、所述调度模块用于获取各所述日志缓存单元的日志消费数量,并根据所述日志消费数量调整所述日志获取单元的发送策略、所述至少一个日志缓存单元的数量以及所述至少一个日志消费单元的数量。

6、在一些可能的实现方式中,所述调度模块包括消费积压判断单元以及第一调度单元;

7、所述消费积压判断单元用于获取各所述日志缓存单元中的日志消费数量,并根据所述日志消费数量确定所述至少一个日志缓存单元中存在消费积压的目标日志缓存单元;

8、所述第一调度单元用于当所述目标日志缓存单元的数量与所述至少一个日志缓存单元的数量相同时,设置一个新增日志缓存单元和一个新增日志消费单元,并控制所述日志获取单元采集所述集群中的新增日志数据,并将所述新增日志数据发送至所述新增日志缓存单元进行存储,控制所述新增日志消费单元从所述新增日志缓存单元中读取所述新增日志数据,并将所述新增日志数据存储至所述数据库。

9、在一些可能的实现方式中,所述调度模块还包括第二调度单元;

10、所述第二调度单元用于当所述目标日志缓存单元的数量小于所述至少一个日志缓存单元的数量,且所述目标日志缓存单元的数量大于或等于1时,确定所述至少一个日志缓存单元中的非目标日志缓存单元,并控制所述日志获取单元将所述新增日志数据发送至所述非目标日志缓存单元进行存储。

11、在一些可能的实现方式中,所述调度模块还包括第三调度单元;

12、所述第三调度单元用于当所述目标日志缓存单元的数量为0时,确定所述至少一个日志缓存单元中的可删减缓存单元,控制所述日志获取单元停止向所述可删减缓存单元发送所述新增日志数据,并在所述可删减缓存单元中的日志数据读取完毕后,删除所述可删减缓存单元。

13、在一些可能的实现方式中,所述第三调度单元包括消费数量确定子单元、可删减缓存单元确定子单元以及删减子单元;

14、所述消费数量确定子单元用于获取各所述日志缓存单元在预设时间段内的数据消费量;

15、所述可删减缓存单元确定子单元用于判断所述数据消费量是否小于数据量阈值,并将所述数据消费量小于所述数据量阈值的所述日志缓存单元确定为所述可删减缓存单元;

16、所述删减子单元用于控制所述日志获取单元停止向所述可删减缓存单元发送所述新增日志数据,并在所述可删减缓存单元中的日志数据读取完毕后,删除所述可删减缓存单元。

17、在一些可能的实现方式中,所述第三调度单元还包括非可删减缓存单元确定子单元;

18、所述非可删减缓存单元确定子单元用于确定所述至少一个日志缓存单元中非可删减缓存单元的数量;

19、所述删减子单元用于当所述非可删减缓存单元的数量大于或等于1时,控制所述日志获取单元停止向所述可删减缓存单元发送所述新增日志数据,并在所述可删减缓存单元中的日志数据读取完毕后,删除所述可删减缓存单元。

20、在一些可能的实现方式中,所述日志采集系统还包括轮询节点设置模块,所述轮询节点设置模块用于设置所述调度模块调整所述日志获取单元的发送策略、所述至少一个日志缓存单元的数量以及所述至少一个日志消费单元的数量的多个轮询节点;

21、所述调度模块用于在所述多个轮询节点中的各所述轮询节点获取所述至少一个日志缓存单元中各所述日志缓存单元的日志消费数量,并根据所述日志消费数量调整所述日志获取单元的发送策略、所述至少一个日志缓存单元的数量以及所述至少一个日志消费单元的数量。

22、在一些可能的实现方式中,各所述日志缓存单元包括至少两个日志缓存分区,所述日志缓存分区用于接收并存储所述日志数据。

23、在一些可能的实现方式中,各所述日志消费单元包括与所述至少两个日志缓存分区对应的至少两个日志消费子单元;

24、所述日志消费子单元用于从所述日志缓存分区中读取所述日志数据,并将所述日志数据存储至所述数据库。

25、另一方面,本发明还提供了一种日志采集方法,适用于上述任意一种可能的实现方式中所述的日志采集系统,所述日志采集方法包括:

26、基于所述日志获取单元采集所述日志数据,并将所述日志数据发送至所述至少一个日志缓存单元进行存储;

27、基于所述至少一个日志消费单元从所述至少一个日志缓存单元中读取所述日志数据,并将所述日志数据存储至数据库;

28、基于所述调度模块获取各所述日志缓存单元的日志消费数量,并根据所述日志消费数量调整所述日志获取单元的发送策略、所述至少一个日志缓存单元的数量以及所述至少一个日志消费单元的数量。

29、采用上述实施例的有益效果是:本发明提供的日志采集系统,通过设置调度模块获取各日志缓存单元的日志消费数量,并根据日志消费数量调整日志获取单元的发送策略、至少一个日志缓存单元的数量以及至少一个日志消费单元的数量,可在集群产生的日志数据陡然增加或减少时,通过调度模块对日志获取单元的发送策略、至少一个日志缓存单元的数量以及至少一个日志消费单元的数量的调整,确保日志数据的实时采集和实时存储。

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