CN109241187A - 基于Kafka消息队列的MongoDB日志采集和分析系统 - Google Patents
基于Kafka消息队列的MongoDB日志采集和分析系统 Download PDFInfo
- Publication number
- CN109241187A CN109241187A CN201811015983.0A CN201811015983A CN109241187A CN 109241187 A CN109241187 A CN 109241187A CN 201811015983 A CN201811015983 A CN 201811015983A CN 109241187 A CN109241187 A CN 109241187A
- Authority
- CN
- China
- Prior art keywords
- log
- mongodb
- message queue
- analysis
- kafka message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了基于Kafka消息队列的MongoDB日志采集和分析系统,该系统包括5部分:IT自研应用系统日志异步记录;Kafka消息队列日志收集;基于Java的消费者日志解析;基于MongoDB的日志数据存储;可视化日志分析系统;与现有技术相比,解决了高并发的日志记录对系统的负载影响;提高日志信息查询效率;解决高并发、高响应要求的IT应用系统的日志信息收集困难的问题;提高日志分析效率,避免去解析大量的日志文件;定期对数据进行清理,保证数据最新。
Description
技术领域
本发明涉及一种日志采集和分析系统,具体涉及一种基于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和MongoDB C#开发驱动,建立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和MongoDB C#开发驱动,建立IT自研应用系统日志分析页面,通过该系统分析耗时较长的应用请求,以定位系统性能问题;
应用请求在一段时间内的疏密程度,以定位系统在一段时间内的繁忙程度;
应用客户端访问系统各个端口的请求负载,可视化呈现多端口IT应用系统每个端口的繁忙程度;
进行系统负载调控。
应用系统的日志以异步的方式写入Kafka分布式队列,避免了传统记录TXT文本和数据库的方式带来的日志打开、日志分析效率低下,及高并发大量日志写入导致系统负载下降的问题,提高了磁盘IO、 CPU利用率。
采用MongoDB对象数据库进行日志存储和日志分析,充分利用MongoDB的对象数据库的特点和高性能检索查询的优点,进一步提升了日志分析的效率和可视化友好性。
适用的IT应用系统主要包括企业自主研发的系统,如ERP、MES、EHR、OA、BPM等,这些系统在企业自研过程中会记录大量后台应用请求日志信息。
以上所述为本发明最佳实施方式的举例,其中未详细述及的部分均为本领域普通技术人员的公知常识。本发明的保护范围以权利要求的内容为准,任何基于本发明的技术启示而进行的等效变换,也在本发明的保护范围之内。
Claims (9)
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队列里的消息内容进行循环遍历解析,将日志数据写入MongoDB数据库。
7.根据权利要求1所述的Kafka消息队列的MongoDB日志采集和分析系统,其特征在于:该系统包括:基于MongoDB的日志数据存储系统,针对IT自研应用系统日志异步记录,制定MongoDB日志模型,自动收集消费者解析的日志信息,并可设置间隔时间的定期清空历史数据,防止数据库无限制占用空间。
8.根据权利要求1所述的Kafka消息队列的MongoDB日志采集和分析系统,其特征在于:该系统包括:可视化日志分析系统,利用Highchart和MongoDB C#开发驱动,建立IT自研应用系统日志分析页面,通过该系统分析耗时较长的应用请求,以定位系统性能问题;应用请求在一段时间内的疏密程度,以定位系统在一段时间内的繁忙程度;应用客户端访问系统各个端口的请求负载,可视化呈现多端口IT应用系统每个端口的繁忙程度;进行系统负载调控。
9.根据权利要求1所述的Kafka消息队列的MongoDB日志采集和分析系统,其特征在于:所述系统包括依次设置的5个步骤:IT自研应用系统日志异步记录、Kafka消息队列日志收集、基于Java的消费者日志解析、基于MongoDB的日志数据存储、可视化日志分析系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811015983.0A CN109241187A (zh) | 2018-09-01 | 2018-09-01 | 基于Kafka消息队列的MongoDB日志采集和分析系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811015983.0A CN109241187A (zh) | 2018-09-01 | 2018-09-01 | 基于Kafka消息队列的MongoDB日志采集和分析系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109241187A true CN109241187A (zh) | 2019-01-18 |
Family
ID=65060034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811015983.0A Withdrawn CN109241187A (zh) | 2018-09-01 | 2018-09-01 | 基于Kafka消息队列的MongoDB日志采集和分析系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109241187A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110262951A (zh) * | 2019-06-10 | 2019-09-20 | 天翼电子商务有限公司 | 一种业务秒级监控方法及系统、存储介质及客户端 |
CN110611592A (zh) * | 2019-09-20 | 2019-12-24 | 中国联合网络通信集团有限公司 | 日志记录方法及设备 |
CN111008244A (zh) * | 2019-11-22 | 2020-04-14 | 厦门安胜网络科技有限公司 | 一种用于数据库的同步和分析方法及系统 |
CN112286962A (zh) * | 2020-10-26 | 2021-01-29 | 积成电子股份有限公司 | 一种用电信息采集终端抄表成功率统计方法与系统 |
CN112487087A (zh) * | 2020-11-17 | 2021-03-12 | 中国人寿保险股份有限公司 | 一种增量数据实时同步的方法及相关设备 |
-
2018
- 2018-09-01 CN CN201811015983.0A patent/CN109241187A/zh not_active Withdrawn
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110262951A (zh) * | 2019-06-10 | 2019-09-20 | 天翼电子商务有限公司 | 一种业务秒级监控方法及系统、存储介质及客户端 |
CN110611592A (zh) * | 2019-09-20 | 2019-12-24 | 中国联合网络通信集团有限公司 | 日志记录方法及设备 |
CN110611592B (zh) * | 2019-09-20 | 2023-04-07 | 中国联合网络通信集团有限公司 | 日志记录方法及设备 |
CN111008244A (zh) * | 2019-11-22 | 2020-04-14 | 厦门安胜网络科技有限公司 | 一种用于数据库的同步和分析方法及系统 |
CN112286962A (zh) * | 2020-10-26 | 2021-01-29 | 积成电子股份有限公司 | 一种用电信息采集终端抄表成功率统计方法与系统 |
CN112286962B (zh) * | 2020-10-26 | 2023-06-02 | 积成电子股份有限公司 | 一种用电信息采集终端抄表成功率统计方法与系统 |
CN112487087A (zh) * | 2020-11-17 | 2021-03-12 | 中国人寿保险股份有限公司 | 一种增量数据实时同步的方法及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109241187A (zh) | 基于Kafka消息队列的MongoDB日志采集和分析系统 | |
CN106020715B (zh) | 存储池容量管理 | |
EP2946333B1 (en) | Efficient query processing using histograms in a columnar database | |
CN106294866B (zh) | 一种日志处理方法和装置 | |
CN110175154A (zh) | 一种日志记录的处理方法、服务器及存储介质 | |
US7908239B2 (en) | System for storing event data using a sum calculator that sums the cubes and squares of events | |
CN103853766B (zh) | 一种面向流式数据的在线处理方法及系统 | |
CN111881221B (zh) | 物流服务里客户画像的方法、装置和设备 | |
CN105468492A (zh) | 一种基于搜索引擎的数据监控方法和系统 | |
Jain et al. | Refreshing datawarehouse in near real-time | |
CN107070897B (zh) | 入侵检测系统中基于多属性哈希去重的网络日志存储方法 | |
CN110399377A (zh) | Sql的优化方法、装置、电子设备及计算机可读存储介质 | |
WO2023202497A1 (zh) | 用于全链路追踪事务的方法及原生分布式数据库 | |
CN106502875A (zh) | 一种基于云计算的日志生成方法及系统 | |
CN108763044A (zh) | 一种日志处理方法及装置 | |
CN107977167A (zh) | 一种基于纠删码的分布式存储系统的退化读优化方法 | |
CN102129619A (zh) | 一种基于云存储的业务数据处理方法及系统 | |
CN103902739B (zh) | 数据库集群服务器数据分类方法 | |
CN109446167A (zh) | 一种日志数据存储、提取方法及装置 | |
US8201145B2 (en) | System and method for workflow-driven data storage | |
CN114860780A (zh) | 一种数据仓库、数据处理系统及计算机装置 | |
CN116016628A (zh) | 一种api网关埋点分析方法及装置 | |
Premchaiswadi et al. | Extracting weblog of Siam University for learning user behavior on MapReduce | |
CN109189724B (zh) | 提高视频监控系统音视频数据存储效率的方法及装置 | |
Sunil Datt | The information explosion: Trends in technology 2011 review |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190118 |
|
WW01 | Invention patent application withdrawn after publication |