CN114928562B - 一种图计算平台的流量处理方法和系统 - Google Patents
一种图计算平台的流量处理方法和系统 Download PDFInfo
- Publication number
- CN114928562B CN114928562B CN202210471246.1A CN202210471246A CN114928562B CN 114928562 B CN114928562 B CN 114928562B CN 202210471246 A CN202210471246 A CN 202210471246A CN 114928562 B CN114928562 B CN 114928562B
- Authority
- CN
- China
- Prior art keywords
- flow
- data packet
- traffic
- bpf
- analysis
- 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.)
- Active
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/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- 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
- H04L43/045—Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种图计算平台的流量处理方法,其中,该方法包括:控制器配置流量拦截规则和流量分析规则,并将其发送至图计算平台中的各个组件;代理控制器拦截网络流量并将其加速转发,同时,对网络流量进行镜像处理,并根据流量拦截规则获取镜像流量,以及,采用VxLAN协议,将镜像流量进行报文封装得到数据包,对数据包添加标记信息之后将其发送至流量分析器,其中,代理控制器以sidecar形式部署在组件上;流量分析器,根据流量分析规则解析数据包,生成流量检测记录,并将其存储至数据库。通过本申请,在原有云服务无感知的情况下实现了精准、高效且自动化的流量检测。
Description
技术领域
本申请涉及云计算领域,特别是涉及一种图计算平台的流量处理方法、系统、计算机设备和计算机可读存储介质。
背景技术
图计算平台是以图论为理论基础,以大规模点、边关系及其属性的数据为基础构造图结构,通过图计算框架对图进行特征分析、算法挖掘等任务的数据处理平台,其可以支持图查询、图分析、图学习等场景。
每个公有云厂商都有提供流量采集分析工具,虽然产品各不相同,但是实现原理都大同小异,普遍都是通过vpc flow log(vpc流量日志)实现流量监控分析,进而以此作为评价系统运行状况的依据。
但是,上述方式分析效率较低,且需要企业对公有云厂商资费,这无疑额外增加了企业运营成本。
目前针对图计算平台下,流量监控方法效率较低的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种图计算平台的流量处理方法、系统、计算机设备和计算机可读存储介质,以至少解决相关技术中图计算平台流量监控方法效率低下的问题。
第一方面,本申请实施例提供了一种图计算平台的流量处理方法,在原有云服务无感知的情况下实现,所述方法包括:
控制器配置流量拦截规则和流量分析规则,并将其发送至图计算平台中的各个组件;
代理控制器拦截进出网络流量并将其加速转发,同时,对所述网络流量进行镜像处理,并根据所述流量拦截规则,获取镜像流量,以及,
采用VxLAN协议,将所述镜像流量进行报文封装得到数据包,并对所述数据包添加标记信息之后将其发送至流量分析器,其中,所述代理控制器以sidecar形式部署在各个组件上;
所述流量分析器,根据所述流量分析规则解析所述数据包,生成流量检测记录,并将其存储至数据库。
在其中一些实施例中,所述方法应用在基于Kubernetes系统的Paas图计算平台上,其中,所述Paas图计算平台中部署有coredns,用于解析所述Kubernetes系统的域名;
所述图计算平台的各个组件经过容器化处理,且通过Kubernetes系统的Service实现组件间的通信。
在其中一些实施例中,对所述网络流量进行镜像处理包括:
所述代理控制器在TC模式下,通过调用操作系统内核的TC命令,对所述网络流量进行镜像处理,或者,
所述代理控制器在libpcap模式下,通过内置pcap调用库,对所述网络流量进行镜像处理。
在其中一些实施例中,采用VxLAN协议,对所述数据包添加标记信息包括:
在对所述镜像流量进行报文封装之后,所述代理控制器获取所述镜像流量对应的属性信息,其中,所述属性信息包括:云区域、可用区、集群名、节点名和组件名;
确定所述VxLAN协议的Reserved预留字段,通过将所述属性信息添加在所述Reserved预留字段上,实现对所述镜像流量添加标记信息。
在其中一些实施例中,所述流量分析器,利用所述Kubernetes系统的HPA属性,在弹性扩缩容的情况下,动态解析所述数据包,得到所述流量检测记录。
在其中一些实施例中,根据所述流量分析规则解析所述数据包,包括:
校验所述数据包对应的的封装协议是否为可支持协议,以及,
校验所述数据包的文件头是否包含跟踪ID、跨度ID、父节点ID,以及,
校验所述数据包对应的通信协议中,Reserved预留字段是否包含所述标记信息;
若三者均是,对所述数据包进行解封装,并计算所述数据包中原始数据的大小,以及,
采用json格式,将解封装得到的数据条目,以键值对的形式进行组装,生成流量检测记录。
在其中一些实施例中,生成流量检测记录,并将其存储至数据库之后,所述方法还包括:
基于所述流量检测记录生成多个预设维度的可视化数据,将所述可视化数据发送至用户终端展示,其中,所述预设维度包括:云区域维度、可用区维度、集群维度、节点维度和组件维度。
第二方面,本申请提供了一种图计算平台的流量处理系统,在原有云服务无感知的情况下实现,所述系统包括:控制器、代理控制器和流量分析器,其中,
所述控制器用于,配置流量拦截规则和流量分析规则,并将其发送至图计算平台中的各个组件;
所述代理控制器用于,拦截网络流量并将其加速转发,同时,对所述网络流量进行镜像处理,并根据所述流量拦截规则获取镜像流量,以及,
采用VxLAN协议,将所述镜像流量进行报文封装得到数据包,对所述数据包添加标记信息之后将其发送至流量分析器,其中,所述代理控制器以sidecar形式部署在各个组件上;
所述流量分析器用于,根据所述流量分析规则解析所述数据包,生成流量检测记录,并将其存储至数据库。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的方法。
相比于相关技术,本申请实施例提供的一种图计算平台的流量处理方法,相比较于传统方式,至少具备如下有益效果:
1.基于云原生的设计理念,自动化高效的生成流量检测记录,无需从云厂商购买流量日志和自行分析,在节省成本的情况下,提升了检测效率和准确率;
2.通过边车部署代理控制器、流量镜像、以及巧妙的利用通信协议进行流量标记等手段,对原平台组件无侵入,在不干扰原有服务正确性和效率的情况下,实现流量检测;
3.充分利用Kubernetes系统的eBFF特性和HPA自动扩容属性,实现了网络流量的加速转发,以及在数据处理压力下进行动态分配负载,提升了转发速度和分析效率。
4.由于拦截规则和代理控制器都可以通过自定义的方式配置,因此可以根据需求灵活设置,提升了系统便捷性和易用性;
5.可以适配当前各类云厂商,且最终生成的流量检测记录,可以从多个维度进行可视化展示,从而提升了用户体验。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种图计算平台的流量处理方法的应用环境示意图;
图2是根据本申请实施例的一种图计算平台的流量处理方法的流程图;
图3是根据本申请实施例的一种对镜像流量数据包进行解封装处理的示意图;
图4是根据本申请实施例的一种流量加速处理的示意图;
图5是根据本申请实施例的一种图计算平台的流量处理系统的结构框图;
图6是根据本申请实施例的一种图计算平台的流量处理系统的架构图;
图7是根据本申请实施例的电子设备的内部结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本申请提供的一种图计算平台的流量处理方法,可以应用在如图1所示的应用环境中,图1是根据本申请实施例的一种图计算平台的流量处理方法的应用环境示意图。如图1所示,图计算平台由控制器10多个组件11组成,其中,控制器10即平台的控制面,其用于制定拦截规则、分析规则和流量转发规则等底层控制逻辑,组件10即平台的数据面,其用于根据上述底层控制逻辑,执行具体的业务,例如,接收、处理和转发流量等。进一步的,组件10上部署的代理控制器可以采集网络流量并进行流量镜像处理,以及将其发送分析器进行分析,进而生成反映系统整体运行状况的流量检测记录。
需要说明的是,本申请中的图计算平台包括但不限于是基于Kubernetes系统、Mesos系统和OpenShift系统等的PaaS平台,进一步的,本申请方案包括但不限于应用在在阿里云、华为云等云计算环境下。
本申请提供了一种图计算平台的流量处理方法,图2是根据本申请实施例的一种图计算平台的流量处理方法的流程图,如图2所示,该流程包括如下步骤:
S201,控制器配置流量拦截规则和流量分析规则,并将其发送至图计算平台中的各个组件;
其中,该流量拦截规则和流量分析规则,可以由平台设计人员结合实际情况灵活制定,且可以根据需求变动及时更新。具体的,可以通过后端设备与平台的控制器建立网络通道,通过操作后端设备实现在控制器中配置上述规则。
S202,代理控制器拦截网络流量并将其加速转发,同时,对网络流量进行镜像处理,并根据流量拦截规则获取镜像流量,以及,采用VxLAN协议,将镜像流量进行报文封装得到数据包,并对数据包添加标记信息之后将其发送至流量分析器,其中,代理控制器以sidecar形式部署在组件上;
本实施例,上述代理控制器以sidecar(边车)形式部署在各个组件上,其中,Sidecar模式是一种将应用功能从应用本身剥离出来作为单独进程的方式。在这种模式下,可以向应用无侵入的添加多种功能,从而避免了为满足向应用添加额外的配置代码。举例来说,就像边车加装在摩托车上一样,对应的,在软件架构中,sidecar可以附加到主应用(或叫父应用)上,以扩展或增强功能特性,同时还不干扰应用原有的运行逻辑。需要说明的是,本实施例中还可以根据业务需求,灵活配置代理控制器的工作状态,即可以根据需求实现某些目标组件的检测或不检测。
其中,代理控制器可以拦截宿主组件的进出网络流量(即组件向外发送的流量和外部发往组件的流量)。在拦截流量之后,将同时处理如下两个进程:
进程1:
根据流量请求中携带的Service进行路由和转发,即相当于,首先按照常规逻辑,将流量发送至该发送的目标节点上去。可选的,在该进程中,可以基于Kubernetes系统的eBPF特性,使用XDP模式对流量进行加速转发。
进程2:
对于上述网络流量,进行镜像处理,再根据上述流量拦截规则获取镜像流量。此处需要说明的是,流量镜像即相当于,将原本的流量额外复制一份流量镜像(Mirroring/traffic-shadow)到镜像服务中去。本实施例中,通过流量镜像转发,可以在不影响原有线上服务的情况下,实现对流量的分析处理。
对应的,上述步骤S201中已将流量拦截规则下发至各个组件,因此,代理控制器可以获取及更新上述流量拦截规则。
进一步的,在过滤得到镜像流量之后,采用VxLAN协议对其进行报文封装处理,并在协议的预留字段,添加该数据包的标记信息,之后将其发送至解析组件。
本实施例中,为了尽可能实现原服务无感知流量检测,不仅要保证原有服务逻辑的正确性,同时还要保证不影响原有服务逻辑的处理效率。因此,若采用相关技术中的处理方式:将采集到的镜像流量进行就地解析,由于解析所消耗的算力和带宽限制,则必然会影响到原服务的处理效率。
而在本实施例中,将镜像流量转发至其他位置进行解析,同时,巧妙的利用通信协议的预留字段添加流量包的描述性信息。基于这种方式,不仅不会影响原服务的处理效率,同时,也无需对流量数据包执行任何编解码处理,这无疑简化了流程,同时还提升了系统的整体处理效率。
S203,流量分析器根据流量分析规则解析数据包,生成流量检测记录,并将其存储至数据库。
其中,该流量分析器也可以与代理控制器相同,以边车形式部署在各个组件上。对应的,步骤S201中已将流量分析规则下发至各个组件,因此,分析器可以获取该分析规则,并根据该分析规则对镜像流量的数据包进行解析处理,得到流量检测记录,之后将其按照一定格式存储至数据库。
需要说明的是,设计人员可以根据业务变动,实时更新流量拦截规则和分析规则,对应的,部署在各个组件上的代理控制器和流量分析器,也将同步更新上述规则,并根据新的规则执行对应的任务。
通过上述步骤S201至S203,相比较于相关技术中通过分析vpc流量日志进行流量监控的方法,本申请实施例通过控制器配置规则、通过代理控制器进行流量拦截、流量镜像和流量转发,以及通过流量分析器进行分析等;在原有云服务无感知的情况下实现了精准、高效且自动化的流量检测。
可以利用这些流量记录,对当前云服务进行详细分析,例如,可以确定在当前云服务下,哪些节点资源消耗特别高,哪些节点处于空闲状态。进一步的,基于这些流量分析结果,可以为云服务的计算调度提供有用的算法支撑依据,从而提升云服务的运营能力和治理能力。
在其中一些实施例中,本申请技术方案中可以应用在基于Kubernetes系统的Paas图计算平台上,其中,Paas图计算平台中部署有coredns用于解析Kubernetes系统的域名;图计算平台的各个组件经过容器化处理,且通过Kubernetes系统的Service实现组件间的通信。
具体的,在检测流量任务开始前,需要执行如下操作:
步骤1:部署一套Kubernetes系统作为PaaS平台基座,部署coredns用于Kubernetes系统内部的域名解析;
步骤2:将图计算平台每个组件容器化,使用Kubernetes系统的资源对象模型部署这些组件;
步骤3:图计算平台组件开启域名访问模式,实现基于Kubernetes内部service的网络通信。
当然,本申请也可以选择除Kubernetes之外的其他容器云管理系统,由于Kubernetes系统在本领域中相对成熟且使用较为便捷,因此,本实施例中选用Kubernetes系统作为具体实例。
在其中一些实施例中,对网络流量进行镜像处理,提供有两种方式,可选的:
方式1:
代理控制器在TC(Traffic Control)模式下,通过调用操作系统内核的TC命令,对网络流量进行镜像处理,具体的:在TC模式下,调用TC命令配置ingress、egress、qdisc规则,进一步的,再调用TC命令配置filter规则,将匹配的流量镜像到VxLAN隧道网口。
方式2:
代理控制器在libpcap模式下,通过内部的pcap调用库,对网络流量进行镜像处理。具体的:在libpcap模式下,通过内置pcap的调用库调用pcap_compile与pcap_setfilter函数,嗅探目标网卡的进出口流量;进一步的,调用pcap提供的pcap_sendpacket函数将流量发送到VxLAN隧道网口。
在其中一些实施例中,为了不侵入原有镜像流量数据以及简化流程,本申请中,采用VxLAN协议,对镜像流量的数据包添加标记信息,具体包括:
在对镜像流量进行报文封装之后,代理控制器获取镜像流量对应的属性信息,其中,属性信息包括:云区域、可用区、集群名、节点名和组件名;进一步的,确定VxLAN协议的Reserved预留字段,通过将属性信息添加在Reserved预留字段上,实现对镜像流量添加标记信息。
具体举例如下:
使用VxLAN协议封装将镜像流量封装之后,将其填充到VxLAN header后,进一步的,对流量的描述性信息,即镜像流量的元数据进行编码,之后将编码结果填充到VxLANheader Reserved字段内。
如下表1是根据本申请实施例的元数据的示意表:
表1
在其中一些实施例中,流量分析器利用Kubernetes系统的HPA属性,在弹性扩缩容的情况下动态解析数据包,得到流量检测记录。
具体的,由于流量分析属于CPU密集型应用,其算力消耗较大。因此,在某个节点上面临较大分析压力,导致CPU使用率过高时;可以基于上述HPA属性触发横向扩容,进而把分析负载分配至邻近的其他节点上,由多个节点同步分析,从而减少CPU损耗,提升整体分析效率。
此处需要说明的是,上述在Kubernetes系统下基于HPA特性进行动态解析只是一个具体举例;可以理解,当本方案在采用其他容器云管理系统,在面临节点负载过高时,同样可以通过这类系统提供的与HPA相似的横向扩容机制,进行动态解析。
在其中一些实施例中,根据流量分析规则解析数据包,具体包括:
定时从流量控制程序同步分析规则,分析规则包括:协议分析、调用链分析、元数据分析,其中;
协议分析:校验数据包对应的的封装协议是否为可支持协议,可选的,可支持协议有gRPC、Thrift、Triple、JSON-RPC等;
调用链分析:校验数据包的文件头是否包含TraceID(跟踪ID)、SpanID(跨度ID)和ParentID(父节点ID);
元数据分析:校验数据包对应的通信协议中,Reserved预留字段是否包含标记信息,即是否包含元数据:Region、AZ可用区、集群、节点和组件的编码。
若三者均是,按照图3所示方式对数据包进行解封装,并计算数据包中原始数据的大小,以及,采用json格式,将解封装得到的数据条目,以键值对的形式进行组装处理,其中,所需字段为metric、timestamp、value、tags。
在其中一些实施例中,生成流量检测记录,并将其存储至数据库之后,需要对流量检测进行合理展示,以便于设计人员查询分析,可选的:
基于流量检测记录生成多个预设维度的可视化数据,将可视化数据发送至用户终端展示,其中,预设维度包括:云区域维度、可用区维度、集群维度、节点维度和组件维度。
在其中一些实施例中,图4是根据本申请实施例的一种流量加速处理的示意图,如图4所示,流量加速转发的具体步骤包括:
1.在代理控制器中实现BPF插件;
2.通过LLVM或者GCC工具,将BPF插件编译成BPF字节码;
3.用户空间BPF ELF加载器解析BPF字节码;
4.加载器通过bpf()系统调用将解析后的对象文件注入内核;
5.内核验证BPF指令,对其执行即时编译(JIT),返回程序的一个新文件描述符;
6.将文件描述符附加(attach)到内核网络子系统;
7.内核网络子系统将BPF程序转移(offload)到网卡;
8.用户空间从内核管理的共享map或环形缓冲区中读取数据,实现流量转发加速。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例还提供了一种图计算平台的流量处理系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本申请实施例的一种图计算平台的流量处理系统的结构框图,如图5所示,该系统包括:控制器50、代理控制器51和流量分析器52,其中,
控制器50用于,配置流量拦截规则和流量分析规则,并将其发送至图计算平台中的各个组件;
代理控制器51用于,拦截网络流量并将其加速转发,同时,对网络流量进行镜像处理,并根据流量拦截规则获取镜像流量,以及,
采用VxLAN协议,将镜像流量进行报文封装得到数据包,对数据包添加标记信息之后将其发送至流量分析器,其中,代理控制器以sidecar形式部署在组件上;
流量分析器52用于,根据流量分析规则解析数据包,生成流量检测记录,并将其存储至数据库。
图6是根据本申请实施例的一种图计算平台的流量处理系统的架构图。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种图计算平台的流量处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
在一个实施例中,图7是根据本申请实施例的电子设备的内部结构示意图,如图7所示,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图7所示。该电子设备包括通过内部总线连接的处理器、网络接口、内存储器和非易失性存储器,其中,该非易失性存储器存储有操作系统、计算机程序和数据库。处理器用于提供计算和控制能力,网络接口用于与外部的终端通过网络连接通信,内存储器用于为操作系统和计算机程序的运行提供环境,计算机程序被处理器执行时以实现一种图计算平台的流量处理方法,数据库用于存储数据。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域的技术人员应该明白,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (7)
1.一种图计算平台的流量处理方法,其特征在于,在原有云服务无感知的情况下实现,所述方法包括:
控制器配置流量拦截规则和流量分析规则,并将其发送至图计算平台中的各个组件;
代理控制器拦截进出网络流量并将其加速转发,同时,对所述网络流量进行镜像处理,并根据所述流量拦截规则对所述网络流量进行过滤,获取镜像流量,以及,
采用VxLAN协议,将所述镜像流量进行报文封装得到数据包,并对所述数据包添加标记信息之后将其发送至流量分析器,其中,所述代理控制器以sidecar形式部署在各个组件上,采用VxLAN协议,对所述数据包添加标记信息包括:
在对所述镜像流量进行报文封装之后,所述代理控制器获取所述镜像流量对应的属性信息,其中,所述属性信息包括:云区域、可用区、集群名、节点名和组件名;
确定所述VxLAN协议的Reserved预留字段,通过将所述属性信息的编码结果添加在所述Reserved预留字段上,实现对所述镜像流量添加标记信息;
所述流量分析器,根据所述流量分析规则解析所述数据包,生成流量检测记录,并将其存储至数据库,其中,所述流量分析器利用Kubernetes系统的HPA属性,在弹性扩缩容的情况下,动态解析所述数据包,把分析负载分配至邻近的其他节点,由多个节点同步分析,得到所述流量检测记录;
其中,根据所述流量分析规则解析所述数据包,包括:校验所述数据包对应的的封装协议是否为可支持协议,以及,校验所述数据包的文件头是否包含跟踪ID、跨度ID和父节点ID,以及,校验所述数据包对应的通信协议中,Reserved预留字段是否包含所述标记信息;若三者均是,对所述数据包进行解封装,并计算所述数据包中原始数据的大小,以及,采用json格式,将解封装得到的数据条目,以键值对的形式进行组装,生成流量检测记录;
所述代理控制器拦截进出网络流量并将其加速转发包括:在所述代理控制器中实现BPF插件,通过LLVM或者GCC工具将所述BPF插件编译成BPF字节码;通过用户空间BPF ELF加载器解析BPF字节码得到解析对象文件;所述加载器BPF ELF加载器通过bpf系统调用所述解析对象文件并将其注入系统内核,并指示所述系统内核验证BPF指令,对其进行即时编译,返回程序的新文件描述符;将所述文件描述符附加到内核网络子系统,指示所述内核网络子系统将BPF程序转移到网卡;所述用户空间从内核管理的共享地图或环形缓冲区中读取数据。
2.根据权利要求1所述的方法,其特征在于,
所述方法应用在基于Kubernetes系统的Paas图计算平台上,其中,所述Paas图计算平台中部署有coredns,用于解析所述Kubernetes系统的域名;
所述图计算平台的各个组件经过容器化处理,且通过Kubernetes系统的Service实现组件间的通信。
3.根据权利要求1所述的方法,其特征在于,对所述网络流量进行镜像处理包括:
所述代理控制器在TC模式下,通过调用操作系统内核的TC命令,对所述网络流量进行镜像处理,或者,
所述代理控制器在libpcap模式下,通过内置pcap调用库,对所述网络流量进行镜像处理。
4.根据权利要求2所述的方法,其特征在于,生成流量检测记录,并将其存储至数据库之后,所述方法还包括:
基于所述流量检测记录生成多个预设维度的可视化数据,将所述可视化数据发送至用户终端展示,其中,所述预设维度包括:云区域维度、可用区维度、集群维度、节点维度和组件维度。
5.一种图计算平台的流量处理系统,在原有云服务无感知的情况下实现,其特征在于,所述系统包括:控制器、代理控制器和流量分析器,其中,
所述控制器用于,配置流量拦截规则和流量分析规则,并将其发送至图计算平台中的各个组件;
所述代理控制器用于,拦截网络流量并将其加速转发,同时,对所述网络流量进行镜像处理,并根据所述流量拦截规则获取镜像流量对所述网络流量进行过滤,以及,
采用VxLAN协议,将所述镜像流量进行报文封装得到数据包,对所述数据包添加标记信息之后将其发送至流量分析器,其中,所述代理控制器以sidecar形式部署在各个组件上,采用VxLAN协议,对所述数据包添加标记信息包括:
在对所述镜像流量进行报文封装之后,所述代理控制器获取所述镜像流量对应的属性信息,其中,所述属性信息包括:云区域、可用区、集群名、节点名和组件名;
确定所述VxLAN协议的Reserved预留字段,通过将所述属性信息的编码结果添加在所述Reserved预留字段上,实现对所述镜像流量添加标记信息;
所述流量分析器用于,根据所述流量分析规则解析所述数据包,生成流量检测记录,并将其存储至数据库,其中,所述流量分析器利用Kubernetes系统的HPA属性,在弹性扩缩容的情况下,动态解析所述数据包,把分析负载分配至邻近的其他节点,由多个节点同步分析,得到所述流量检测记录;
其中,根据所述流量分析规则解析所述数据包,包括:校验所述数据包对应的的封装协议是否为可支持协议,以及,校验所述数据包的文件头是否包含跟踪ID、跨度ID和父节点ID,以及,校验所述数据包对应的通信协议中,Reserved预留字段是否包含所述标记信息;若三者均是,对所述数据包进行解封装,并计算所述数据包中原始数据的大小,以及,采用json格式,将解封装得到的数据条目,以键值对的形式进行组装,生成流量检测记录;
所述代理控制器拦截进出网络流量并将其加速转发包括:在所述代理控制器中实现BPF插件,通过LLVM或者GCC工具将所述BPF插件编译成BPF字节码;通过用户空间BPF ELF加载器解析BPF字节码得到解析对象文件;所述加载器BPF ELF加载器通过bpf系统调用所述解析对象文件并将其注入系统内核,并指示所述系统内核验证BPF指令,对其进行即时编译,返回程序的新文件描述符;将所述文件描述符附加到内核网络子系统,指示所述内核网络子系统将BPF程序转移到网卡;所述用户空间从内核管理的共享地图或环形缓冲区中读取数据。
6.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4中任一项所述的方法。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210471246.1A CN114928562B (zh) | 2022-04-28 | 2022-04-28 | 一种图计算平台的流量处理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210471246.1A CN114928562B (zh) | 2022-04-28 | 2022-04-28 | 一种图计算平台的流量处理方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114928562A CN114928562A (zh) | 2022-08-19 |
CN114928562B true CN114928562B (zh) | 2023-07-14 |
Family
ID=82805701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210471246.1A Active CN114928562B (zh) | 2022-04-28 | 2022-04-28 | 一种图计算平台的流量处理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114928562B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117009036B (zh) * | 2023-08-09 | 2024-05-28 | 北京志凌海纳科技股份有限公司 | 一种基于分布式proxy解决vpc服务更新方法和系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106375384B (zh) * | 2016-08-28 | 2019-06-18 | 北京瑞和云图科技有限公司 | 一种虚拟网络环境中镜像网络流量的管理系统和控制方法 |
CN108777643A (zh) * | 2018-06-08 | 2018-11-09 | 武汉思普崚技术有限公司 | 一种流量可视化平台系统 |
US11516050B2 (en) * | 2019-06-21 | 2022-11-29 | Amazon Technologies, Inc. | Monitoring network traffic using traffic mirroring |
CN111901203B (zh) * | 2020-08-03 | 2022-03-29 | 北京启明星辰信息安全技术有限公司 | 一种捕获网络流量的方法及Kubernetes集群 |
CN114006839B (zh) * | 2021-09-27 | 2023-06-23 | 中盈优创资讯科技有限公司 | 一种基于eBPF的流量采集方法及装置 |
-
2022
- 2022-04-28 CN CN202210471246.1A patent/CN114928562B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114928562A (zh) | 2022-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112087454B (zh) | 一种物联网网关设备的通信方法、装置、设备及储存介质 | |
CN102624881B (zh) | 一种面向移动设备的服务缓存系统架构及开发方法 | |
CN107635027B (zh) | 一种域名解析方法、介质、装置和计算设备 | |
CN102667717A (zh) | 用于编译的方法、装置和系统 | |
CN109672580A (zh) | 全链路监控方法、装置、终端设备及存储介质 | |
CN108647032B (zh) | 应用加载方法及装置、计算机装置和计算机可读存储介质 | |
CN106155749A (zh) | 一种监控插件扩展方法及装置 | |
CN111737527A (zh) | 异构终端的数据处理方法、装置、电子设备和存储介质 | |
CN105573733A (zh) | 浏览器与web前端通信的方法、web前端及系统 | |
Hackmann et al. | Agimone: Middleware support for seamless integration of sensor and ip networks | |
CN114928562B (zh) | 一种图计算平台的流量处理方法和系统 | |
CN111934940B (zh) | 配置化的服务请求方法及装置、电子设备和存储介质 | |
CN111294235A (zh) | 数据处理方法、装置、网关及可读存储介质 | |
CN104010045A (zh) | 基于云平台的移动节点执行任务的方法 | |
JP2005228183A (ja) | プログラム実行方法、および、プログラム実行のための計算機システム | |
CN107111495A (zh) | 用于虚拟和接口方法调用的装置和方法 | |
US20140215035A1 (en) | Distribution of application components among devices | |
CN115333993B (zh) | 容器环境下自定义容器组路由的方法、设备及存储介质 | |
CN115002011B (zh) | 流量双向测试方法、装置、电子设备及存储介质 | |
CN110147294A (zh) | 调试信息的获取方法、装置、终端及计算机可读存储介质 | |
Zhang et al. | A webpage offloading framework for smart devices | |
CN115826845A (zh) | 存储资源的分配方法和装置、存储介质、电子装置 | |
Bracchi et al. | Performability modeling of mobile software systems | |
CN114116367B (zh) | 一种生成日志的方法及电子设备 | |
CN114745415B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |