CN111083008A - 一种基于nginx的流量采集分析方法 - Google Patents
一种基于nginx的流量采集分析方法 Download PDFInfo
- Publication number
- CN111083008A CN111083008A CN201911166626.9A CN201911166626A CN111083008A CN 111083008 A CN111083008 A CN 111083008A CN 201911166626 A CN201911166626 A CN 201911166626A CN 111083008 A CN111083008 A CN 111083008A
- Authority
- CN
- China
- Prior art keywords
- nginx
- log
- http
- data
- acquisition function
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/12—Network monitoring probes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/14—Arrangements for monitoring or testing data switching networks using software, i.e. software packages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
Abstract
本发明公开了一种基于nginx的流量采集分析方法,涉及网络数据分析技术领域,包含nginx数据采集、数据计算分析和数据查询三部分;Nginx导入采集的代码,导入代码需要重新编译nginx源代码,利用—add‑module=目录,目录为具体文件夹名称,该文件夹下为本发明源代码;在Nginx主配置文件中,开启采集功能;重新启动Nginx服务;每次读取一条日志,访问数量总数加1;根据日志中记录的http状态码:步骤6,根据日志格式中记录的$bytes_sent $bytes_received字段的数值,可得到每一次访问发送和接受的数据量;获取总的发送和接受流量,基于nginx软件本身,通过旁路监听模式监听nginx日志,在Nginx的日志处理阶段中获取数据然后计算、分析。
Description
技术领域
本发明涉及网络数据分析技术领域,尤其涉及一种基于nginx的流量采集分析方法。
背景技术
nginx一种web服务软件,2019年市场占有率第一。很多公司尤其是电商公司都在使用nginx。一个nginx软件中常常配置了很多域名(超过20个以上)。如何能够得知用户访问这些域名是否是正常,成为判断业务稳定性的一个重要指标。
nginx的流量采集分析正是针对这一问题提出的解决方案。能够实时获取当前nginx配置的域名访问数量、流量、状态。并进行计算和统计。
现有的流量采集分析大都基于日志层面进行,需要收集大量日志,统一存储,并定时分析展示。需要大容量存储空间用于存储日志,需要消耗很高的cpu资源用于统计分析。历史日志利用率很低。
发明内容
本发明所要解决的技术问题是在于克服现有技术的缺点与不足,基于nginx软件本身,通过旁路监听模式监听nginx日志,在Nginx的日志处理阶段中获取数据然后计算、分析。
本发明为解决上述技术问题采用以下技术方案:
一种基于nginx的流量采集分析方法,包含nginx数据采集、数据计算分析和数据查询三部分;
其中,nginx数据采集,具体包含如下步骤:
步骤1,Nginx添加采集功能,重新编译nginx源代码,在编译前将源码以模块的方式添加进nginx的源码;在执行configuuer命令时,增加—add-module=目录,目录为具体文件夹名称,该文件夹下为源代码,再执行nginx编译动作,编译完成后作为nginx的一个模块独立运行,在运行前开启采集功能;
步骤2,修改Nginx配置,开启采集功能;在Nginx主配置文件nginx.conf中的http{}内,添加vhost_traffic_status_zone,并保存修改,同时nginx的配置文件中将采集功能的开关打开,且需要重新启动nginx服务才会生效;
步骤3,重新启动Nginx服务,重新启动后,采集功能立刻开始监听nginx日志模块;当有请求进入nginx时,nginx日志模块开始工作,采集功能则会立刻获取需要的相关内容;
数据计算分析,具体包含如下步骤:
步骤4,采集功能每监听一条日志,将访问的总数量加1,首次开始分析时访问总量为0;
步骤5,根据nginx日志中记录的http状态码:
通过采集端传递过来的日志中生成的状态码来计算不同状态码的实际数量
若状态码为2开头的3位数,那么会将http 2xx的统计总量加1;
若状态码为3开头的3位数,那么会将http 3xx的统计总量加1;
若状态码为4开头的3位数,那么会将http 4xx的统计总量加1;
若状态码为5开头的3位数,那么会将http 5xx的统计总量加1;
其中,http 2xx和http 3xx为健康访问,http 4xx和http 5xx为非健康访问;http2xx数量加上http 3xx数量可计算出健康访问总次数,进而可得出总访问次数;
步骤6,根据日志格式中记录的$bytes_sent$bytes_received字段的数值,可得到每一次访问发送和接收的数据量;将$bytes_sent和$bytes_received分别累加计算可得到总的发送和接收流量;
步骤7,将步骤6计算后分析后的数据保存在nginx服务器中,通过本发明提供的api接口进行数据查询。
作为本发明一种基于nginx的流量采集分析方法的进一步优选方案,在步骤4中,日志是nginx日志模块正在处理的日志。
作为本发明一种基于nginx的流量采集分析方法的进一步优选方案,所述nginx日志模块中记录了信息包含访问地址、返回的http状态码、请求的数据包大小。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
1.本发明不会产生额外的日志存储空间;
2.本发明通过监听日志采集数据,采集数据非常快;
3.本发明采集完数据后直接计算,所有计算过程在nginx内存中进行,计算速度非常快,接近于实时;
4.本发明的api接口丰富,可以对接现有市面上大部分监控。
附图说明
图1是本发明的采集和分析过程流程图。
具体实施方式
下面结合附图对本发明的技术方案做进一步的详细说明:
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的在于克服现有技术的缺点与不足,基于nginx软件本身,通过旁路监听模式监听nginx日志,在Nginx的日志处理阶段中获取数据然后计算、分析。
nginx日志中记录了访问地址、返回的http状态码、请求的数据包大小等等信息。这些就是我们需要获取的数据。本发明通过监听日志文件直接获取这些数据,并不需要重新存储。根据这些数据进行基本运算,可以分析出当前有多个请求进入到nginx中,这些请求的访问量是多少。通过访问的数据量可以直接计算出流量是多少。请求的状态码是多少。通过请求状态码可以统计出健康访问状态的数量和不健康访问状态的数量。
一种基于nginx的流量采集分析方法,包含nginx数据采集、数据计算分析和数据查询三部分;
其中,nginx数据采集,具体包含如下步骤:
步骤1,Nginx添加采集功能,重新编译nginx源代码,在编译前将源码以模块的方式添加进nginx的源码;在执行configuuer命令时,增加—add-module=目录,目录为具体文件夹名称,该文件夹下为源代码,再执行nginx编译动作,编译完成后作为nginx的一个模块独立运行,在运行前开启采集功能;
步骤2,修改Nginx配置,开启采集功能;在Nginx主配置文件nginx.conf中的http{}内,添加vhost_traffic_status_zone,并保存修改,同时nginx的配置文件中将采集功能的开关打开,且需要重新启动nginx服务才会生效;
步骤3,重新启动Nginx服务,重新启动后,采集功能立刻开始监听nginx日志模块;当有请求进入nginx时,nginx日志模块开始工作,采集功能则会立刻获取需要的相关内容;
数据计算分析,具体包含如下步骤:
步骤4,采集功能每监听一条日志,将访问的总数量加1,首次开始分析时访问总量为0;日志是nginx日志模块正在处理的日志。
所述nginx日志模块中记录了信息包含访问地址、返回的http状态码、请求的数据包大小
步骤5,根据nginx日志中记录的http状态码:
通过采集端传递过来的日志中生成的状态码来计算不同状态码的实际数量
若状态码为2开头的3位数,那么会将http 2xx的统计总量加1;
若状态码为3开头的3位数,那么会将http 3xx的统计总量加1;
若状态码为4开头的3位数,那么会将http 4xx的统计总量加1;
若状态码为5开头的3位数,那么会将http 5xx的统计总量加1;
其中,http 2xx和http 3xx为健康访问,http 4xx和http 5xx为非健康访问;http2xx数量加上http 3xx数量可计算出健康访问总次数,进而可得出总访问次数;
步骤6,根据日志格式中记录的$bytes_sent$bytes_received字段的数值,可得到每一次访问发送和接收的数据量;将$bytes_sent和$bytes_received分别累加计算可得到总的发送和接收流量;
步骤7,将步骤6计算后分析后的数据保存在nginx服务器中,通过本发明提供的api接口进行数据查询。
提供api查询。
/status/control?cmd=status&group=server&zone=*。
本发明采集和分析过程如图1所示,虚线部分为程序自动完成,实现部分为人员操作的实施过程:
需要将本发明程序拷贝到nginx服务器上,可以放到任意目录中,例如:/tmp/lk目录中。
重新编译nginx源代码,add的形式添加本发明程序,例如:./configure—add-module=/tmp/lk;make;make install
编辑配置文件
编辑nginx主配置文件,在http{}配置中,增加:vhost_traffic_status_zone;
4.启动nginx
重新启动nginx服务
5.访问监控数据
在nginx服务器上执行:curl http://127.0.0.1/status/control?cmd=status&group=server&zone=*即可访问到监控的数据。
本技术领域技术人员可以理解的是,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。上面对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以再不脱离本发明宗旨的前提下做出各种变化。
Claims (3)
1.一种基于nginx的流量采集分析方法,其特征在于:包含nginx数据采集、数据计算分析和数据查询三部分;
其中,nginx数据采集,具体包含如下步骤:
步骤1,Nginx添加采集功能,重新编译nginx源代码,在编译前将源码以模块的方式添加进nginx的源码;在执行configuer命令时,增加—add-module=目录,目录为具体文件夹名称,该文件夹下为源代码,再执行nginx编译动作,编译完成后作为nginx的一个模块独立运行,在运行前开启采集功能;
步骤2,修改Nginx配置,开启采集功能;在Nginx主配置文件nginx.conf中的http{}内,添加 vhost_traffic_status_zone,并保存修改,同时nginx的配置文件中将采集功能的开关打开,且需要重新启动nginx服务才会生效;
步骤3,重新启动Nginx服务,重新启动后,采集功能立刻开始监听nginx日志模块;当有请求进入nginx时,nginx日志模块开始工作,采集功能则会立刻获取需要的相关内容;
数据计算分析,具体包含如下步骤:
步骤4,采集功能每监听一条日志,将访问的总数量加1,首次开始分析时访问总量为0;
步骤5,根据nginx日志中记录的http状态码:
通过采集端传递过来的日志中生成的状态码来计算不同状态码的实际数量
若状态码为2开头的3位数,那么会将http 2xx的统计总量加1;
若状态码为3开头的3位数,那么会将http 3xx的统计总量加1;
若状态码为4开头的3位数,那么会将http 4xx的统计总量加1;
若状态码为5开头的3位数,那么会将http 5xx的统计总量加1;
其中,http 2xx和http 3xx为健康访问,http 4xx和http 5xx为非健康访问;http 2xx数量加上http 3xx数量可计算出健康访问总次数,进而可得出总访问次数;
步骤6,根据日志格式中记录的$bytes_sent $bytes_received字段的数值,可得到每一次访问发送和接收的数据量;将$bytes_sent 和 $bytes_received 分别累加计算可得到总的发送和接收流量;
步骤7,将步骤6计算后分析后的数据保存在nginx服务器中,通过本发明提供的api接口进行数据查询。
2.根据权利要求1所述的一种基于nginx的流量采集分析方法,其特征在
于:在一个实施方式中,在步骤4中,日志是nginx日志模块正在处理的日志。
3.根据权利要求2所述的一种基于nginx的流量采集分析方法,其特征在
于:在一个实施方式中,所述nginx日志模块中记录了信息包含访问地址、返回的http状态码、请求的数据包大小。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911166626.9A CN111083008A (zh) | 2019-11-25 | 2019-11-25 | 一种基于nginx的流量采集分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911166626.9A CN111083008A (zh) | 2019-11-25 | 2019-11-25 | 一种基于nginx的流量采集分析方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111083008A true CN111083008A (zh) | 2020-04-28 |
Family
ID=70311563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911166626.9A Pending CN111083008A (zh) | 2019-11-25 | 2019-11-25 | 一种基于nginx的流量采集分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111083008A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114826943A (zh) * | 2022-06-30 | 2022-07-29 | 山东捷瑞数字科技股份有限公司 | 一种nginx日志分析方法及系统 |
CN115277468A (zh) * | 2022-06-09 | 2022-11-01 | 药小鹿(成都)数字营销策划有限公司 | 基于Nginx对网站各二级域名实际流量统计的方法 |
CN115361444A (zh) * | 2022-08-18 | 2022-11-18 | 中国工商银行股份有限公司 | 流量数据分析方法、装置及系统 |
-
2019
- 2019-11-25 CN CN201911166626.9A patent/CN111083008A/zh active Pending
Non-Patent Citations (3)
Title |
---|
佚名: "用Prometheus细化Nginx监控", 《HTTP://DUDE6.COM/ARTICLE/11003.HTML》, 24 March 2019 (2019-03-24) * |
龍龍小宝: "使用nginx-module-vts监控各虚拟主机的流量", 《HTTPS://WWW.CNBLOGS.COM/91DONKEY/P/11643558.HTML》, 9 October 2019 (2019-10-09) * |
龍龍小宝: "使用nginx-module-vts监控各虚拟主机的流量", 《HTTPS://WWW.CNBLOGS.COM/91DONKEY/P/11643558.HTML-博客园-公开时间》, 9 October 2019 (2019-10-09), pages 1 - 4 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277468A (zh) * | 2022-06-09 | 2022-11-01 | 药小鹿(成都)数字营销策划有限公司 | 基于Nginx对网站各二级域名实际流量统计的方法 |
CN115277468B (zh) * | 2022-06-09 | 2024-01-16 | 药小鹿(成都)数字营销策划有限公司 | 基于Nginx对网站各二级域名实际流量统计的方法 |
CN114826943A (zh) * | 2022-06-30 | 2022-07-29 | 山东捷瑞数字科技股份有限公司 | 一种nginx日志分析方法及系统 |
CN114826943B (zh) * | 2022-06-30 | 2022-10-28 | 山东捷瑞数字科技股份有限公司 | 一种nginx日志分析方法及系统 |
CN115361444A (zh) * | 2022-08-18 | 2022-11-18 | 中国工商银行股份有限公司 | 流量数据分析方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3425524A1 (en) | Cloud platform-based client application data calculation method and device | |
CN111083008A (zh) | 一种基于nginx的流量采集分析方法 | |
US5067107A (en) | Continuous computer performance measurement tool that reduces operating system produced performance data for logging into global, process, and workload files | |
CN112346829B (zh) | 一种用于任务调度的方法及设备 | |
US20100153431A1 (en) | Alert triggered statistics collections | |
CN104426713A (zh) | 网络站点访问效果数据的监测方法和装置 | |
CN108228322B (zh) | 一种分布式链路跟踪、分析方法及服务器、全局调度器 | |
CN110147470B (zh) | 一种跨机房数据比对系统及方法 | |
CN111367760A (zh) | 日志采集方法及装置、计算机设备、存储介质 | |
CN111061802A (zh) | 一种电力数据管理处理方法、装置及存储介质 | |
CN114253806A (zh) | 一种接入层日志收集分析预警系统 | |
CN107193721B (zh) | 一种生成日志的方法和装置 | |
CN111435327A (zh) | 一种日志记录的处理方法、装置及系统 | |
CN116233164A (zh) | 用于采集设备数据的方法、装置、存储介质及处理器 | |
CN112667149B (zh) | 一种数据热度感知方法、装置、设备及介质 | |
CN115499514A (zh) | 数据存储服务的访问方法、计算设备及计算机存储介质 | |
CN115269519A (zh) | 一种日志检测方法、装置及电子设备 | |
CN113297245A (zh) | 获取执行信息的方法及装置 | |
CN111752916B (zh) | 数据采集方法及装置、计算机可读存储介质、电子设备 | |
CN113868005A (zh) | 网页异常的监控方法和装置 | |
CN113885803A (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN111782588A (zh) | 一种文件读取方法、装置、设备和介质 | |
CN105653568A (zh) | 一种分析用户行为的方法及装置 | |
CN112711380A (zh) | 一种存储设备的日志管理方法、装置及相关组件 | |
CN112416699A (zh) | 指标数据收集方法及系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200428 |