CN106777046A - 一种基于nginx日志的数据分析方法 - Google Patents
一种基于nginx日志的数据分析方法 Download PDFInfo
- Publication number
- CN106777046A CN106777046A CN201611129374.9A CN201611129374A CN106777046A CN 106777046 A CN106777046 A CN 106777046A CN 201611129374 A CN201611129374 A CN 201611129374A CN 106777046 A CN106777046 A CN 106777046A
- Authority
- CN
- China
- Prior art keywords
- data
- journal file
- event
- nginx
- analysing method
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种基于nginx日志的数据分析方法,适用于nginx日志,数据分析方法包括:S1:通过flume模块采集nginx服务器中的日志文件,并将日志文件转移并保存到HDFS系统中;S2:通过Hive数据库工具对HDFS系统中的数据进行mapreduce操作,将加工后的数据保存在中间表中;S3:将中间表中的数据迁移到MySQL数据库的结果表中。本发明的有益效果是:通过本技术方案可以实现通用化和更新服务不间断,对数据进行复杂维度分析。
Description
技术领域
本发明涉及日志文件技术领域,尤其涉及一种基于nginx日志的数据分析方法。
背景技术
现有产品一般基于ELK框架搭建一个简易的日志中心平台,但不能满足复杂业务的需求。在日志采集方面,往往新增一个文件采集就需要做定制化采集,无法做到通用化以及更新服务不间断;在数据报表展现方面,不能基于复杂维度进行分析。
发明内容
本发明所要解决的技术问题是提供一种基于nginx日志的数据分析方法。
本发明解决上述技术问题的技术方案如下:
一种基于nginx日志的数据分析方法,适用于nginx日志,所述数据分析方法包括:
S1:通过flume模块采集nginx服务器中的日志文件,并将所述日志文件转移并保存到HDFS系统中;
S2:通过Hive数据库工具对所述HDFS系统中的数据进行mapreduce操作,将加工后的数据保存在中间表中;
S3:将所述中间表中的数据迁移到MySQL数据库的结果表中。
本发明的有益效果是:通过本技术方案可以实现通用化和更新服务不间断,对数据进行复杂维度分析。
在上述技术方案的基础上,本发明还可以做如下改进。
优选地,所述数据分析方法还包括:
S4:通过多维度日志分析图表展示所述结果表中的数据。
优选地,在所述步骤S1之前,所述数据分析方法还包括:
S5:根据不同业务对所述nginx服务器中的所有日志进行分类,得到不同目录的日志文件。
采用上述进一步方案的有益效果是:所述nginx服务器根据不同业务产生不同目录的日志文件。
优选地,所述flume模块包括source组件、channel组件和sink组件,所述步骤S1具体包括:
S11:通过所述source组件监听并采集所述nginx服务器中的日志文件,并根据反馈事件进行相应操作;
S12:通过所述channel组件对所述日志文件进行缓存;
S13:通过所述sink组件将缓存的所述日志文件转移并保存到所述HDFS系统中。
采用上述进一步方案的有益效果是:所述source组件基于多目录文件监听进行数据采集,所述channel组件基于内存的消息队列,提供应用解偶的同时也能减少磁盘IO开销,所述sink组件可以采用容灾机制防止单台服务器故障导致业务无法进行。
优选地,所述步骤S11中,采集所述nginx服务器中的日志文件的方法具体包括:
启动所述source组件,加载所述日志文件的路径;
通过正则表达式筛选出匹配所述路径的所述日志文件。
优选地,所述步骤S11中,监听所述日志文件,并根据反馈事件进行相应操作,所述反馈事件包括创建事件、修改事件和删除事件;启动所述source组件时默认调用创建事件。
采用上述进一步方案的有益效果是:对nginx日志进行文件监控,能够及时找到异常问题。
优选地,所述相应操作具体包括:
若所述反馈事件为创建事件,则根据文件名对所述日志文件进行正则匹配,对相匹配的所述日志文件创建监听线程;
若所述反馈事件为修改事件,则对所述日志文件的线程进行解析,并根据解析结果对所述日志文件进行更新,包括更新所述日志文件的文件大小、文件修改时间以及清空缓存文件;
若所述反馈事件为删除事件,则释放所述日志文件的线程所占用的资源,并回收该线程。
优选地,所述步骤S3中,当迁移过程中出现超过预定数据量的错误时,则进行数据回滚操作,否则继续进行迁移操作。
附图说明
图1为本发明的一种基于nginx日志的数据分析方法的流程示意图;
图2为本发明的一种基于nginx日志的数据分析方法的流程示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,一种基于nginx日志的数据分析方法,适用于nginx日志,数据分析方法包括:
S1:通过flume模块采集nginx服务器中的日志文件,并将日志文件转移并保存到HDFS系统中;
S2:通过Hive数据库工具对HDFS系统中的数据进行mapreduce操作,将加工后的数据保存在中间表中;
S3:将中间表中的数据迁移到MySQL数据库的结果表中;当迁移过程中出现超过预定数据量的错误时,则进行数据回滚操作,否则继续进行迁移操作。
Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据,同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。Flume包括两个版本Flume-og和Flume-ng。本技术方案采用的是Flume-ng。相比于Flume-og,Flume-ng最明显的改动就是取消了集中管理配置的Master和Zookeeper,变为一个纯粹的传输工具。Flume-ng另一个主要的不同点是读入数据和写出数据由不同的工作线程处理。
Nginx(engine x)是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器,也是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。Nginx可以在大多数Unix like OS上编译运行,并有Windows移植版。Nginx作为负载均衡服务器,既可以在内部直接支持Rails和PHP程序对外进行服务,也可以支持作为HTTP代理服务器对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比Perlbal要好很多。Nginx代码完全用C语言从头写成,已经移植到许多体系结构和操作系统,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及MicrosoftWindows。Nginx有自己的函数库,并且除了zlib、PCRE和OpenSSL之外,标准模块只使用系统C库函数。而且,如果不需要或者考虑到潜在的授权冲突,可以不使用这些第三方库。
HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了(relax)POSIX的要求(requirements)这样可以实现流的形式访问(streaming access)文件系统中的数据。
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,Hive定义了简单的类SQL查询语言,称为HQL,它允许熟悉SQL的用户查询数据,可以将SQL语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。
上述实施例中,通过flume模块(包括source组件、channel组件和sink组件)采集nginx服务器中的日志文件,并将日志文件转移并保存到HDFS分布式系统中,具体地,flume模块的source组件可以基于多目录文件监听进行采集日志文件,channel组件对source提供中的数据进行简单的缓存,sink组件取出channel中的数据,保存到相应的HDFS分布式文件系统中;通过基于Hadoop分布式文件系统的Hive数据库工具对HDFS分布式系统中的数据进行mapreduce操作,具体地,Hive数据库工具定义了简单的类SQL查询语言(称为HQL),它可以将SQL语句转换为MapReduce任务进行运行,可以存储、查询和分析分布式存储的大规模数据,将加工后的数据保存在中间表中;将中间表中的数据迁移到MySQL数据库的结果表中。
如图2所示,在步骤S3之后,还包括:
S4:通过多维度日志分析图表展示结果表中的数据。
如图2所示,在步骤S1之前,还包括:
S5:根据不同业务对nginx服务器中的所有日志进行分类,得到不同目录的日志文件。
上述实施例中,得到结果表以后,还可以通过多维度日志分析图表展示结果表中的数据;在进行日志文件采集之前,根据不同业务对nginx服务器中的所有日志进行分类,得到不同目录的日志文件,从而flume模块的source组件可以基于多目录文件监听进行采集日志文件。
Source组件完成对日志数据的收集,分成transtion和event打入到channel之中,Channel组件对source提供中的数据进行简单的缓存,Sink组件取出Channel中的数据,保存到相应的存储文件系统(比如HDFS分布式文件系统),数据库,或者提交到远程服务器。
通过source组件采集nginx服务器中的日志文件,首先,启动source组件,加载日志文件的路径,然后,通过正则表达式筛选出匹配路径的日志文件。
通过source组件监听日志文件,并根据反馈事件进行相应操作,反馈事件包括创建事件、修改事件和删除事件,启动source组件时默认调用创建事件。同时,source组件启动时还会新增一个旁路线程用来管理应用线程,每5秒钟触发一次检查管理,当发现其日志在5分钟内未做处理操作时,即该文件没有文件更新,认为此线程存在异常问题进行资源回收并重新创建该文件监听。
通过source组件监听日志文件,并根据反馈事件进行相应操作,相应操作具体包括:
若反馈事件为创建事件,则根据文件名对日志文件进行正则匹配,对相匹配的日志文件创建监听线程;
若反馈事件为修改事件,则对日志文件的线程进行解析,并根据解析结果对日志文件进行更新,包括更新日志文件的文件大小、文件修改时间以及清空缓存文件;
若反馈事件为删除事件,则释放日志文件的线程所占用的资源,并回收该线程。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于nginx日志的数据分析方法,适用于nginx日志,其特征在于,所述数据分析方法包括:
S1:通过flume模块采集nginx服务器中的日志文件,并将所述日志文件转移并保存到HDFS系统中;
S2:通过Hive数据库工具对所述HDFS系统中的数据进行mapreduce操作,将加工后的数据保存在中间表中;
S3:将所述中间表中的数据迁移到MySQL数据库的结果表中。
2.根据权利要求1所述的数据分析方法,其特征在于,所述数据分析方法还包括:
S4:通过多维度日志分析图表展示所述结果表中的数据。
3.根据权利要求1所述的数据分析方法,其特征在于,在所述步骤S1之前,所述数据分析方法还包括:
S5:根据不同业务对所述nginx服务器中的所有日志进行分类,得到不同目录的日志文件。
4.根据权利要求1至3中任一项所述的数据分析方法,其特征在于,所述flume模块包括source组件、channel组件和sink组件,所述步骤S1具体包括:
S11:通过所述source组件监听并采集所述nginx服务器中的日志文件,并根据反馈事件进行相应操作;
S12:通过所述channel组件对所述日志文件进行缓存;
S13:通过所述sink组件将缓存的所述日志文件转移并保存到所述HDFS系统中。
5.根据权利要求4所述的数据分析方法,其特征在于,所述步骤S11中,采集所述nginx服务器中的日志文件具体包括:
启动所述source组件,加载所述日志文件的路径;
通过正则表达式筛选出匹配所述路径的所述日志文件。
6.根据权利要求5所述的数据分析方法,其特征在于,所述步骤S11中,监听所述日志文件,并根据反馈事件进行相应操作,所述反馈事件包括创建事件、修改事件和删除事件;启动所述source组件时默认调用创建事件。
7.根据权利要求6所述的数据分析方法,其特征在于,所述相应操作具体包括:
若所述反馈事件为创建事件,则根据文件名对所述日志文件进行正则匹配,对相匹配的所述日志文件创建监听线程;
若所述反馈事件为修改事件,则对所述日志文件的线程进行解析,并根据解析结果对所述日志文件进行更新,包括更新所述日志文件的文件大小、文件修改时间以及清空缓存文件;
若所述反馈事件为删除事件,则释放所述日志文件的线程所占用的资源,并回收所述线程。
8.根据权利要求1所述的数据分析方法,其特征在于,所述步骤S3中,当迁移过程中出现超过预定数据量的错误时,则进行数据回滚操作,否则继续进行迁移操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611129374.9A CN106777046A (zh) | 2016-12-09 | 2016-12-09 | 一种基于nginx日志的数据分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611129374.9A CN106777046A (zh) | 2016-12-09 | 2016-12-09 | 一种基于nginx日志的数据分析方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106777046A true CN106777046A (zh) | 2017-05-31 |
Family
ID=58875758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611129374.9A Pending CN106777046A (zh) | 2016-12-09 | 2016-12-09 | 一种基于nginx日志的数据分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106777046A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107609158A (zh) * | 2017-09-26 | 2018-01-19 | 北京计算机技术及应用研究所 | 一种基于Flume的高可靠数据采集及存储方法 |
CN107783891A (zh) * | 2017-09-22 | 2018-03-09 | 北京市天元网络技术股份有限公司 | 一种采集nginx日志的方法及服务器 |
CN107943647A (zh) * | 2017-11-21 | 2018-04-20 | 北京小度互娱科技有限公司 | 一种可靠的分布式日志收集方法和系统 |
CN108509297A (zh) * | 2018-03-21 | 2018-09-07 | 四川斐讯信息技术有限公司 | 一种数据备份方法和系统 |
CN108563527A (zh) * | 2018-03-21 | 2018-09-21 | 四川斐讯信息技术有限公司 | 一种数据处理状况的检测方法和系统 |
CN109165194A (zh) * | 2018-08-13 | 2019-01-08 | 腾讯科技(深圳)有限公司 | 一种数据转存方法、装置、电子设备及存储介质 |
CN110019445A (zh) * | 2017-09-08 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 数据同步方法和装置、计算设备和存储介质 |
CN110647407A (zh) * | 2019-08-30 | 2020-01-03 | 北京浪潮数据技术有限公司 | 一种数据配置方法和系统 |
CN110851234A (zh) * | 2019-10-25 | 2020-02-28 | 中信梧桐港供应链管理有限公司 | 基于docker容器的日志处理方法及装置 |
CN112395295A (zh) * | 2020-11-30 | 2021-02-23 | 北京明略昭辉科技有限公司 | 一种同步Hive数据的方法、系统、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103166785A (zh) * | 2011-12-15 | 2013-06-19 | 同程网络科技股份有限公司 | 基于Hadoop的分布式日志分析系统 |
CN104714946A (zh) * | 2013-12-11 | 2015-06-17 | 田鹏 | 一种基于NoSQL的大规模Web日志分析系统 |
CN105677842A (zh) * | 2016-01-05 | 2016-06-15 | 北京汇商融通信息技术有限公司 | 基于Hadoop大数据处理技术的日志分析系统 |
-
2016
- 2016-12-09 CN CN201611129374.9A patent/CN106777046A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103166785A (zh) * | 2011-12-15 | 2013-06-19 | 同程网络科技股份有限公司 | 基于Hadoop的分布式日志分析系统 |
CN104714946A (zh) * | 2013-12-11 | 2015-06-17 | 田鹏 | 一种基于NoSQL的大规模Web日志分析系统 |
CN105677842A (zh) * | 2016-01-05 | 2016-06-15 | 北京汇商融通信息技术有限公司 | 基于Hadoop大数据处理技术的日志分析系统 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019445A (zh) * | 2017-09-08 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 数据同步方法和装置、计算设备和存储介质 |
CN110019445B (zh) * | 2017-09-08 | 2021-07-06 | 北京京东尚科信息技术有限公司 | 数据同步方法和装置、计算设备和存储介质 |
CN107783891A (zh) * | 2017-09-22 | 2018-03-09 | 北京市天元网络技术股份有限公司 | 一种采集nginx日志的方法及服务器 |
CN107609158A (zh) * | 2017-09-26 | 2018-01-19 | 北京计算机技术及应用研究所 | 一种基于Flume的高可靠数据采集及存储方法 |
CN107943647A (zh) * | 2017-11-21 | 2018-04-20 | 北京小度互娱科技有限公司 | 一种可靠的分布式日志收集方法和系统 |
CN108509297A (zh) * | 2018-03-21 | 2018-09-07 | 四川斐讯信息技术有限公司 | 一种数据备份方法和系统 |
CN108563527A (zh) * | 2018-03-21 | 2018-09-21 | 四川斐讯信息技术有限公司 | 一种数据处理状况的检测方法和系统 |
CN109165194A (zh) * | 2018-08-13 | 2019-01-08 | 腾讯科技(深圳)有限公司 | 一种数据转存方法、装置、电子设备及存储介质 |
CN110647407A (zh) * | 2019-08-30 | 2020-01-03 | 北京浪潮数据技术有限公司 | 一种数据配置方法和系统 |
CN110851234A (zh) * | 2019-10-25 | 2020-02-28 | 中信梧桐港供应链管理有限公司 | 基于docker容器的日志处理方法及装置 |
CN112395295A (zh) * | 2020-11-30 | 2021-02-23 | 北京明略昭辉科技有限公司 | 一种同步Hive数据的方法、系统、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106777046A (zh) | 一种基于nginx日志的数据分析方法 | |
US12050608B2 (en) | Data pipeline for scalable analytics and management | |
US10298641B2 (en) | Scalable event stream data processing using a messaging system | |
US11182098B2 (en) | Optimization for real-time, parallel execution of models for extracting high-value information from data streams | |
US20200285514A1 (en) | Automated reconfiguration of real time data stream processing | |
US9860229B2 (en) | Integrated data extraction and retrieval system | |
US10122783B2 (en) | Dynamic data-ingestion pipeline | |
US9582541B2 (en) | Systems, methods, and computer program products to ingest, process, and output large data | |
US8706697B2 (en) | Data retention component and framework | |
US9953066B2 (en) | Automatically generating and reporting merged performance and capacity statistics | |
EP2732377B1 (en) | Optimizing data processing using dynamic schemas | |
US12008027B2 (en) | Optimization for real-time, parallel execution of models for extracting high-value information from data streams | |
Lai et al. | Towards a framework for large-scale multimedia data storage and processing on Hadoop platform | |
CN110837423A (zh) | 一种自动导引运输车数据采集的方法和装置 | |
US20170193201A1 (en) | Automatic notifications for inadvertent file events | |
US10855750B2 (en) | Centralized management of webservice resources in an enterprise | |
US10331484B2 (en) | Distributed data platform resource allocator | |
US20160127497A1 (en) | Smart site preloading | |
CN112307046A (zh) | 数据采集方法和装置、计算机可读存储介质、电子设备 | |
WO2017091774A1 (en) | Optimization for real-time, parallel execution of models for extracting high-value information from data streams | |
CN114168672B (zh) | 日志数据的处理方法、装置、系统以及介质 | |
CN113760856B (zh) | 数据库管理方法及装置、计算机可读存储介质、电子设备 | |
EP4283486A1 (en) | Storing high volume, low frequency ingest time series data and retrieving same with sub-second latencies | |
Zappi et al. | StoRMon: an event log analyzer for Grid Storage Element based on StoRM | |
Edwards | Dealing with the Big Data-The Challenges for Modern Mission Monitoring and Reporting |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170531 |
|
RJ01 | Rejection of invention patent application after publication |