基于Kafka消息队列的MongoDB日志采集和分析系统技术方案

技术编号:20160443 阅读:1447 留言:0更新日期:2019-01-19 00:13
本发明专利技术公开了基于Kafka消息队列的MongoDB日志采集和分析系统,该系统包括5部分:IT自研应用系统日志异步记录;Kafka消息队列日志收集;基于Java的消费者日志解析;基于MongoDB的日志数据存储;可视化日志分析系统;与现有技术相比,解决了高并发的日志记录对系统的负载影响;提高日志信息查询效率;解决高并发、高响应要求的IT应用系统的日志信息收集困难的问题;提高日志分析效率,避免去解析大量的日志文件;定期对数据进行清理,保证数据最新。

【技术实现步骤摘要】
基于Kafka消息队列的MongoDB日志采集和分析系统
本专利技术涉及一种日志采集和分析系统,具体涉及一种基于Kafka消息队列的MongoDB日志采集和分析系统,属于信息收集和存储系统领域。
技术介绍
目前典型的IT自研系统日志信息收集主要包括两种模式:第一是通过编写代码或者利用很多插件直接记录在TXT文本,然后直接开发基于TXT文本的日志查看分析工具,或者开发一个将TXT日志信息导入到数据库的转换工具,再开发一个日志分析网页。第二是直接利用很多开源插件将日志记录到数据库中,然后开发基于数据库的日志分析网页。两种方案目前使用都非常普及。但是对于高并发和请求交互响应比较高的IT系统,以上两种方案会有很多弊端,比如,日志量太多,每秒钟产生上百兆,记录在TXT太大,分析工具打开、加载和分析效率都很差,有些太大的TXT甚至打不开。日志记录到数据库,高并发会对数据库造成很大性能压力。申请人中国银行股份有限公司于2017年10月19日申请了申请号为CN201710979063.X的专利技术专利,提供了一种数据统计系统,其特征是,所述系统包括信息采集装置、数据通道装置、数据处理装置以及数据存储装置,所述信息采集装置,用于监听一目标系统,当所述目标系统有交易时,采集所述交易,并将所述交易发送至所述数据通道装置;所述数据处理装置,用于当所述数据通道装置有交易写入时,取出所述交易,根据所述交易更新所述数据处理装置中的时间变量,并将所述交易进行统计计算,将统计结果持续写入数据存储装置。该专利技术申请的专利技术目的为提供一种数据统计方法、数据统计系统、计算机设备以及计算机可读存储介质,采用流式处理方式,及时取得消息中间件的交易,每秒统计交易量,及时写入临时存储介质及数据存储装置,由于在交易发生后的第一时间主动获取并返回交易,采用了分布式计算和存储思想,使数据处理速度、吞吐量、存取速度有了大幅提高,节省了时间。上述方法公开了一种数据处理速度快、吞吐量打、存取速度快的数据统计系统。
技术实现思路
本专利技术要解决的技术问题是针对以上不足,提供基于Kafka消息队列的MongoDB日志采集和分析系统,以实现以下专利技术目的:1、解决高并发的日志记录对系统的负载影响。2、提高日志信息查询效率。3、解决高并发、高响应要求的IT应用系统的日志信息收集困难的问题。4、提高日志分析效率,避免去解析大量的日志文件。5、对数据进行定期清理,保证数据最新。为解决以上技术问题,本专利技术采用以下技术方案:基于Kafka消息队列的MongoDB日志采集和分析系统,该系统包括:IT自研应用系统日志异步记录。进一步的方案:所述IT自研应用系统采用.NET自带的Nlog日志记录插件,采用异步记录的配置方式,日志数据源自定义为Kafka消息队列。进一步的方案:该系统包括:Kafka消息队列日志收集系统,IT自研应用系统会异步将日志信息全部丢进Kafka队里内,进行离线存储。进一步的方案:该系统包括:基于Java的消费者日志解析系统,开发基于Java的消费者线程功能。进一步的方案:该系统包括:基于Java的消费者线程功能用于查找Kafka的日志数据。进一步的方案:该系统包括:将查找后的日志数据逐条读取;对Kafka队列里的消息内容进行循环遍历解析,将日志数据写入MongoDB数据库。进一步的方案:该系统包括:基于MongoDB的日志数据存储系统,针对IT自研应用系统日志异步记录,制定MongoDB日志模型,自动收集消费者解析的日志信息,并可设置间隔时间的定期清空历史数据,防止数据库无限制占用空间。进一步的方案:该系统包括:可视化日志分析系统,利用Highchart和MongoDBC#开发驱动,建立IT自研应用系统日志分析页面,通过该系统分析耗时较长的应用请求,以定位系统性能问题;应用请求在一段时间内的疏密程度,以定位系统在一段时间内的繁忙程度;应用客户端访问系统各个端口的请求负载,可视化呈现多端口IT应用系统每个端口的繁忙程度;进行系统负载调控。进一步的方案:所述系统包括依次设置的5个步骤:IT自研应用系统日志异步记录、Kafka消息队列日志收集、基于Java的消费者日志解析、基于MongoDB的日志数据存储、可视化日志分析系统。本专利技术采用以上技术方案后,与现有技术相比,具有以下优点:1、将应用系统的日志以异步的方式写入Kafka分布式队列,避免了高并发大量日志写入导致系统负载下降的问题,提高了磁盘IO、CPU利用率。2、日志信息查询效率大大提高。3、避免了传统记录TXT文本和数据库的方式带来的日志打开、日志分析效率低下。4、采用MongoDB对象数据库进行日志存储和日志分析,充分利用MongoDB的对象数据库的特点和高性能检索查询的优点,进一步提升了日志分析的效率和可视化友好性。5、具备定期清理的功能,保证数据最新。下面结合附图和实施例对本专利技术进行详细说明。附图说明图1是本专利技术程序框图。具体实施方式为了对本专利技术的技术特征、目的和效果有更加清楚的理解,现对照附图说明本专利技术的具体实施方式。实施例1基于Kafka消息队列的MongoDB日志采集和分析系统本专利技术提供基于Kafka消息队列的MongoDB日志采集和分析系统,该系统包括5个步骤:IT自研应用系统日志异步记录;Kafka消息队列日志收集;基于Java的消费者日志解析;基于MongoDB的日志数据存储;可视化日志分析系统。(1)IT自研应用系统日志异步记录:IT自研应用系统采用.NET自带的Nlog日志记录插件,为避免对应用系统的影响采用异步记录的配置方式,日志数据源自定义为Kafka消息队列。(2)Kafka消息队列日志收集:搭建Kafka消息队列日志收集系统,IT自研应用系统会异步将日志信息全部丢进Kafka队里内,进行离线存储。(3)基于Java的消费者日志解析:开发基于Java的消费者线程功能,基于Java的消费者线程功能用于查找Kafka的日志数据,将查找后的日志数据逐条读取;对Kafka队列里的消息内容进行循环遍历解析,将日志数据写入MongoDB数据库。(4)基于MongoDB的日志数据存储:针对IT自研应用系统具体日志信息,制定MongoDB日志模型,自动收集消费者解析的日志信息,并可设置间隔时间的定期清空历史数据,防止数据库无限制占用空间。(5)可视化日志分析系统:利用Highchart和MongoDBC#开发驱动,建立IT自研应用系统日志分析页面,通过该系统分析耗时较长的应用请求,以定位系统性能问题;应用请求在一段时间内的疏密程度,以定位系统在一段时间内的繁忙程度;应用客户端访问系统各个端口的请求负载,可视化呈现多端口IT应用系统每个端口的繁忙程度;进行系统负载调控。应用系统的日志以异步的方式写入Kafka分布式队列,避免了传统记录TXT文本和数据库的方式带来的日志打开、日志分析效率低下,及高并发大量日志写入导致系统负载下降的问题,提高了磁盘IO、CPU利用率。采用MongoDB对象数据库进行日志存储和日志分析,充分利用MongoDB的对象数据库的特点和高性能检索查询的优点,进一步提升了日志分析的效率和可视化友好性。适用的IT应用系统主要包括企业自主研发的系统,如ERP、MES、EHR、OA、BPM等本文档来自技高网
...

【技术保护点】
1.基于Kafka消息队列的MongoDB日志采集和分析系统,其特征在于:该系统包括:IT自研应用系统日志异步记录。

【技术特征摘要】
1.基于Kafka消息队列的MongoDB日志采集和分析系统,其特征在于:该系统包括:IT自研应用系统日志异步记录。2.根据权利要求1所述的Kafka消息队列的MongoDB日志采集和分析系统,其特征在于:所述IT自研应用系统采用.NET自带的Nlog日志记录插件,采用异步记录的配置方式,日志数据源自定义为Kafka消息队列。3.根据权利要求1所述的Kafka消息队列的MongoDB日志采集和分析系统,其特征在于:该系统包括:Kafka消息队列日志收集系统,IT自研应用系统会异步将日志信息全部丢进Kafka队里内,进行离线存储。4.根据权利要求1所述的Kafka消息队列的MongoDB日志采集和分析系统,其特征在于:该系统包括:基于Java的消费者日志解析系统,开发基于Java的消费者线程功能。5.根据权利要求1所述的Kafka消息队列的MongoDB日志采集和分析系统,其特征在于:该系统包括:基于Java的消费者线程功能用于查找Kafka的日志数据。6.根据权利要求1所述的Kafka消息队列的MongoDB日志采集和分析系统,其特征在于:该系统包括:将查找后的日志数据逐条读取;对Kafka队列里的消息内容进行循环遍...

【专利技术属性】
技术研发人员:焦玉乾
申请(专利权)人:山东共达电声股份有限公司
类型:发明
国别省市:山东,37

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

1