CN114039875B - 一种基于eBPF技术的数据采集方法、装置及系统 - Google Patents
一种基于eBPF技术的数据采集方法、装置及系统 Download PDFInfo
- Publication number
- CN114039875B CN114039875B CN202111278048.5A CN202111278048A CN114039875B CN 114039875 B CN114039875 B CN 114039875B CN 202111278048 A CN202111278048 A CN 202111278048A CN 114039875 B CN114039875 B CN 114039875B
- Authority
- CN
- China
- Prior art keywords
- ebpf
- flow
- node
- data
- network card
- 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
- 238000000034 method Methods 0.000 title claims abstract description 114
- 238000005516 engineering process Methods 0.000 title claims abstract description 23
- 230000008569 process Effects 0.000 claims abstract description 60
- 238000013500 data storage Methods 0.000 claims abstract description 51
- 238000001595 flow curve Methods 0.000 claims abstract description 25
- 238000012545 processing Methods 0.000 claims description 14
- 230000006870 function Effects 0.000 claims description 12
- 238000012827 research and development Methods 0.000 abstract description 4
- 101150053844 APP1 gene Proteins 0.000 description 8
- 101100055496 Arabidopsis thaliana APP2 gene Proteins 0.000 description 8
- 101100189105 Homo sapiens PABPC4 gene Proteins 0.000 description 8
- 102100039424 Polyadenylate-binding protein 4 Human genes 0.000 description 8
- 101100016250 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) GYL1 gene Proteins 0.000 description 8
- 102100038359 Xaa-Pro aminopeptidase 3 Human genes 0.000 description 8
- 101710081949 Xaa-Pro aminopeptidase 3 Proteins 0.000 description 8
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000013480 data collection Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/02—Capturing of monitoring data
- H04L43/028—Capturing of monitoring data by filtering
-
- 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
-
- 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/22—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于eBPF技术的数据采集方法、装置及系统,该方法通过在节点机器中的系统内核层嵌入eBPF流量采集模块,该模块通过调用内核协议栈的网络函数将用户访问应用程序的流量日志获取后,写入数据存储模块,以由前端数据中心读取节点中的数据存储模块中的流量日志数据,并绘制流量曲线,以供运营分析。整个过程简单高效,在系统内核层注入eBPF流量采集模块,直接截取访问应用程序的数据,无需在每个应用程序中开发单独的流量采集模块,减少研发的重复工作,提高了流量采集的效率。
Description
技术领域
本发明涉及数据采集技术领域,具体地,涉及一种基于eBPF技术的数据采集方法、装置及存储介质。
背景技术
CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。eBPF起源于BPF (Berkeley Packet Filter),BPF是一种网络过滤器,为捕捉和过滤符合特定规则的网络包而设计的,过滤器为运行在基于寄存器的虚拟机上的程序。节点(英语:node,拉丁语:nodus)在电信网络中的概念是一个连接点,表示一个再分发点(redistribution point)或一个通信端点(一些终端设备)。节点的定义依赖于所提及的网络和协议层。一个物理网络节点是一个连接到网络的有源电子设备,能够通过通信通道发送、接收或转发信息。
通常情况下,随着用户访问应用的需求增加,用户的访问呈现出多样化的趋势,也就是说用户不会仅仅只访问单个应用程序,而是会访问多个应用程序。从运营分析的角度来看,用户查看访问每个应用程序的流量曲线是一个比较刚性的需求,要实现这个刚性需求,通常需要在该应用程序中编写采集流量模块代码,该模块功能是将用户访问应用程序的日志采集存储起来,然后提供给前端平台界面,进行可视化展示,由于用户访问多种应用程序,那么每个应用程序都要单独编写流量采集模块,整个编码过程相对繁琐,工作效率不高。例如,现有技术方案可如图1所示,数据采集步骤如下:
1)用户终端请求访问应用程序,假设需要访问机器中的APP1、APP2、APP3,用户终端请求到边缘节点中的真实机器的物理网卡eth0;
2)用户请求流到系统内核层的XDP网卡程序;
3)用户请求被导向各种应用程序APP1、APP2、APP3;
4)在各个APP中的流量采集模块将用户访问日志写入机器的数据存储模块;
5)前端数据中心读取机器的数据存储模块的流量日志数据,绘制出访问各个应用程序的流量曲线供运营分析;
6)结束。
现有技术方案的主要问题是:每个应用程序都需要开发流量采集模块,工作重复且相对繁琐,效率不高。有鉴于此,特提出本申请。
发明内容
本发明针对现有技术的不足而提出一种基于eBPF技术的数据采集方法、装置及系统,从而解决了现有技术中用户访问每个应用程序都需要开发流量采集模块,导致的工作重复且相对繁琐,以及效率不高的问题。
本发明提供了一种基于eBPF技术的数据采集方法,包括:
所述节点机器中的物理网卡接收用户终端访问应用程序的请求;所述请求中包含用户待访问APP的信息;其中,在节点机器中的系统内核层写入有XDP网卡驱动程序,并在所述系统内核层中注入有eBPF流量采集模块;
所述节点机器中的物理网卡将所述请求流到系统内核层的XDP网卡驱动程序;
所述系统内核层中的eBPF流量采集模块将用户待访问APP的信息返回给eBPF应用进程,并由所述eBPF应用进程将相应的用户访问日志信息写入数据存储模块形成流量日志数据,以由前端数据中心读取所述数据存储模块的流量日志数据,绘制流量曲线。
进一步地,作为一个可执行方案,所述方法还包括:
所述系统内核层中的eBPF流量采集模块调用内核协议栈的TCP/UDP网络函数,将用户访问APP的信息返回给eBPF进程进行归类处理,并由eBPF进程将相应的用户访问日志信息进行归类处理后写入数据存储模块;以由前端数据中心读取数据存储模块的流量日志数据,绘制流量曲线。
进一步地,作为一个可执行方案,所述用户待访问APP的信息中至少包含网卡Id、IP地址、进程Id、TCP数据包和UDP数据包。
进一步地,作为一个可执行方案,所述方法还包括:
所述节点机器中的物理网卡接收用户终端访问应用程序的请求;所述请求中包含用户待访问docker容器ID和APP的信息;
所述节点机器中的物理网卡将所述请求流到系统内核层的XDP网卡驱动程序;
所述系统内核层中的eBPF流量采集模块将用户待访问的docker容器ID和APP的信息返回给eBPF应用进程,并由所述eBPF应用进程将相应的用户访问日志信息写入所述数据存储模块形成流量日志数据,以由前端数据中心读取所述数据存储模块的流量日志数据,绘制流量曲线。
进一步地,本发明还提供了另一种基于eBPF技术的数据采集方法,所述方法还包括:
用户终端向节点发出访问应用程序的请求,所述请求中包含用户待访问APP的信息;其中,在所述节点机器中的系统内核层写入有XDP网卡驱动程序,并在节点机器中的系统内核层中注入eBPF流量采集模块;以由所述节点机器中的物理网卡将所述请求流到系统内核层的XDP网卡驱动程序;所述系统内核层中的eBPF流量采集模块将用户待访问APP的信息返回给eBPF应用进程,并由所述eBPF应用进程将相应的用户访问日志信息写入数据存储模块,以由前端数据中心读取所述数据存储模块的流量日志数据,绘制流量曲线。
进一步地,作为一个可执行方案,所述方法还包括:
所述用户终端向节点发出访问应用程序的请求,从所述eBPF流量采集模块流到应用层中目标的APP程序中;以由应用层的APP程序返回请求内容,从所述eBPF流量采集模块流到物理网卡响应出去。
进一步地,作为一个可执行方案,所述用户待访问APP的信息中至少包含网卡Id、IP地址、进程Id、TCP数据包和UDP数据包。
进一步地,本发明还提供了另一种基于eBPF技术的数据采集方法,所述方法还包括:
前端数据中心读取节点中的数据存储模块中的流量日志数据,绘制流量曲线;所述流量日志数据是由所述节点机器中的物理网卡将用户终端发出的请求流到系统内核层的XDP网卡驱动程序;所述系统内核层中的eBPF流量采集模块将用户待访问APP的信息返回给eBPF应用进程,并由所述eBPF应用进程将相应的用户访问日志信息写入数据存储模块中得来的;其中,所述请求中包含用户待访问APP的信息;以及,在所述节点机器中的系统内核层写入有XDP网卡驱动程序,并在节点机器中的系统内核层中注入eBPF流量采集模块。
进一步地,本发明还提供了一种基于eBPF技术的数据采集装置,包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,用于执行上述所述的方法。
进一步地,本发明还提供了另一种基于eBPF技术的数据采集系统,包括用户终端、节点和前端数据中心;
所述用户终端,用于向节点发出访问应用程序的请求,所述请求中包含用户待访问APP的信息;
所述节点,用于节点机器中的物理网卡接收用户终端访问应用程序的请求,并将所述请求流到内核层的XDP网卡驱动程序;所述节点机器中的系统内核层中的eBPF流量采集模块将用户待访问APP的信息返回给eBPF应用进程,并由所述eBPF应用进程将相应的用户访问日志信息写入数据存储模块形成流量日志数据;其中,在节点机器中的系统内核层写入有XDP网卡驱动程序,并在节点机器中的系统内核层中注入eBPF流量采集模块;
所述前端数据中心,用于读取节点中的数据存储模块中的流量日志数据,并绘制流量曲线,以供运营分析。
通过采用上述技术方案,本发明可以取得以下技术效果:与现有技术相比,该基于eBPF技术的数据采集方法,通过节点机器中的系统内核层中注入eBPF流量采集模块,该模块通过调用内核协议栈的网络函数并将用户访问应用程序的流量日志获取后,写入数据存储模块,以由前端数据中心读取节点中的数据存储模块中的流量日志数据,并绘制流量曲线,以供运营分析。整个过程简单高效,在系统内核层注入eBPF流量采集模块,直接截取访问应用程序的数据,无需在每个应用程序中开发单独的流量采集模块,减少研发的重复工作,提高了流量采集的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1绘示了现有技术中流量数据采集方法的流程示意图;
图2本发明实施例的基于eBPF技术的数据采集方法的流程示意图;
图3绘示了图2中的基于eBPF技术的数据采集方法的网络拓扑示意图;
图4绘示了图2中的基于eBPF技术的数据采集方法的另一流程示意图;
图5绘示了图4中的基于eBPF技术的数据采集方法的另一网络拓扑示意图;
图6绘示了本发明实施例的基于eBPF技术的数据采集系统的结构示意图。
实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明提供了一种基于eBPF技术的数据采集方法、装置及系统,该方法通过在节点机器中的系统内核层嵌入eBPF流量采集模块,该模块通过调用内核协议栈的网络函数并将用户访问应用程序的流量日志获取后,写入数据存储模块,以由前端数据中心读取节点中的数据存储模块中的流量日志数据,并绘制流量曲线,以供运营分析。整个过程简单高效,在系统内核层注入eBPF流量采集模块,直接截取访问应用程序的数据,无需在每个应用程序中开发单独的流量采集模块,减少研发的重复工作,提高了流量采集的效率。
实施例
如图2所示,本发明实施例提供了一种基于eBPF技术的数据采集方法,包括:
步骤201:所述节点机器中的物理网卡接收用户终端访问应用程序的请求;所述请求中包含用户待访问APP的信息;其中,在节点机器中的系统内核层写入有XDP网卡驱动程序,并在系统内核层中注入eBPF流量采集模块。
步骤202:所述节点机器中的物理网卡将所述请求流到系统内核层的XDP网卡驱动程序。
步骤203:所述系统内核层中的eBPF流量采集模块将用户待访问APP的信息返回给eBPF应用进程,并由所述eBPF应用进程将相应的用户访问日志信息写入数据存储模块形成流量日志数据,以由前端数据中心读取所述数据存储模块的流量日志数据,绘制流量曲线。
其中,所述用户待访问APP的信息中至少包含网卡Id、IP地址、进程Id、TCP数据包和UDP数据包。
进一步地,在一个实例中,所述系统内核层中的eBPF流量采集模块调用内核协议栈的TCP/UDP网络函数,将用户访问APP的信息返回给eBPF进程进行归类处理,并由eBPF进程将相应的用户访问日志信息进行归类处理后写入数据存储模块;以由前端数据中心读取数据存储模块的流量日志数据,绘制流量曲线。
具体地,如图3所示,例如用户需要访问机器中的APP1、APP2、APP3等应用程序,用户终端请求到边缘节点中的真实机器的物理网卡,首先,在节点机器中的系统内核层已经写入有XDP网卡驱动程序,并在系统内核层中注入eBPF流量采集模块。具体步骤如下:
步骤S1:用户终端向节点发出访问应用程序的请求,所述请求中包含用户待访问APP1、APP2、APP3的信息,当然也可包括其他具有标志性的信息,本发明实施例对此不作赘述;具体地,可按照待访问时间先后顺序排列,本发明实施例对此不作限定。
步骤S2:节点机器中的物理网卡接收用户终端访问应用程序的请求。
步骤S3:节点机器中的物理网卡将所述请求流到系统内核层的XDP网卡驱动程序。
步骤S4:XDP程序将所述请求流到内核协议栈。
步骤S5:内核协议栈将所述请求流到eBPF流量采集模块。
步骤S6:系统内核层中的eBPF流量采集模块调用内核协议栈的TCP/UDP网络函数,将用户待访问APP1、APP2、APP3的信息存入eBPF_map,eBPF_map将请求数据信息返回给eBPF进程进行归类处理。
步骤S7:eBPF进程将相应的用户访问日志信息进行归类处理后写入数据存储模块。
步骤S8:前端数据中心读取数据存储模块的流量日志数据,绘制流量曲线,以供经营分析。
进一步地,随着docker技术在边缘计算领域应用越来越广泛,在边缘节点单机中的docker容器会逐渐增多,相应的,容器中的应用程序也会迅速增多,本发明提出的方法也可以针对容器中的应用程序采集,如图4所示,具体地步骤如下:
步骤401:所述节点机器中的物理网卡接收用户终端访问应用程序的请求;所述请求中包含用户待访问docker容器ID和APP的信息。
步骤402:所述节点机器中的物理网卡将所述请求流到系统内核层的XDP网卡驱动程序。
步骤403:所述系统内核层中的eBPF流量采集模块将用户待访问的docker容器ID和APP的信息返回给eBPF应用进程,并由所述eBPF应用进程将相应的用户访问日志信息写入所述数据存储模块形成流量日志数据,以由前端数据中心读取所述数据存储模块的流量日志数据,绘制流量曲线。
具体地,如图5所示,例如用户需要访问机器中的APP1、APP2、APP3等应用程序,用户终端请求到边缘节点中的真实机器的物理网卡,首先,在节点机器中的系统内核层已经写入有XDP网卡驱动程序,并在系统内核层中注入eBPF流量采集模块。具体步骤如下:
步骤A1:用户终端向节点发出访问应用程序的请求,所述请求中包含用户待访问docker容器ID和APP1、APP2、APP3等应用程序的信息;具体地,可按照待访问时间先后顺序排列,本发明实施例对此不作限定。
步骤A2:节点机器中的物理网卡接收用户终端访问应用程序的请求。
步骤A3:节点机器中的物理网卡将所述请求流到系统内核层的XDP网卡驱动程序。
步骤A4:系统内核层中的eBPF流量采集模块将用户待访问docker容器ID和APP1、APP2、APP3的信息返回给eBPF应用进程,并由所述eBPF应用进程将相应的用户访问日志信息写入数据存储模块形成流量日志数据。
步骤A5:前端数据中心读取所述数据存储模块的流量日志数据,绘制流量曲线,以供经营分析。
本发明实施例一提供了一种基于eBPF技术的数据采集方法、装置及系统,该方法通过在系统内核层中注入eBPF流量采集模块,并将用户访问应用程序的流量日志获取后,写入数据存储模块,以由前端数据中心读取节点中的数据存储模块中的流量日志数据,并绘制流量曲线,以供运营分析。整个过程简单高效,在内核层注入eBPF流量采集模块,直接截取访问应用程序的数据,无需在每个应用程序中开发单独的流量采集模块,减少研发的重复工作,提高了流量采集的效率。
实施例
基于与本发明实施例一相同发明构思,本发明实施例二还提供了一种基于eBPF技术的数据采集方法,所述方法还包括:
用户终端向节点发出访问应用程序的请求,所述请求中包含用户待访问APP的信息;其中,在所述节点机器中的系统内核层写入有XDP网卡驱动程序,并在节点机器中的系统内核层中注入eBPF流量采集模块;以由所述节点中的机器物理网卡将所述请求流到系统内核层的XDP网卡驱动程序;所述系统内核层中的eBPF流量采集模块将用户待访问APP的信息返回给eBPF应用进程,并由所述eBPF应用进程将相应的用户访问日志信息写入数据存储模块,以由前端数据中心读取所述数据存储模块的流量日志数据,绘制流量曲线。
其中,所述用户待访问APP的信息中至少包含网卡Id、IP地址、进程Id、TCP数据包和UDP数据包。
进一步地,在一个实例中,所述方法还包括:
所述用户终端向节点发出访问应用程序的请求,从所述eBPF流量采集模块流到应用层中目标的APP程序中;以由应用层的APP程序返回请求内容,从所述eBPF流量采集模块流到物理网卡响应出去。
实施例
基于与本发明实施例一相同发明构思,本发明实施例三还提供了一种基于eBPF技术的数据采集方法,所述方法还包括:
前端数据中心读取节点中的数据存储模块中的流量日志数据,绘制流量曲线;所述流量日志数据是由所述节点中的机器物理网卡将用户终端发出的请求流到系统内核层的XDP网卡驱动程序;所述系统内核层中的eBPF流量采集模块将用户待访问APP的信息返回给eBPF应用进程,并由所述eBPF应用进程将相应的用户访问日志信息写入数据存储模块中得来的;其中,所述请求中包含用户待访问APP的信息;以及,在所述节点机器中的系统内核层写入有XDP网卡驱动程序,并在节点机器中的系统内核层中注入eBPF流量采集模块。
实施例
基于与本发明实施例一相同发明构思,本发明实施例四还提供了一种基于eBPF技术的数据采集装置,包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,用于执行本发明实施例一中任意一所述的方法。
具体地,该数据采集装置可以是边缘节点,该节点中包括物理网卡、系统内核层、内核协议栈、eBPF应用进程、eBPF流量采集模块和数据存储模块,其中eBPF流量采集模块注入于系统内核层。各部分数据传输结构如图3和5所示。
实施例
基于与本发明实施例一相同发明构思,如图6所示,本发明实施例五还提供了一种基于eBPF技术的数据采集系统,包括用户终端、节点和前端数据中心;
所述用户终端61,可用于向节点发出访问应用程序的请求,所述请求中包含用户待访问APP的信息;
所述节点62,可用于节点机器中的物理网卡接收用户终端访问应用程序的请求,并将所述请求流到内核层的XDP网卡驱动程序,;所述节点机器中的系统内核层中的eBPF流量采集模块将用户待访问APP的信息返回给eBPF应用进程,并由所述eBPF应用进程将相应的用户访问日志信息写入数据存储模块形成流量日志数据;其中,在节点机器中的系统内核层写入有XDP网卡驱动程序,并在节点机器中的系统内核层中注入eBPF流量采集模块;
所述前端数据中心63,可用于读取节点中的数据存储模块中的流量日志数据,并绘制流量曲线,以供运营分析。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM, Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (7)
1.一种基于eBPF技术的数据采集方法,其特征在于,包括:
节点机器中的物理网卡接收用户终端访问应用程序的请求;所述请求中包含用户待访问的多个不同APP的信息;其中,在节点机器中的系统内核层写入有XDP网卡驱动程序,并在所述系统内核层中注入有eBPF流量采集模块;所述用户待访问的多个不同APP的信息中至少包含网卡Id、IP地址、进程Id、TCP数据包和UDP数据包;所述节点为边缘节点;
所述节点机器中的物理网卡将所述请求流到系统内核层的XDP网卡驱动程序;
所述系统内核层中的eBPF流量采集模块将用户待访问的多个不同APP的信息返回给eBPF应用进程,并由所述eBPF应用进程将相应的用户访问日志信息写入数据存储模块形成流量日志数据,以由前端数据中心读取所述数据存储模块的流量日志数据,绘制流量曲线;
具体地:所述系统内核层中的eBPF流量采集模块调用内核协议栈的TCP/UDP网络函数,将用户待访问的多个不同APP的信息返回给eBPF进程进行归类处理,并由eBPF进程将相应的用户访问日志信息进行归类处理后写入数据存储模块;以由前端数据中心读取数据存储模块的流量日志数据,绘制流量曲线,以获得访问各个APP的流量曲线。
2.根据权利要求1所述的数据采集方法,其特征在于,所述方法还包括:
所述节点机器中的物理网卡接收用户终端访问应用程序的请求;所述请求中包含用户待访问docker容器ID和APP的信息;
所述节点机器中的物理网卡将所述请求流到系统内核层的XDP网卡驱动程序;
所述系统内核层中的eBPF流量采集模块将用户待访问的docker容器ID和APP的信息返回给eBPF应用进程,并由所述eBPF应用进程将相应的用户访问日志信息写入所述数据存储模块形成流量日志数据,以由前端数据中心读取所述数据存储模块的流量日志数据,绘制流量曲线。
3.一种基于eBPF技术的数据采集方法,其特征在于,所述方法包括:
用户终端向节点发出访问应用程序的请求,所述请求中包含用户待访问的多个不同APP的信息;所述节点为边缘节点;其中,在节点机器中的系统内核层写入有XDP网卡驱动程序,并在节点机器中的系统内核层中注入eBPF流量采集模块;以由所述节点机器中的物理网卡将所述请求流到系统内核层的XDP网卡驱动程序;所述系统内核层中的eBPF流量采集模块将用户待访问的多个不同APP的信息返回给eBPF应用进程,并由所述eBPF应用进程将相应的用户访问日志信息写入数据存储模块,以由前端数据中心读取所述数据存储模块的流量日志数据,绘制流量曲线;具体地:所述系统内核层中的eBPF流量采集模块调用内核协议栈的TCP/UDP网络函数,将用户待访问的多个不同APP的信息返回给eBPF进程进行归类处理,并由eBPF进程将相应的用户访问日志信息进行归类处理后写入数据存储模块;以由前端数据中心读取数据存储模块的流量日志数据,绘制流量曲线,以获得访问各个APP的流量曲线;所述用户待访问的多个不同APP的信息中至少包含网卡Id、IP地址、进程Id、TCP数据包和UDP数据包。
4.根据权利要求3所述的数据采集方法,其特征在于,所述方法还包括:
所述用户终端向节点发出访问应用程序的请求,从所述eBPF流量采集模块流到应用层中目标的APP程序中;以由应用层的APP程序返回请求内容,从所述eBPF流量采集模块流到物理网卡响应出去。
5.一种基于eBPF技术的数据采集方法,其特征在于,所述方法还包括:
前端数据中心读取节点中的数据存储模块中的流量日志数据,绘制流量曲线;所述节点为边缘节点;所述流量日志数据是由节点机器中的物理网卡将用户终端发出的请求流到系统内核层的XDP网卡驱动程序;所述系统内核层中的eBPF流量采集模块将用户待访问的多个不同APP的信息返回给eBPF应用进程,并由所述eBPF应用进程将相应的用户访问日志信息写入数据存储模块中得来的;其中,所述请求中包含用户待访问的多个不同APP的信息;以及,在所述节点机器中的系统内核层写入有XDP网卡驱动程序,并在节点机器中的系统内核层中注入eBPF流量采集模块;
具体地:所述系统内核层中的eBPF流量采集模块调用内核协议栈的TCP/UDP网络函数,将用户待访问的多个不同APP的信息返回给eBPF进程进行归类处理,并由eBPF进程将相应的用户访问日志信息进行归类处理后写入数据存储模块;以由前端数据中心读取数据存储模块的流量日志数据,绘制流量曲线,以获得访问各个APP的流量曲线;所述用户待访问的多个不同APP的信息中至少包含网卡Id、IP地址、进程Id、TCP数据包和UDP数据包。
6.一种基于eBPF技术的数据采集装置,其特征在于,包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,用于执行如权利要求1所述的方法。
7.一种基于eBPF技术的数据采集系统,其特征在于,包括用户终端、节点和前端数据中心;所述节点为边缘节点;
所述用户终端,用于向节点发出访问应用程序的请求,所述请求中包含用户待访问的多个不同APP的信息;
所述节点,用于节点机器中的物理网卡接收用户终端访问应用程序的请求,并将所述请求流到系统内核层的XDP网卡驱动程序;所述节点机器中的系统内核层中的eBPF流量采集模块将用户待访问的多个不同APP的信息返回给eBPF应用进程,并由所述eBPF应用进程将相应的用户访问日志信息写入数据存储模块形成流量日志数据;其中,在节点机器中的系统内核层写入有XDP网卡驱动程序,并在节点机器中的系统内核层中注入eBPF流量采集模块;
所述前端数据中心,用于读取节点中的数据存储模块中的流量日志数据,并绘制流量曲线,以供运营分析;
具体地:所述系统内核层中的eBPF流量采集模块调用内核协议栈的TCP/UDP网络函数,将用户待访问的多个不同APP的信息返回给eBPF进程进行归类处理,并由eBPF进程将相应的用户访问日志信息进行归类处理后写入数据存储模块;以由前端数据中心读取数据存储模块的流量日志数据,绘制流量曲线,以获得访问各个APP的流量曲线;所述用户待访问的多个不同APP的信息中至少包含网卡Id、IP地址、进程Id、TCP数据包和UDP数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111278048.5A CN114039875B (zh) | 2021-10-30 | 2021-10-30 | 一种基于eBPF技术的数据采集方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111278048.5A CN114039875B (zh) | 2021-10-30 | 2021-10-30 | 一种基于eBPF技术的数据采集方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114039875A CN114039875A (zh) | 2022-02-11 |
CN114039875B true CN114039875B (zh) | 2023-09-01 |
Family
ID=80136028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111278048.5A Active CN114039875B (zh) | 2021-10-30 | 2021-10-30 | 一种基于eBPF技术的数据采集方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114039875B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114978897B (zh) * | 2022-05-17 | 2023-09-05 | 阿里巴巴(中国)有限公司 | 基于eBPF和应用识别技术的网络控制方法和系统 |
CN115766858A (zh) * | 2022-11-11 | 2023-03-07 | 中国工商银行股份有限公司 | 流量处理方法、装置、计算机可读存储介质及电子设备 |
CN116915667B (zh) * | 2023-07-19 | 2024-03-08 | 上海螣龙科技有限公司 | 网络流量采集方法、装置、电子设备及存储介质 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1700664A (zh) * | 2005-06-10 | 2005-11-23 | 重庆邮电学院 | 基于Linux内核的高速网络流量测量器及流量测量方法 |
RU2485705C1 (ru) * | 2012-03-26 | 2013-06-20 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Санкт-Петербургский государственный политехнический университет" (ФГБОУ ВПО "СПбГПУ") | Способ и система идентификации сетевых протоколов на основании описания клиент-серверного взаимодействия |
CN105100015A (zh) * | 2014-05-16 | 2015-11-25 | 林琳 | 一种采集互联网访问数据的方法及装置 |
US10038603B1 (en) * | 2016-02-23 | 2018-07-31 | Area 1 Security, Inc. | Packet capture collection tasking system |
CN108777643A (zh) * | 2018-06-08 | 2018-11-09 | 武汉思普崚技术有限公司 | 一种流量可视化平台系统 |
CN109379236A (zh) * | 2018-12-04 | 2019-02-22 | 广东电网有限责任公司 | 一种网页用户交互操作回放方法 |
CN109861875A (zh) * | 2018-12-29 | 2019-06-07 | 顺丰科技有限公司 | 应用程序的测试方法及装置 |
WO2019204725A1 (en) * | 2018-04-20 | 2019-10-24 | Draios Inc. | Programmatic container monitoring |
CN110426971A (zh) * | 2019-06-26 | 2019-11-08 | 北京全路通信信号研究设计院集团有限公司 | 一种轨道交通控制网络数据采集和管理方法及系统 |
WO2020015838A1 (en) * | 2018-07-20 | 2020-01-23 | Nokia Solutions And Networks Oy | Zero trust perimeterization for microservices |
CN112015575A (zh) * | 2020-08-28 | 2020-12-01 | 北京浪潮数据技术有限公司 | 一种报文处理方法、装置及相关设备 |
CN112395051A (zh) * | 2020-12-04 | 2021-02-23 | 北京优特捷信息技术有限公司 | 可观察性系统的数据融合实现方法和装置 |
CN112532538A (zh) * | 2020-11-23 | 2021-03-19 | 中信银行股份有限公司 | 流量的控制方法、装置、电子设备及计算机可读存储介质 |
CN112749060A (zh) * | 2021-01-15 | 2021-05-04 | 国网上海市电力公司 | 一种电力系统服务总线监视方法 |
CN113037808A (zh) * | 2021-02-18 | 2021-06-25 | 北京网聚云联科技有限公司 | 一种基于eBPF技术的CDN节点单机调度方法及其系统 |
CN113132154A (zh) * | 2021-03-23 | 2021-07-16 | 北京网聚云联科技有限公司 | 一种基于eBPF技术的容器化应用平滑升级方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080056139A1 (en) * | 2006-09-06 | 2008-03-06 | Mentor Graphics Corporation | Network traffic monitoring using embedded target-side analyzer during embedded software development |
US10530711B2 (en) * | 2017-11-09 | 2020-01-07 | Nicira, Inc. | Extensible virtual switch datapath |
US10749765B2 (en) * | 2019-01-08 | 2020-08-18 | International Business Machines Corporation | Method and system for monitoring communication in a network |
US11106566B2 (en) * | 2020-01-22 | 2021-08-31 | Netflix, Inc. | Techniques for transparently emulating network conditions |
-
2021
- 2021-10-30 CN CN202111278048.5A patent/CN114039875B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1700664A (zh) * | 2005-06-10 | 2005-11-23 | 重庆邮电学院 | 基于Linux内核的高速网络流量测量器及流量测量方法 |
RU2485705C1 (ru) * | 2012-03-26 | 2013-06-20 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Санкт-Петербургский государственный политехнический университет" (ФГБОУ ВПО "СПбГПУ") | Способ и система идентификации сетевых протоколов на основании описания клиент-серверного взаимодействия |
CN105100015A (zh) * | 2014-05-16 | 2015-11-25 | 林琳 | 一种采集互联网访问数据的方法及装置 |
US10038603B1 (en) * | 2016-02-23 | 2018-07-31 | Area 1 Security, Inc. | Packet capture collection tasking system |
WO2019204725A1 (en) * | 2018-04-20 | 2019-10-24 | Draios Inc. | Programmatic container monitoring |
CN108777643A (zh) * | 2018-06-08 | 2018-11-09 | 武汉思普崚技术有限公司 | 一种流量可视化平台系统 |
WO2020015838A1 (en) * | 2018-07-20 | 2020-01-23 | Nokia Solutions And Networks Oy | Zero trust perimeterization for microservices |
CN109379236A (zh) * | 2018-12-04 | 2019-02-22 | 广东电网有限责任公司 | 一种网页用户交互操作回放方法 |
CN109861875A (zh) * | 2018-12-29 | 2019-06-07 | 顺丰科技有限公司 | 应用程序的测试方法及装置 |
CN110426971A (zh) * | 2019-06-26 | 2019-11-08 | 北京全路通信信号研究设计院集团有限公司 | 一种轨道交通控制网络数据采集和管理方法及系统 |
CN112015575A (zh) * | 2020-08-28 | 2020-12-01 | 北京浪潮数据技术有限公司 | 一种报文处理方法、装置及相关设备 |
CN112532538A (zh) * | 2020-11-23 | 2021-03-19 | 中信银行股份有限公司 | 流量的控制方法、装置、电子设备及计算机可读存储介质 |
CN112395051A (zh) * | 2020-12-04 | 2021-02-23 | 北京优特捷信息技术有限公司 | 可观察性系统的数据融合实现方法和装置 |
CN112749060A (zh) * | 2021-01-15 | 2021-05-04 | 国网上海市电力公司 | 一种电力系统服务总线监视方法 |
CN113037808A (zh) * | 2021-02-18 | 2021-06-25 | 北京网聚云联科技有限公司 | 一种基于eBPF技术的CDN节点单机调度方法及其系统 |
CN113132154A (zh) * | 2021-03-23 | 2021-07-16 | 北京网聚云联科技有限公司 | 一种基于eBPF技术的容器化应用平滑升级方法及系统 |
Non-Patent Citations (1)
Title |
---|
IP流量统计方法及实现;王攀, 王远峰, 张顺颐;南京邮电学院学报(02);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114039875A (zh) | 2022-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114039875B (zh) | 一种基于eBPF技术的数据采集方法、装置及系统 | |
CN110290217B (zh) | 数据请求的处理方法及装置、存储介质及电子装置 | |
CN101808123B (zh) | 在存储系统中访问存储资源的方法和装置 | |
CN106972985B (zh) | 加速dpi设备数据处理与转发的方法和dpi设备 | |
CN106027595A (zh) | 用于cdn节点的访问日志处理方法及系统 | |
EP2216955A1 (en) | Network interface device | |
CN108509254A (zh) | Docker Container的监控方法及系统 | |
CN103346972A (zh) | 基于用户终端的流量控制装置和方法 | |
CN113010818A (zh) | 访问限流方法、装置、电子设备及存储介质 | |
CN112039799B (zh) | 网络带宽管理的方法、服务器、系统、设备及介质 | |
CN101146114A (zh) | 一种流媒体服务器负荷分担方法及其系统 | |
WO2019075662A1 (zh) | 一种网关多连接的方法及装置 | |
CN108090003A (zh) | 一种基于零拷贝的提升web服务器性能的方法、系统 | |
CN112260889B (zh) | 一种基于Linux的进程流量监控方法、系统及设备 | |
CN105812833A (zh) | 文件处理方法和装置 | |
US10225358B2 (en) | Page push method, device, server and system | |
CN109873734A (zh) | 一种底层数据监控方法、介质、设备及装置 | |
CN108462590A (zh) | 网络流量的监控方法及装置、计算机终端 | |
CN114070755B (zh) | 虚拟机网络流量确定方法、装置、电子设备和存储介质 | |
CN103746926A (zh) | 一种局域网加速装置及局域网加速系统 | |
CN102902593B (zh) | 基于缓存机制的协议分发处理系统 | |
CN104679905A (zh) | 一种基于云存储的高速存储系统 | |
CN103558995A (zh) | 一种存储控制芯片及磁盘报文传输方法 | |
CN105959248B (zh) | 报文访问控制的方法及装置 | |
CN102929799A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240104 Address after: 518000, B-1503, Zhongdian Changcheng Building, No.3 Kefa Road, Science and Technology Park Community, Yuehai Street, Nanshan District, Shenzhen, Guangdong Province Patentee after: Shenzhen Netju Yunlian Technology Co.,Ltd. Address before: 101199 3091, floor 3, No. 64, Xinhua South Road, Tongzhou District, Beijing Patentee before: Beijing Wangju Yunlian Technology Co.,Ltd. |