CN112929232A - 一种基于python+mysql的工业防火墙流量统计方法及系统 - Google Patents

一种基于python+mysql的工业防火墙流量统计方法及系统 Download PDF

Info

Publication number
CN112929232A
CN112929232A CN202110112012.3A CN202110112012A CN112929232A CN 112929232 A CN112929232 A CN 112929232A CN 202110112012 A CN202110112012 A CN 202110112012A CN 112929232 A CN112929232 A CN 112929232A
Authority
CN
China
Prior art keywords
flow
time
data
period
traffic
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.)
Granted
Application number
CN202110112012.3A
Other languages
English (en)
Other versions
CN112929232B (zh
Inventor
张卫强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Changyang Technology Beijing Co ltd
Original Assignee
Changyang Tech Beijing Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Changyang Tech Beijing Co ltd filed Critical Changyang Tech Beijing Co ltd
Priority to CN202110112012.3A priority Critical patent/CN112929232B/zh
Publication of CN112929232A publication Critical patent/CN112929232A/zh
Application granted granted Critical
Publication of CN112929232B publication Critical patent/CN112929232B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0209Architectural arrangements, e.g. perimeter networks or demilitarized zones
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Abstract

本发明给出了一种基于python+mysql的工业防火墙流量统计方法及系统,包括在读取到设备和接口的流量数据以及ip和协议的流量数据后,每次取一段时间内的流量数据进行计算并缓存,以便对已经过计算和缓存的流量数据进行清理,从而减少流量数据的储存量,实现计算量的削峰,防止cpu资源耗尽的问题发生,使整个流量统计的过程更加平缓地进行;此外,利用mysql将流量统计的过程编写成数据库的存储过程,再编写mysql事件来调度以上过程,有效地减少了中间环节的资源消耗,大幅度地减少了中间环节的计算量,从而提升了流量统计的整体性能并减少了资源消耗。

Description

一种基于python+mysql的工业防火墙流量统计方法及系统
技术领域
本发明涉及通信技术领域,尤其是一种基于python+mysql的工业防火墙流量统计方法及系统。
背景技术
在工业防火墙项目中,一般设备的硬件资源非常有限,由于时时的流量统计需要在一定时间内的所有数据做聚合运算,但是由于统计的最大时间维度往往是一周甚至更多,所以存储的流量数据往往是千万级甚至亿级的,这样,做聚合运算对于数据库和设备来说压力是非常大的,甚至会导致系统崩溃,所以如果等页面发请求再进行数据统计是不现实的,需要一种高效的方式去处理流量数据的计算问题。
在传统模式下,流量统计由业务层进行处理,处理流程大体是先聚合查询,然后将结果进行遍历处理再进行保存,当页面有请求时将计算的结果返回,这种模式一是增加了业务层的处理过程和逻辑,二是增加了与数据库交互的过程,这些过程在资源紧张的情况下效率显得尤为低。本系统将这些处理逻辑编写成存储过程,让整个处理数据的过程作为数据库服务端的一部分去运行,既节省了业务层的计算,又省去了网络交互过程和sql语句的编译解析过程,使整个流量统计的效率更高,消耗资源更少。
发明内容
本发明提出了一种基于python+mysql的工业防火墙流量统计方法及系统,以解决上文提到的现有技术的缺陷。
在一个方面,本发明提出了一种基于python+mysql的工业防火墙流量统计方法,该方法包括以下步骤:
每隔一段时间通过python中的putil模块对各个设备的各个接口的流量进行读取和统计得到当前时刻的设备接口的总流量数据;
对相邻两次读取到的所述设备接口的总流量数据进行相减并除以所述一段时间,获得所述一段时间内的所述设备接口的流量的平均速率并储存所述流量的平均速率;
解析每条报文中的ip和协议,同时利用mysql编写存储过程和事件对每所述一段时间内的各ip和各协议的流量进行聚合运算,得到所述各ip和各协议的流量的总和后对其进行缓存生成缓存流量数据;
对所有所述一段时间内的所述缓存流量数据进行总的统计计算获得总流量统计结果。
以上方法在读取到设备和接口的流量数据以及ip和协议的流量数据后,每次取一段时间内的流量数据进行计算并缓存,以便对已经过计算和缓存的流量数据进行清理,从而减少流量数据的储存量,实现计算量的削峰,防止cpu资源耗尽的问题发生,使整个流量统计的过程更加平缓地进行;此外,利用mysql将流量统计的过程编写成数据库的存储过程,再编写mysql事件来调度以上过程,有效地减少了中间环节的资源消耗,大幅度地减少了中间环节的计算量,从而提升了流量统计的整体性能并减少了资源消耗。
在具体的实施例中,所述一段时间包括一小时、一天、一周在内的多种不同时间粒度。
在具体的实施例中,所述方法还包括:通过编写调度器对包括所述各ip和各协议的流量、所述设备接口流量数据和所述缓存流量数据在内的所有流量数据进行定期的过期清理。清理过期数据,让所有流量统计表中只保留一部分有效数据,提升了数据库的查询聚合效率
在具体的实施例中,所述方法在对所有所述一段时间内的所述缓存流量数据进行总的统计计算获得总流量统计结果时具体包括:对所述一段时间内的所述缓存流量数据按时间进行切割得到多组数据,每次只对其中一组数据进行统计后删除该组数据。
在具体的实施例中,所述利用mysql编写存储过程和事件对每所述一段时间内的各ip和各协议的流量进行聚合运算的具体步骤包括:
基于mysql将所述聚合运算作为数据库的存储过程进行编写,得到相应的存储过程;
基于mysql编写事件对所述相应的存储过程进行调度,执行所述聚合运算。
在具体的实施例中,所述缓存流量数据包括:表征各所述一段时间内各ip的流量的统计表和表征各所述一段时间内各协议的流量的统计表。
在具体的实施例中,所述设备接口流量数据包括:
表征各所述一段时间内各个接口的流量的统计表;
将所述表征各所述一段时间内各个接口的流量的统计表基于同一设备的接口进行汇总后得到的表征各所述一段时间内各个设备的流量的统计表。
在具体的实施例中,所述一段时间按照所述读取和统计的需要进行设定。
根据本发明的第二方面,提出了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机处理器执行时实施上述方法。
根据本发明的第三方面,提出一种基于python+mysql的工业防火墙流量统计系统,该系统包括:
总流量统计模块:配置用于每隔一段时间通过python中的putil模块对各个设备的各个接口的流量进行读取和统计得到当前时刻的设备接口的总流量数据;
流量平均速率计算模块:配置用于对相邻两次读取到的所述设备接口的总流量数据进行相减并除以所述一段时间,获得所述一段时间内的所述设备接口的流量的平均速率并储存所述流量的平均速率;
ip和协议流量聚合模块:配置用于解析每条报文中的ip和协议,同时利用mysql编写存储过程和事件对每所述一段时间内的各ip和各协议的流量进行聚合运算,得到所述各ip和各协议的流量的总和后对其进行缓存生成缓存流量数据;
ip和协议流量统计模块:配置用于对所有所述一段时间内的所述缓存流量数据进行总的统计计算获得总流量统计结果。
本发明在读取到设备和接口的流量数据以及ip和协议的流量数据后,每次取一段时间内的流量数据进行计算并缓存,以便对已经过计算和缓存的流量数据进行清理,从而减少流量数据的储存量,实现计算量的削峰,防止cpu资源耗尽的问题发生,使整个流量统计的过程更加平缓地进行;此外,利用mysql将流量统计的过程编写成数据库的存储过程,再编写mysql事件来调度以上过程,有效地减少了中间环节的资源消耗,大幅度地减少了中间环节的计算量,从而提升了流量统计的整体性能并减少了资源消耗。
附图说明
包括附图以提供对实施例的进一步理解并且附图被并入本说明书中并且构成本说明书的一部分。附图图示了实施例并且与描述一起用于解释本发明的原理。将容易认识到其它实施例和实施例的很多预期优点,因为通过引用以下详细描述,它们变得被更好地理解。通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是本发明的一个实施例的一种基于python+mysql的工业防火墙流量统计方法的流程图;
图3是本发明的一个具体的实施例的设备流量和接口流量的统计流程图;
图4是本发明的一个具体的实施例的ip流量和协议流量的统计流程图;
图5是本发明的一个具体的实施例的ip流量和协议流量的统计数据走向示意图;
图6是本发明的一个实施例的一种基于python+mysql的工业防火墙流量统计系统的框架图;
图7是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请实施例的一种基于python+mysql的工业防火墙流量统计方法的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种应用,例如数据处理类应用、数据可视化类应用、网页浏览器应用等。
终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上展示的ip和协议流量提供支持的后台信息处理服务器。后台信息处理服务器可以对获取的ip和协议流量进行处理,并生成处理结果(例如缓存流量数据)。
需要说明的是,本申请实施例所提供的方法可以由服务器105执行,也可以由终端设备101、102、103执行,相应的装置一般设置于服务器105中,也可以设置于终端设备101、102、103中。
需要说明的是,服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
根据本发明的一个实施例的一种基于python+mysql的工业防火墙流量统计方法,图2示出了根据本发明的实施例的一种基于python+mysql的工业防火墙流量统计方法的流程图。如图2所示,该方法包括以下步骤:
201:每隔一段时间通过python中的putil模块对各个设备的各个接口的流量进行读取和统计得到当前时刻的设备接口的总流量数据。
在具体的实施例中,所述一段时间包括一小时、一天、一周在内的多种不同时间粒度。
在具体的实施例中,所述一段时间按照所述读取和统计的需要进行设定。
在具体的实施例中,所述设备接口流量数据包括:
表征各所述一段时间内各个接口的流量的统计表;
将所述表征各所述一段时间内各个接口的流量的统计表基于同一设备的接口进行汇总后得到的表征各所述一段时间内各个设备的流量的统计表。
202:对相邻两次读取到的所述设备接口的总流量数据进行相减并除以所述一段时间,获得所述一段时间内的所述设备接口的流量的平均速率并储存所述流量的平均速率。
下面参考图3,图3示出了本发明的一个具体的实施例的设备流量和接口流量的统计流程图,具体过程如下:
时间调度程序301主要通过编写定时器进行实现,可设定一小时、一天、一周等多个时间维度进行后续的流量统计;
流量获取程序302主要基于python和putil模块实现;
通过流量数据解析计算303获得接口流量小时统计表304、接口流量天统计表305和接口流量周统计表306,再通过python和putil模块进行接口汇总,获得设备流量小时统计表307、设备流量天统计表308和设备流量周统计表309。
203:解析每条报文中的ip和协议,同时利用mysql编写存储过程和事件对每所述一段时间内的各ip和各协议的流量进行聚合运算,得到所述各ip和各协议的流量的总和后对其进行缓存生成缓存流量数据。
在具体的实施例中,所述利用mysql编写存储过程和事件对每所述一段时间内的各ip和各协议的流量进行聚合运算的具体步骤包括:
基于mysql将所述聚合运算作为数据库的存储过程进行编写,得到相应的存储过程;
基于mysql编写事件对所述相应的存储过程进行调度,执行所述聚合运算。
204:对所有所述一段时间内的所述缓存流量数据进行总的统计计算获得总流量统计结果。
在具体的实施例中,所述方法还包括:通过编写调度器对包括所述各ip和各协议的流量、所述设备接口流量数据和所述缓存流量数据在内的所有流量数据进行定期的过期清理。
在具体的实施例中,所述方法在对所有所述一段时间内的所述缓存流量数据进行总的统计计算获得总流量统计结果时具体包括:对所述一段时间内的所述缓存流量数据按时间进行切割得到多组数据,每次只对其中一组数据进行统计后删除该组数据。
在具体的实施例中,所述缓存流量数据包括:表征各所述一段时间内各ip的流量的统计表和表征各所述一段时间内各协议的流量的统计表。
针对ip流量和协议流量的统计流程,下面参考图4,图4示出了本发明的一个具体的实施例的ip流量和协议流量的统计流程图,具体流程如下:
S401:安全引擎进程,是独立于流量统计的一个进程,主要是解析每条报文中的ip和协议,生成ip和流量的原始数据然后放入到对应队列中,且只要有网络流量产生,就会一直往队列中写入数据;
S402:入库线程,将队列中的数据写入到ip流量的原始数据表中;
S403:入库线程,将队列中的数据写入到协议流量的原始数据表中;
S404:将编写的事件逻辑存于数据库的服务端,用于调度所有的存储过程有序运行,由于每个存储过程执行的频次不一样,先后的执行顺序也会有所制约,所以通过编写的事件逻辑可以有效的控制每个存储过程的正确执行;
S405:将计算结果缓存到对应的临时表中,再从临时表中进行再次运算,将最终的计算结果放到对应时间维度的成品表中,成品表中的数据是直接供页面访问,另外一个功能就是对过期数据的清理,对已经计算过的原始表数据、临时表数据和成品表数据进行清理,需要说明的是,临时表中的数据需要保存当前时间维度的最大时间,如小时临时表需要最少保留当前一小时的缓存数据;
S406:流量计算缓存程序将多个时间维度的表逐级计算并保存,以ip流量统计为例:每个一小段时间如5分钟,计算当前5分钟的数据放入到小时临时表中,每次计算作为一组数据保存,这样小时临时表中最近的12组数据就是当前一小时的流量数据,然后再基于小时临时表中的数据做计算放入到一天的临时表中,每次计算同样作为一组数据保存;
S407:将S406中的结果储存在流量计算结果表中;
S408:清理过期数据,保证所有流量统计表中只保留一部分有效数据。
关于以上流程中ip流量和协议流量的统计数据走向,下面参考图5,图5示出了本发明的一个具体的实施例的ip流量和协议流量的统计数据走向示意图,可以清晰地看到,整个计算过程只有一次从原始表中的计算,后续表中的数据全部来源于第一次的计算,后续表中的数据全部是对缓存数据的操作。
图6示出了本发明的一个实施例的一种基于python+mysql的工业防火墙流量统计系统的框架图。该系统包括总流量统计模块601、流量平均速率计算模块602、ip和协议流量聚合模块603和ip和协议流量统计模块604。
在具体的实施例中,总流量统计模块601被配置用于每隔一段时间通过python中的putil模块对各个设备的各个接口的流量进行读取和统计得到当前时刻的设备接口的总流量数据;
流量平均速率计算模块602被配置用于对相邻两次读取到的所述设备接口的总流量数据进行相减并除以所述一段时间,获得所述一段时间内的所述设备接口的流量的平均速率并储存所述流量的平均速率;
ip和协议流量聚合模块603被配置用于解析每条报文中的ip和协议,同时利用mysql编写存储过程和事件对每所述一段时间内的各ip和各协议的流量进行聚合运算,得到所述各ip和各协议的流量的总和后对其进行缓存生成缓存流量数据;
ip和协议流量统计模块604被配置用于对所有所述一段时间内的所述缓存流量数据进行总的统计计算获得总流量统计结果。
本系统在读取到设备和接口的流量数据以及ip和协议的流量数据后,每次取一段时间内的流量数据进行计算并缓存,以便对已经过计算和缓存的流量数据进行清理,从而减少流量数据的储存量,实现计算量的削峰,防止cpu资源耗尽的问题发生,使整个流量统计的过程更加平缓地进行;此外,利用mysql将流量统计的过程编写成数据库的存储过程,再编写mysql事件来调度以上过程,有效地减少了中间环节的资源消耗,大幅度地减少了中间环节的计算量,从而提升了流量统计的整体性能并减少了资源消耗。
下面参考图7,其示出了适于用来实现本申请实施例的电子设备的计算机系统700的结构示意图。图7示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,且这些单元的名称在某种情况下并不构成对该单元本身的限定。
本发明的实施例还涉及一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机处理器执行时实施上文中的方法。该计算机程序包含用于执行流程图所示的方法的程序代码。需要说明的是,本申请的计算机可读介质可以是计算机可读信号介质或者计算机可读介质或者是上述两者的任意组合。
本发明在读取到设备和接口的流量数据以及ip和协议的流量数据后,每次取一段时间内的流量数据进行计算并缓存,以便对已经过计算和缓存的流量数据进行清理,从而减少流量数据的储存量,实现计算量的削峰,防止cpu资源耗尽的问题发生,使整个流量统计的过程更加平缓地进行;此外,利用mysql将流量统计的过程编写成数据库的存储过程,再编写mysql事件来调度以上过程,有效地减少了中间环节的资源消耗,大幅度地减少了中间环节的计算量,从而提升了流量统计的整体性能并减少了资源消耗。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (10)

1.一种基于python+mysql的工业防火墙流量统计方法,其特征在于,包括以下步骤:
每隔一段时间通过python中的putil模块对各个设备的各个接口的流量进行读取和统计得到当前时刻的设备接口的总流量数据;
对相邻两次读取到的所述设备接口的总流量数据进行相减并除以所述一段时间,获得所述一段时间内的所述设备接口的流量的平均速率并储存所述流量的平均速率;
解析每条报文中的ip和协议,同时利用mysql编写存储过程和事件对每所述一段时间内的各ip和各协议的流量进行聚合运算,得到所述各ip和各协议的流量的总和后对其进行缓存生成缓存流量数据;
对所有所述一段时间内的所述缓存流量数据进行总的统计计算获得总流量统计结果。
2.根据权利要求1所述的方法,其特征在于,所述一段时间包括小时、天、周在内的多种不同时间粒度。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:通过编写调度器对包括所述各ip和各协议的流量、所述设备接口流量数据和所述缓存流量数据在内的所有流量数据进行定期的过期清理。
4.根据权利要求1所述的方法,其特征在于,所述方法在对所有所述一段时间内的所述缓存流量数据进行总的统计计算获得总流量统计结果时具体包括:对所述一段时间内的所述缓存流量数据按时间进行切割得到多组数据,每次只对其中一组数据进行统计后删除该组数据。
5.根据权利要求1所述的方法,其特征在于,所述利用mysql编写存储过程和事件对每所述一段时间内的各ip和各协议的流量进行聚合运算的具体步骤包括:
基于mysql将所述聚合运算作为数据库的存储过程进行编写,得到相应的存储过程;
基于mysql编写事件对所述相应的存储过程进行调度,执行所述聚合运算。
6.根据权利要求1所述的方法,其特征在于,所述缓存流量数据包括:表征各所述一段时间内各ip的流量的统计表和表征各所述一段时间内各协议的流量的统计表。
7.根据权利要求1所述的方法,其特征在于,所述设备接口流量数据包括:
表征各所述一段时间内各个接口的流量的统计表;
将所述表征各所述一段时间内各个接口的流量的统计表基于同一设备的接口进行汇总后得到的表征各所述一段时间内各个设备的流量的统计表。
8.根据权利要求1所述的方法,其特征在于,所述一段时间按照所述读取和统计的需要进行设定。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被计算机处理器执行时实施权利要求1至8中任一项所述的方法。
10.一种基于python+mysql的工业防火墙流量统计系统,其特征在于,包括:
总流量统计模块:配置用于每隔一段时间通过python中的putil模块对各个设备的各个接口的流量进行读取和统计得到当前时刻的设备接口的总流量数据;
流量平均速率计算模块:配置用于对相邻两次读取到的所述设备接口的总流量数据进行相减并除以所述一段时间,获得所述一段时间内的所述设备接口的流量的平均速率并储存所述流量的平均速率;
ip和协议流量聚合模块:配置用于解析每条报文中的ip和协议,同时利用mysql编写存储过程和事件对每所述一段时间内的各ip和各协议的流量进行聚合运算,得到所述各ip和各协议的流量的总和后对其进行缓存生成缓存流量数据;
ip和协议流量统计模块:配置用于对所有所述一段时间内的所述缓存流量数据进行总的统计计算获得总流量统计结果。
CN202110112012.3A 2021-01-27 2021-01-27 一种基于python+mysql的工业防火墙流量统计方法及系统 Active CN112929232B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110112012.3A CN112929232B (zh) 2021-01-27 2021-01-27 一种基于python+mysql的工业防火墙流量统计方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110112012.3A CN112929232B (zh) 2021-01-27 2021-01-27 一种基于python+mysql的工业防火墙流量统计方法及系统

Publications (2)

Publication Number Publication Date
CN112929232A true CN112929232A (zh) 2021-06-08
CN112929232B CN112929232B (zh) 2022-08-19

Family

ID=76167156

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110112012.3A Active CN112929232B (zh) 2021-01-27 2021-01-27 一种基于python+mysql的工业防火墙流量统计方法及系统

Country Status (1)

Country Link
CN (1) CN112929232B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103748999B (zh) * 2010-06-09 2012-02-08 北京理工大学 一种网络安全态势综合评估系统
US20130067018A1 (en) * 2011-09-13 2013-03-14 Patrick A. Reynolds Methods and computer program products for monitoring the contents of network traffic in a network device
US20150249608A1 (en) * 2012-12-18 2015-09-03 Huawei Technologies Co., Ltd. Method, System and Apparatus for Controlling Flow Detection, Controller and Detection Device
CN105471618A (zh) * 2015-08-03 2016-04-06 汉柏科技有限公司 一种基于防火墙的网络安全的管理方法和系统
CN107104960A (zh) * 2017-04-20 2017-08-29 四川电科智造科技有限公司 一种基于机器学习的工业控制系统入侵检测方法
CN110019087A (zh) * 2017-11-09 2019-07-16 北京京东尚科信息技术有限公司 数据处理方法及其系统
CN112165460A (zh) * 2020-09-10 2021-01-01 杭州安恒信息技术股份有限公司 流量检测方法、装置、计算机设备和存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103748999B (zh) * 2010-06-09 2012-02-08 北京理工大学 一种网络安全态势综合评估系统
US20130067018A1 (en) * 2011-09-13 2013-03-14 Patrick A. Reynolds Methods and computer program products for monitoring the contents of network traffic in a network device
US20150249608A1 (en) * 2012-12-18 2015-09-03 Huawei Technologies Co., Ltd. Method, System and Apparatus for Controlling Flow Detection, Controller and Detection Device
CN105471618A (zh) * 2015-08-03 2016-04-06 汉柏科技有限公司 一种基于防火墙的网络安全的管理方法和系统
CN107104960A (zh) * 2017-04-20 2017-08-29 四川电科智造科技有限公司 一种基于机器学习的工业控制系统入侵检测方法
CN110019087A (zh) * 2017-11-09 2019-07-16 北京京东尚科信息技术有限公司 数据处理方法及其系统
CN112165460A (zh) * 2020-09-10 2021-01-01 杭州安恒信息技术股份有限公司 流量检测方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN112929232B (zh) 2022-08-19

Similar Documents

Publication Publication Date Title
Tian et al. Characterizing and synthesizing task dependencies of data-parallel jobs in alibaba cloud
US8978034B1 (en) System for dynamic batching at varying granularities using micro-batching to achieve both near real-time and batch processing characteristics
CN110019087B (zh) 数据处理方法及其系统
US10102240B2 (en) Managing event metrics for service management analytics
CN111339073A (zh) 实时数据处理方法、装置、电子设备及可读存储介质
CN110019367B (zh) 一种统计数据特征的方法和装置
CN111061798B (zh) 可配置化数据传输及监控方法、设备及介质
JP2020537261A (ja) 連続するデータブロックの非同期処理
CN109039817A (zh) 一种用于流量监控的信息处理方法和装置
CN112100034A (zh) 一种业务监控方法和装置
US7890630B2 (en) Systems, methods and computer program products for supporting transformation to a shared on-demand infrastructure
CN109977139B (zh) 基于类结构化查询语句的数据处理方法和装置
CN113468196B (zh) 用于处理数据的方法、装置、系统、服务器和介质
CN110727563A (zh) 预设客户的云服务报警方法及装置
CN113190558A (zh) 一种数据加工方法和系统
CN112929232B (zh) 一种基于python+mysql的工业防火墙流量统计方法及系统
CN111680869A (zh) 一种监测投放策略的方法、装置和电子设备
CN111124858A (zh) 无埋点插码数据处理方法、系统、终端设备及存储介质
CN112131257B (zh) 数据查询方法和装置
CN114138758A (zh) 一种基于多源系统的数据清洗合并方法、装置及可读介质
CN117131059A (zh) 报表数据处理方法、装置、设备及存储介质
CN115048421A (zh) 一种数据处理方法、装置、设备和存储介质
CN113127187A (zh) 用于集群扩缩容的方法和装置
CN115455088B (zh) 数据统计方法、装置、设备及存储介质
US20180341521A1 (en) Managing job schedules

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
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Room 01, floor 1, building 104, No. 3 minzhuang Road, Haidian District, Beijing 100195

Patentee after: Changyang Technology (Beijing) Co.,Ltd.

Address before: 100195 2nd floor, building 3, yuquanhuigu phase II, No.3 minzhuang Road, Haidian District, Beijing

Patentee before: CHANGYANG TECH (BEIJING) Co.,Ltd.