首页 / 专利库 / 电脑零配件 / 固件 / 软件 / 软件套件 / 软件组件 / 软件代码 / 一种基于nginx的流量采集分析方法

一种基于nginx的流量采集分析方法

阅读:966发布:2020-05-08

专利汇可以提供一种基于nginx的流量采集分析方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于nginx的流量采集分析方法,涉及网络数据分析技术领域,包含nginx 数据采集 、数据计算分析和数据查询三部分;Nginx导入采集的代码,导入代码需要重新编译nginx源代码,利用—add-module=目录,目录为具体文件夹名称,该文件夹下为本发明源代码;在Nginx主配置文件中,开启采集功能;重新启动Nginx服务;每次读取一条日志, 访问 数量总数加1;根据日志中记录的http状态码:步骤6,根据日志格式中记录的$bytes_sent $bytes_received字段的数值,可得到每一次访问发送和接受的数据量;获取总的发送和接受流量,基于nginx 软件 本身,通过旁路监听模式监听nginx日志,在Nginx的日志处理阶段中获取数据然后计算、分析。,下面是一种基于nginx的流量采集分析方法专利的具体信息内容。

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状态码、请求的数据包大小。

说明书全文

一种基于nginx的流量采集分析方法

技术领域

[0001] 本发明涉及网络数据分析技术领域,尤其涉及一种基于nginx的流量采集分析方法。

背景技术

[0002] nginx一种web服务软件,2019年市场占有率第一。很多公司尤其是电商公司都在使用nginx。一个nginx软件中常常配置了很多域名(超过20个以上)。如何能够得知用户访问这些域名是否是正常,成为判断业务稳定性的一个重要指标。
[0003] nginx的流量采集分析正是针对这一问题提出的解决方案。能够实时获取当前nginx配置的域名访问数量、流量、状态。并进行计算和统计。
[0004] 现有的流量采集分析大都基于日志层面进行,需要收集大量日志,统一存储,并定时分析展示。需要大容量存储空间用于存储日志,需要消耗很高的cpu资源用于统计分析。历史日志利用率很低。

发明内容

[0005] 本发明所要解决的技术问题是在于克服现有技术的缺点与不足,基于nginx软件本身,通过旁路监听模式监听nginx日志,在Nginx的日志处理阶段中获取数据然后计算、分析。
[0006] 本发明为解决上述技术问题采用以下技术方案:
[0007] 一种基于nginx的流量采集分析方法,包含nginx数据采集、数据计算分析和数据查询三部分;
[0008] 其中,nginx数据采集,具体包含如下步骤:
[0009] 步骤1,Nginx添加采集功能,重新编译nginx源代码,在编译前将源码以模的方式添加进nginx的源码;在执行configuuer命令时,增加—add-module=目录,目录为具体文件夹名称,该文件夹下为源代码,再执行nginx编译动作,编译完成后作为nginx的一个模块独立运行,在运行前开启采集功能;
[0010] 步骤2,修改Nginx配置,开启采集功能;在Nginx主配置文件nginx.conf中的http{}内,添加vhost_traffic_status_zone,并保存修改,同时nginx的配置文件中将采集功能的开关打开,且需要重新启动nginx服务才会生效;
[0011] 步骤3,重新启动Nginx服务,重新启动后,采集功能立刻开始监听nginx日志模块;当有请求进入nginx时,nginx日志模块开始工作,采集功能则会立刻获取需要的相关内容;
[0012] 数据计算分析,具体包含如下步骤:
[0013] 步骤4,采集功能每监听一条日志,将访问的总数量加1,首次开始分析时访问总量为0;
[0014] 步骤5,根据nginx日志中记录的http状态码:
[0015] 通过采集端传递过来的日志中生成的状态码来计算不同状态码的实际数量[0016] 若状态码为2开头的3位数,那么会将http 2xx的统计总量加1;
[0017] 若状态码为3开头的3位数,那么会将http 3xx的统计总量加1;
[0018] 若状态码为4开头的3位数,那么会将http 4xx的统计总量加1;
[0019] 若状态码为5开头的3位数,那么会将http 5xx的统计总量加1;
[0020] 其中,http 2xx和http 3xx为健康访问,http 4xx和http 5xx为非健康访问;http2xx数量加上http 3xx数量可计算出健康访问总次数,进而可得出总访问次数;
[0021] 步骤6,根据日志格式中记录的$bytes_sent$bytes_received字段的数值,可得到每一次访问发送和接收的数据量;将$bytes_sent和$bytes_received分别累加计算可得到总的发送和接收流量;
[0022] 步骤7,将步骤6计算后分析后的数据保存在nginx服务器中,通过本发明提供的api接口进行数据查询。
[0023] 作为本发明一种基于nginx的流量采集分析方法的进一步优选方案,在步骤4中,日志是nginx日志模块正在处理的日志。
[0024] 作为本发明一种基于nginx的流量采集分析方法的进一步优选方案,所述nginx日志模块中记录了信息包含访问地址、返回的http状态码、请求的数据包大小。
[0025] 本发明采用以上技术方案与现有技术相比,具有以下技术效果:
[0026] 1.本发明不会产生额外的日志存储空间;
[0027] 2.本发明通过监听日志采集数据,采集数据非常快;
[0028] 3.本发明采集完数据后直接计算,所有计算过程在nginx内存中进行,计算速度非常快,接近于实时;
[0029] 4.本发明的api接口丰富,可以对接现有市面上大部分监控。附图说明
[0030] 图1是本发明的采集和分析过程流程图

具体实施方式

[0031] 下面结合附图对本发明的技术方案做进一步的详细说明:
[0032] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0033] 本发明的目的在于克服现有技术的缺点与不足,基于nginx软件本身,通过旁路监听模式监听nginx日志,在Nginx的日志处理阶段中获取数据然后计算、分析。
[0034] nginx日志中记录了访问地址、返回的http状态码、请求的数据包大小等等信息。这些就是我们需要获取的数据。本发明通过监听日志文件直接获取这些数据,并不需要重新存储。根据这些数据进行基本运算,可以分析出当前有多个请求进入到nginx中,这些请求的访问量是多少。通过访问的数据量可以直接计算出流量是多少。请求的状态码是多少。
通过请求状态码可以统计出健康访问状态的数量和不健康访问状态的数量。
[0035] 一种基于nginx的流量采集分析方法,包含nginx数据采集、数据计算分析和数据查询三部分;
[0036] 其中,nginx数据采集,具体包含如下步骤:
[0037] 步骤1,Nginx添加采集功能,重新编译nginx源代码,在编译前将源码以模块的方式添加进nginx的源码;在执行configuuer命令时,增加—add-module=目录,目录为具体文件夹名称,该文件夹下为源代码,再执行nginx编译动作,编译完成后作为nginx的一个模块独立运行,在运行前开启采集功能;
[0038] 步骤2,修改Nginx配置,开启采集功能;在Nginx主配置文件nginx.conf中的http{}内,添加vhost_traffic_status_zone,并保存修改,同时nginx的配置文件中将采集功能的开关打开,且需要重新启动nginx服务才会生效;
[0039] 步骤3,重新启动Nginx服务,重新启动后,采集功能立刻开始监听nginx日志模块;当有请求进入nginx时,nginx日志模块开始工作,采集功能则会立刻获取需要的相关内容;
[0040] 数据计算分析,具体包含如下步骤:
[0041] 步骤4,采集功能每监听一条日志,将访问的总数量加1,首次开始分析时访问总量为0;日志是nginx日志模块正在处理的日志。
[0042] 所述nginx日志模块中记录了信息包含访问地址、返回的http状态码、请求的数据包大小
[0043] 步骤5,根据nginx日志中记录的http状态码:
[0044] 通过采集端传递过来的日志中生成的状态码来计算不同状态码的实际数量[0045] 若状态码为2开头的3位数,那么会将http 2xx的统计总量加1;
[0046] 若状态码为3开头的3位数,那么会将http 3xx的统计总量加1;
[0047] 若状态码为4开头的3位数,那么会将http 4xx的统计总量加1;
[0048] 若状态码为5开头的3位数,那么会将http 5xx的统计总量加1;
[0049] 其中,http 2xx和http 3xx为健康访问,http 4xx和http 5xx为非健康访问;http2xx数量加上http 3xx数量可计算出健康访问总次数,进而可得出总访问次数;
[0050] 步骤6,根据日志格式中记录的$bytes_sent$bytes_received字段的数值,可得到每一次访问发送和接收的数据量;将$bytes_sent和$bytes_received分别累加计算可得到总的发送和接收流量;
[0051] 步骤7,将步骤6计算后分析后的数据保存在nginx服务器中,通过本发明提供的api接口进行数据查询。
[0052] 提供api查询。
[0053] /status/control?cmd=status&group=server&zone=*。
[0054] 本发明采集和分析过程如图1所示,虚线部分为程序自动完成,实现部分为人员操作的实施过程:
[0055] 需要将本发明程序拷贝到nginx服务器上,可以放到任意目录中,例如:/tmp/lk目录中。
[0056] 重新编译nginx源代码,add的形式添加本发明程序,例如:./configure—add-module=/tmp/lk;make;make install
[0057] 编辑配置文件
[0058] 编辑nginx主配置文件,在http{}配置中,增加:vhost_traffic_status_zone;
[0059]
[0060] 4.启动nginx
[0061] 重新启动nginx服务
[0062] 5.访问监控数据
[0063] 在nginx服务器上执行:curl http://127.0.0.1/status/control?cmd=status&group=server&zone=*即可访问到监控的数据。
[0064] 本技术领域技术人员可以理解的是,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
[0065] 以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。上面对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以再不脱离本发明宗旨的前提下做出各种变化。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈