基于流量分析实现流量可视化的方法及系统与流程

未命名 07-23 阅读:85 评论:0
1.本技术涉及云计算
技术领域
:,尤其涉及一种基于流量分析实现流量可视化的方法及系统。
背景技术
::2.随着云计算技术的不断发展,因其具有快速便捷以及按量付费优点,越来越多的企业青睐于它。随着业务规模的不断扩大,容器网络流量的分析需求也日益增多,具体的,需要将流量可视化并呈现在用户面前。目前流量可视化的实现方式主要是通过deepflow使用ebpf技术从网络驱动处获取网络流,并将数据聚合后通过grafana可视化展示给用户。3.然而deepflow在使用ebfp技术时,对于linux的内核版本有要求,对于一些较为老旧或者追求稳定的系统并不方便进行系统部署,因此无法较为便捷地实现流量可视化。技术实现要素:4.本技术提供了一种基于流量分析实现流量可视化的方法及系统,可以解决无法较为便捷地实现流量可视化的问题。本技术提供如下技术方案:第一方面,本技术提供一种基于流量分析实现流量可视化的方法,所述方法包括:在kubernetes集群中部署flowaggregator程序并在每个节点处均部署flowexporter程序;flowexporter程序从ovs的流表中获取当前节点的网络流并将其发送至flowaggregator程序;flowaggregator程序将网络流聚合并存储至数据库内;grafana以所述数据库作为数据源获取数据,并通过grafana插件对网络流进行页面绘制。5.在一个具体的可实施方案中,所述flowexporter程序从ovs的流表中获取当前节点的网络流并将其发送至flowaggregator程序包括:判断网络流类型并获取网络流基础信息以及集群的网络策略;判断网络流信息缓存是否为空,若是缓存为空,则将此次采集的数据写入缓存中,若是缓存不为空,则将此次采集的数据推送至flowaggregator程序中。6.在一个具体的可实施方案中,所述判断网络流类型并获取网络流基础信息以及集群的网络策略包括:根据源ip地址、目的ip地址、源端口和目的端口提取网络流;根据src和dst判断网络流的类型;获取src和dst相关的基础信息,所述基础信息包括容器名称和命名空间;根据src和dst获取集群的网络策略。7.在一个具体的可实施方案中,所述若是缓存不为空,则将此次采集的数据推送至flowaggregator程序中之前还包括:将当前采集网络流的包的个数与缓存数据的包的个数进行对比;判断包的个数是否存在变化,若是不变,则直接结束,若是存在变化,则将网络流推送至flowaggregator程序中。8.在一个具体的可实施方案中,所述flowaggregator程序将网络流聚合并存储至数据库内之后还包括:选择是否需要配置ipfixexporter程序,若是需要,则配置ipfixexporter程序,所述ipfixexporter程序将所述数据库中的数据中以ipfix协议封装并对外暴露,若是不需要,则直接结束。9.在一个具体的可实施方案中,所述flowexporter程序将当前节点的网络流发送至flowaggregator程序之前还包括:根据网络流的流向对网络流进行分类。10.在一个具体的可实施方案中,所述数据库指定为clickhouse数据库。11.第二方面,本技术提供一种基于流量分析实现流量可视化的系统,采用如下的技术方案:一种基于流量分析实现流量可视化的系统,包括:程序部署模块,用于在kubernetes集群中部署flowaggregator程序并在每个节点处均部署flowexporter程序;数据获取模块,用于flowexporter程序从ovs的流表中获取当前节点的网络流并将其发送至flowaggregator程序;数据聚合模块,用于flowaggregator程序将网络流聚合并存储至数据库内;数据可视化模块,用于grafana以所述数据库作为数据源获取数据,并通过grafana插件对网络流进行页面绘制。12.第三方面,本技术提供一种电子设备,所述设备包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现如权利要求1至7任一项所述的一种基于流量分析实现流量可视化的方法。13.第四方面,本技术提供一种计算机可读存储介质,所述存储介质中存储有程序,所述程序被处理器执行时用于实现如权利要求1至7任一项所述的一种基于流量分析实现流量可视化的方法。14.综上所述,本技术的有益效果至少包括:使得整个集群网络流可视化,便于观察集群的网络状况,便于运维人员管理聚合整个集群的网络流;使用者从单个节点单个容器的视角上升至集群层面,使得网络流数据持久化,能够轻松地查看历史网络数据;通过以ipfix格式暴露网络流,通用的协议更便于接入任何第三方平台;使用grafana作为页面展示平台,更加通用的页面展示系统,让二次开发更加方便,也便于接入任何其它的平台;clickhouse数据库为列式存储,针对于数据存储更容易进行数据压缩,每一列选择更优的数据压缩算法,大大提高了数据的压缩比重,数据压缩比更好,从而节省了磁盘空间。15.通过在kubernetes集群中部署flowaggregator程序和flowexporter程序,使用flowexporter程序从ovs的流表中获取每个flowexporter程序对应的当前节点的网络流,随后flowexporter程序将采集到的网络流推送到flowaggregator程序,使用flowaggregator程序将网络流聚合并存储至clickhouse数据库内,最后grafana以clickhouse数据库作为数据源获取网络流数据,并通过grafana插件对网络流进行页面绘制,从而实现网络流的可视化操作;可以解决无法较为便捷地实现流量可视化的问题。16.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,并可依照说明书的内容予以实施,以下以本技术的较佳实施例并配合附图详细说明如后。附图说明17.图1是本技术一个实施例提供的基于流量分析实现流量可视化的方法的流程示意图。18.图2是本技术一个实施例提供的基于流量分析实现流量可视化的方法的举例示意图一。19.图3是本技术一个实施例提供的基于流量分析实现流量可视化的方法的举例示意图二。20.图4是本技术一个实施例提供的基于流量分析实现流量可视化的系统的结构框图。21.图5是本技术一个实施例提供的基于流量分析实现流量可视化的电子设备的框图。22.附图标记:410、程序部署模块;420、数据获取模块;430、数据聚合模块;440、数据可视化模块。具体实施方式23.下面结合附图和实施例,对本技术的具体实施方式做进一步详细描述。以下实施例用于说明本技术,但不用来限制本技术的范围。24.首先,对于本技术所涉及的若干名词进行介绍。25.kubernetes:是用于自动部署、拓展和管理、容器化应用的开源系统。该系统由谷歌设计并捐赠给cncf。26.openvswitch:有时缩写为ovs,是分布式虚拟多层交换机的开源实现。openvswitch的主要目的是为硬件虚拟化环境提供交换堆栈,同时支持计算机网络中使用的多种协议和标准。27.grafana:是一个多平台开源分析和交互式可视化web应用程序。当连接到受支持的数据源时,它会为web提供图表、图形和警报。还有一个获得许可的grafanaenterprise版本,它具有额外的功能,可以作为自托管安装或grafanalabs云服务上的帐户使用。可通过插件系统进行扩展。最终用户可以使用交互式查询构建器创建复杂的监控仪表板。28.flowtable(流表):流表是openflow交换机进行数据转发的策略表项集合,指示交换机如何处理流量,所有进入交换机的报文都按照流表进行转发。流表本身的生成、维护、下发完全由控制器来实现。29.conntrack(连接追踪模块):linux内核模块的一个功能,其允许内核跟踪所有的网络链接,从而识别每个流的所有数据包,以便一致地一起处理。30.ipfix(ipflowinformationexport):ip数据流信息输出,它是由ietf公布的用于网路中的流信息测量的标准协议。该协议主要用于统一ip数据流的统计输出标准、输出格式具有较强的可拓展性。ipfix定义的格式以思科netflowversion9数据输出格式为基础,可使ip信息从一个输出器(export)传送到收集器(collector)。因此ipfix是一种针对数据流特征分析、基于模板的格式输出协议。31.clickhouse:是俄罗斯的yandex于2016年开源的一个用于联机分析的列式数据库管理系统,简称ck。列式存储的好处:对于列的聚合、计数、求和等统计操作优于行式存储;由于某一列的数据类型都是相同的,针对于数据存储更容易进行数据压缩,每一列选择更优的数据压缩算法,大大提高了数据的压缩比重;数据压缩比更好,一方面节省了磁盘空间,另一方面对于cache也有了更大的发挥空间。32.可选地,本技术以各个实施例提供的基于流量分析实现流量可视化的方法用于电子设备中为例进行说明,该电子设备为终端或服务器,终端可以为手机、计算机、平板电脑、扫描仪、电子眼、监控摄像头等,本实施例不对电子设备的类型作限定。33.参照图1,是本技术一个实施例提供的基于流量分析实现流量可视化的方法的流程示意图,该方法至少包括以下几个步骤:步骤101,在kubernetes集群中部署flowaggregator程序和flowexporter程序。34.参照图2,首先在kubernetes集群中部署flowaggregator程序,同时在每个节点处均部署flowexporter程序。其中,flowexporter程序用于定期获取流表信息,flowaggregator程序用于聚合整个集群的网络流信息。35.步骤102,使用flowexporter程序从ovs的流表中获取网络流。36.参照图3,程序部署之后使用flowexporter程序从ovs的流表中获取每个flowexporter程序对应的当前节点的网络流。具体的,首先根据源ip地址、目的ip地址、源端口和目的端口提取网络流,随后根据src和dst判断网络流的类型,再获取src和dst相关的基础信息,基础信息包括容器名称和命名空间,最后根据src和dst获取集群的网络策略。37.获取到网络流信息之后,判断网络流信息缓存是否为空,若是缓存为空,则将此次采集的数据写入缓存中,如此使用者能够从单个节点单个容器的视角上升至集群层面,使得网络流数据持久化,能够轻松地查看历史网络数据。若是缓存不为空,将当前采集到的网络流的包的个数与缓存数据的包的个数进行对比,判断包的个数是否存在变化,其中缓存数据指上一次所采集的网络流数据,若是包的个数不变,证明获取的网络流无意义,则直接结束。若是包的个数存在变化,证明获取到的网络流有意义,则将采集到的网络流推送至flowaggregator程序中。38.需要注意的是,在将采集到的网络流推送至flowaggregator程序中之前,需要先根据网络流的流向对网络流进行分类,其中网络流的流向有pod到pod,pod到node或者pod到service等七个流向。39.步骤103,使用flowaggregator程序将网络流聚合并存储至数据库内。40.flowexporter程序将采集到的网络流推送到flowaggregator程序之后,使用flowaggregator程序将网络流聚合并存储至数据库内。其中数据库指定为clickhouse数据库,clickhouse数据库为列式存储,针对于数据存储更容易进行数据压缩,每一列选择更优的数据压缩算法,大大提高了数据的压缩比重,数据压缩比更好,从而节省了磁盘空间。41.flowaggregator程序将网络流聚合并存储至clickhouse数据库之后选择是否需要配置ipfixexporter程序,若是需要,则配置ipfixexporter程序,ipfixexporter程序能够将clickhouse数据库中的数据中以ipfix协议封装并对外暴露,若是不需要,则直接结束。ipfix协议是较为流行的通用协议,以ipfix格式暴露网络流,更加便于接入任何第三方平台。42.步骤104,使用grafana对网络流进行页面绘制。43.网络流存储至clickhouse数据库之后,通过grafana以clickhouse数据库作为数据源获取网络流数据,并通过grafana插件对网络流进行页面绘制,从而实现网络流的可视化操作。使用grafana作为页面展示平台,更加通用的页面展示系统,让二次开发更加方便,也便于接入任何其它的平台。44.综上所述,参照图2和图3,通过在kubernetes集群中部署flowaggregator程序和flowexporter程序,使用flowexporter程序从ovs的流表中获取每个flowexporter程序对应的当前节点的网络流,随后flowexporter程序将采集到的网络流推送到flowaggregator程序,使用flowaggregator程序将网络流聚合并存储至clickhouse数据库内,最后grafana以clickhouse数据库作为数据源获取网络流数据,并通过grafana插件对网络流进行页面绘制,从而实现网络流的可视化操作,并使得整个集群网络流可视化,便于观察集群的网络状况,便于运维人员管理聚合整个集群的网络流;使用者能够从单个节点单个容器的视角上升至集群层面,使得网络流数据持久化,能够轻松地查看历史网络数据;通过以ipfix格式暴露网络流,通用的协议更便于接入任何第三方平台;使用grafana作为页面展示平台,更加通用的页面展示系统,让二次开发更加方便,也便于接入任何其它的平台。45.图4是本技术一个实施例提供的基于流量分析实现流量可视化的系统的结构框图。该装置至少包括以下几个模块:程序部署模块410,用于在kubernetes集群中部署flowaggregator程序并在每个节点处均部署flowexporter程序。46.数据获取模块420,用于每个flowexporter程序从ovs的流表中获取当前节点的网络流并将其发送至flowaggregator程序。47.数据聚合模块430,用于flowaggregator程序将网络流聚合并存储至数据库内。48.数据可视化模块440,用于grafana以数据库作为数据源获取数据,并通过grafana插件对网络流进行页面绘制。49.相关细节参考上述方法实施例。50.图5是本技术一个实施例提供的电子设备的框图。该设备至少包括处理器401和存储器402。51.处理器401可以包括一个或多个处理核心,比如:4核心处理器、8核心处理器等。处理器401可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器401也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器401可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器401还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。52.存储器402可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器402还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器402中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器401所执行以实现本技术中方法实施例提供的基于流量分析实现流量可视化的方法。53.在一些实施例中,电子设备还可选包括有:外围设备接口和至少一个外围设备。处理器401、存储器402和外围设备接口之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口相连。示意性地,外围设备包括但不限于:射频电路、触摸显示屏、音频电路、和电源等。54.当然,电子设备还可以包括更少或更多的组件,本实施例对此不作限定。55.可选地,本技术还提供有一种计算机可读存储介质,计算机可读存储介质中存储有程序,程序由处理器加载并执行以实现上述方法实施例的基于流量分析实现流量可视化的方法。56.可选地,本技术还提供有一种计算机产品,该计算机产品包括计算机可读存储介质,计算机可读存储介质中存储有程序,程序由处理器加载并执行以实现上述方法实施例的基于流量分析实现流量可视化的方法。57.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。58.以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。当前第1页12当前第1页12
技术特征:
1.一种基于流量分析实现流量可视化的方法,其特征在于,所述方法包括:在kubernetes集群中部署flow aggregator程序并在每个节点处均部署flow exporter程序;flow exporter程序从ovs的流表中获取当前节点的网络流并发送至flow aggregator程序;flow aggregator程序将网络流聚合并存储至数据库内;grafana以所述数据库作为数据源获取数据,并通过grafana插件对网络流进行页面绘制。2. 根据权利要求1所述的基于流量分析实现流量可视化的方法,其特征在于,所述flow exporter程序从ovs的流表中获取当前节点的网络流并发送至flow aggregator程序包括:判断网络流类型并获取网络流基础信息以及集群的网络策略;判断网络流信息缓存是否为空,若是缓存为空,则将此次采集的数据写入缓存中,若是缓存不为空,则将此次采集的数据推送至flow aggregator程序中。3.根据权利要求2所述的基于流量分析实现流量可视化的方法,其特征在于,所述判断网络流类型并获取网络流基础信息以及集群的网络策略包括:根据源ip地址、目的ip地址、源端口和目的端口提取网络流;根据src和dst判断网络流的类型;获取src和dst相关的基础信息,所述基础信息包括容器名称和命名空间;根据src和dst获取集群的网络策略。4. 根据权利要求2所述的基于流量分析实现流量可视化的方法,其特征在于,所述若是缓存不为空,则将此次采集的数据推送至flow aggregator程序中之前还包括:将当前采集网络流的包的个数与缓存数据的包的个数进行对比;判断包的个数是否存在变化,若是不变,则直接结束,若是存在变化,则将网络流推送至flow aggregator程序中。5. 根据权利要求1所述的基于流量分析实现流量可视化的方法,其特征在于,所述flow aggregator程序将网络流聚合并存储至数据库内之后还包括:选择是否需要配置ipfix exporter程序,若是需要,则配置ipfix exporter程序,所述ipfix exporter程序将所述数据库中的数据中以ipfix协议封装并对外暴露,若是不需要,则直接结束。6. 根据权利要求1所述的基于流量分析实现流量可视化的方法,其特征在于,所述flow exporter程序将当前节点的网络流发送至flow aggregator程序之前还包括:根据网络流的流向对网络流进行分类。7.根据权利要求1所述的基于流量分析实现流量可视化的方法,其特征在于,所述数据库指定为clickhouse数据库。8.一种基于流量分析实现流量可视化的系统,其特征在于,包括:程序部署模块(410),用于在kubernetes集群中部署flow aggregator程序并在每个节点处均部署flow exporter程序;数据获取模块(420),用于flow exporter程序从ovs的流表中获取当前节点的网络流
并将其发送至flow aggregator程序;数据聚合模块(430),用于flow aggregator程序将网络流聚合并存储至数据库内;数据可视化模块(440),用于grafana以所述数据库作为数据源获取数据,并通过grafana插件对网络流进行页面绘制。9.一种电子设备,其特征在于,所述设备包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现如权利要求1至7任一项所述的一种基于流量分析实现流量可视化的方法。10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有程序,所述程序被处理器执行时用于实现如权利要求1至7任一项所述的一种基于流量分析实现流量可视化的方法。

技术总结
本申请涉及云计算技术领域,尤其涉及一种基于流量分析实现流量可视化的方法及系统,其中方法包括:在Kubernetes集群中部署Flow aggregator程序并在每个节点处均部署Flow exporter程序;Flow exporter程序从OVS的流表中获取当前节点的网络流并将其发送至Flow aggregator程序;Flow aggregator程序将网络流聚合并存储至数据库内;Grafana以所述数据库作为数据源获取数据,并通过Grafana插件对网络流进行页面绘制。本申请有效解决了无法较为便捷地实现流量可视化的问题。为便捷地实现流量可视化的问题。为便捷地实现流量可视化的问题。


技术研发人员:花磊 刘学聪 崔骥 赵安全 王亮 梁兵 张振华
受保护的技术使用者:江苏博云科技股份有限公司
技术研发日:2023.06.12
技术公布日:2023/7/22
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐