CN114679391A - 采集docker容器网络流量的方法、电子设备及存储介质 - Google Patents
采集docker容器网络流量的方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114679391A CN114679391A CN202210167848.8A CN202210167848A CN114679391A CN 114679391 A CN114679391 A CN 114679391A CN 202210167848 A CN202210167848 A CN 202210167848A CN 114679391 A CN114679391 A CN 114679391A
- Authority
- CN
- China
- Prior art keywords
- container
- docker
- network card
- host system
- docker container
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 203
- 230000008569 process Effects 0.000 claims abstract description 142
- 230000006870 function Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 abstract description 3
- 238000012545 processing Methods 0.000 description 5
- 238000002955 isolation Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
Abstract
本发明实施例涉及通信技术领域,公开了一种采集docker容器网络流量的方法、电子设备及存储介质。方法包括:容器管理进程接收宿主机系统发送的docker容器已退出的第一通知信号后,将待回收资源下的docker容器的网卡流量数据文件备份到待回收资源以外的备份目录中;待备份成功后,触发宿主机系统对待回收资源进行回收;宿主机系统接收到该触发后,向流量采集进程发送docker容器已退出的第二通知信号;流量采集进程根据第二通知信号从备份目录获取网卡流量数据文件。本方案能够准确获取docker容器的网卡流量数据,避免由于采集频率导致的容器退出前最后一段流量数据丢失的问题。
Description
技术领域
本发明实施例涉及通信技术领域,特别涉及一种采集docker容器网络流量的方法、电子设备及存储介质。
背景技术
在一个大型的公有云容器平台中,一台linux设备上往往运行着大量的分属于不同客户不同业务的容器。处于安全和运营等各方面的需要,通常会通过命名空间(namespace)将容器相互隔离,这其中最常见的就是网络namespace隔离。网络namespace隔离可以使容器内的进程拥有独占的虚拟网络协议栈,端口,网卡等网络资源。以docker容器为例,在网络隔离的情况下,每个容器都拥有一张独立的eth0网卡,并且容器内的进程进行网络通信的相关数据都会统计在这张eth0网卡上,并且这张网卡的流量数据会由内核维护在宿主机的/proc目录下的相关文件中。因此,通过读取并解析该文件,可以获取该容器的网络流量使用情况,结合定期采集和计算,可以为运营,计费提供流量和带宽等数据支持。
为了避免给采集程序造成太大的压力,容器流量的采集频率通常不会太高,一般是每隔1-5分钟采集一次。假设docker容器在某个时间点退出了,其网络命名空间将被系统回收,eth0网卡的流量数据也随之被销毁。这个过程不受采集程序的控制,也就意味着从最后一个采集点到容器退出这段时间的容器流量实际上已经丢失了。如果要对流量计费,那么这段时间的流量会漏计费,并且采集周期越长,损失越大。在这种情况下,虽然可以通过提高采集频率的办法降低丢失的数据量,但并不能彻底解决流量数据丢失问题。
发明内容
本发明实施方式的目的在于提供一种采集docker容器网络流量的方法、电子设备及存储介质,能够准确获取docker容器的网卡流量数据,避免由于采集频率导致的容器退出前最后一段流量数据丢失的问题。
为解决上述技术问题,本发明的实施方式提供了一种采集docker容器网络流量的方法,所述方法应用于容器管理进程,包括:
接收宿主机系统发送的docker容器已退出的第一通知信号;
根据所述第一通知信号,将待回收资源下的所述docker容器的网卡流量数据文件备份到所述待回收资源以外的备份目录中,以供流量采集程序从所述备份目录获取所述网卡流量数据文件;
待备份成功后,触发所述宿主机系统对所述待回收资源进行回收。
本发明的实施方式提供了另一种采集docker容器网络流量的方法,所述方法应用于流量采集进程,包括:
接收宿主机系统发送的docker容器已退出的第二通知信号;所述第二通知信号是所述docker容器对应的容器管理进程触发所述宿主机系统回收用于存储所述docker容器的网卡流量数据文件的资源后发出;
从备份目录获取所述网卡流量数据文件;所述网卡流量数据文件是由所述容器管理进程,在触发所述宿主机系统回收用于存储所述网卡流量数据文件的资源之前,备份到待回收资源以外的所述备份目录中。
本发明的实施方式提供了再一种采集docker容器网络流量的方法,包括:
容器管理进程接收宿主机系统发送的docker容器已退出的第一通知信号;
所述容器管理进程根据所述第一通知信号,将待回收资源下的所述docker容器的网卡流量数据文件备份到所述待回收资源以外的备份目录中;
待备份成功后,所述容器管理进程触发所述宿主机系统对所述待回收资源进行回收;
所述流量采集进程接收所述宿主机系统发送的docker容器已退出的第二通知信号;
所述流量采集进程从所述备份目录获取所述网卡流量数据文件。
本发明的实施方式提供了一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行:
如所述的一种采集docker容器网络流量的方法,其中,所述电子设备为所述容器管理进程;或者,如所述的另一种采集docker容器网络流量的方法,其中,所述电子设备为所述流量采集进程;或者,如所述的再一种采集docker容器网络流量的方法,其中,所述电子设备包含所述容器管理进程和所述流量采集进程。
本发明的实施方式提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的采集docker容器网络流量的方法。
本发明实施方式相对于现有技术而言,容器管理进程接收宿主机系统发送的docker容器已退出的第一通知信号后,将待回收资源下的docker容器的网卡流量数据文件备份到待回收资源以外的备份目录中;待备份成功后,触发宿主机系统对待回收资源进行回收;宿主机系统接收到该触发后,向流量采集进程发送docker容器已退出的第二通知信号;流量采集进程根据第二通知信号从备份目录获取网卡流量数据文件。由于本方案在docker容器退出后,及时将docker容器的网卡流量数据文件备份到待回收资源以外的备份目录中,从而避免从待回收资源采集网卡流量数据文件时,由于采集频率导致的容器退出前最后一段流量数据丢失的问题,提高了所获取得docker容器的网卡流量数据的完整性。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明第一实施方式的采集docker容器网络流量的方法的具体流程图;
图2是根据本发明第二实施方式的采集docker容器网络流量的方法的具体流程图;
图3是根据本发明第三实施方式的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明第一实施方式涉及一种采集docker容器网络流量的方法。本实施例所述方法可适用于公有云容器平台中,该容器平台中每台linux设备上运行着大量的分属于不同客户不同业务的容器,容器之间通过namespace进行相互隔离。每台linux设备上的操作系统(宿主机系统)管理该宿主机系统中的各个容器的资源维护,包括资源创建和资源回收,这些资源用于存储容器运行中的相关数据,例如每个容器的网卡的流量数据会由内核维护在宿主机的/proc目录下的相关文件中。每个容器配备有一个容器管理进程,容器管理进程负责容器的创建和退出。流量采集进程隶属于宿主机系统,用于定期采集内核维护在宿主机的/proc目录下的流量数据文件,从而基于流量数据文件统计各容器使用的网络流量参数。
如图1所示,本实施例方法应用于容器管理进程,每台linux设备上的操作系统可为运行在其操作系统中的每个容器配备一个容器管理进程对相应容器进行创建和退出的操作管理,本实施例方法则是在容器管理进程负责容器退出时执行的操作,包括如下步骤:
步骤101:接收宿主机系统发送的docker容器已退出的第一通知信号。
具体地,当宿主机系统中某个docker容器退出后,宿主机系统会向该docker容器的容器管理进程发送第一通知信号,以告知容器管理进程其管理的docker容器已退出,让容器管理进程执行docker容器退出后的相关操作。
实际上,当docker容器退出后,宿主机系统会先自主对docker容器所占用的一部分资源进行回收。但是,docker容器所占用的剩余部分资源,例如内核为容器管理进程分配的进程控制块(Process Control Block,PCB)则需要容器管理进程确认后才可以由宿主机系统对其进行回收。而该PCB中存储了包括进程的一些相关信息,如程序段,数据及CPU现场信息,其中主要包括了网络命名空间下的网卡的网卡流量数据文件。通常,每个docker容器对应的网卡流量数据文件被内核维护在宿主机的/proc目录下。例如,网卡流量数据文件的存储路径为:/proc/333/net/dev(333是docker容器一号进程的进程控制符)。
在一个例子中,容器管理进程可为docker框架下的docker-shim进程;相应地,接收宿主机系统发送的docker容器已退出的第一通知信号,包括:
接收宿主机系统发送的SIGCHLD信号,该SIGCHLD信号为宿主机系统感知到docker容器中的初始化进程退出后发出,初始化进程为docker-shim进程的子进程。
具体地,在docker框架下,docker-shim是docker容器1号进程(也称“初始化进程”)的父进程。在启动docker容器1号进程时,docker-shim设置捕捉SIGCHLD信号,并通过golang的select机制监听和接收到宿主机系统发送的系统信号。当docker容器1号进程退出(意味着docker容器退出)时,宿主机系统向docker-shim发送SIGCHLD信号。docker-shim收到到系统信号后被唤醒,当docker-shim检查出接收的系统信号是SIGCHLD信号时,则确定docker容器1号进程已退出。
其中,docker容器中的初始化进程退出主要存在以下两种退出情况:
初始化进程主动退出,或者初始化进程接收到docker-shim进程发出的退出指令后退出。通常,初始化进程退出可能是,容器中的进程完成指定操作后自动触发初始化进程退出,该情况可称之为“主动退出”。另外,用户也可通过宿主机系统直接向容器管理进程(docker-shim)发送退出指令,以通过容器管理进程控制初始化进程退出。
步骤102:根据第一通知信号,将待回收资源下的docker容器的网卡流量数据文件备份到待回收资源以外的备份目录中,以供流量采集程序从备份目录获取网卡流量数据文件。
具体地,当容器控制进程接收到宿主机系统发送的docker容器已退出的第一通知信号后,容器控制进程可对自身占用的资源(主要是PCB)进行回收前的确认。此时,由于容器控制进程还没有退出,分配给容器控制进程的PCB包括网卡流量数据文件还没有被回收,容器控制进程可以将已退出的该docker容器所对应的网卡流量数据文件,及时从待回收的资源中备份到待回收资源以外的备份目录中。这样,即使后续宿主机系统回收了这部分待回收资源,流量采集程序也可以从备份目录中获取网卡流量数据文件,避免由于采集频率导致的容器退出前最后一段流量数据丢失的问题。
在一个例子中,根据第一通知信号,将待回收资源下的docker容器的网卡流量数据文件备份到待回收资源以外的备份目录中的处理过程可通过如下步骤实现。
根据第一通知信号,触发宿主机系统将待回收资源下的docker容器的网卡流量数据文件,以约定文件名备份到待回收资源以外的备份目录中。
具体地,容器管理进程在接收到第一通知信号后,可触发宿主机系统将待回收资源下的上述docker容器的网卡流量数据文件,以约定文件名备份到待回收资源以外的备份目录中。这样流量采集程序可以根据约定文件名和备份目录,快速查找到已退出的docker容器的网卡流量数据文件。
例如,docker-shim进程接收到宿主机系统发送的SIGCHLD信号后,触发宿主机系统将docker容器的网卡流量数据文件从系统目录,即:/proc目录下拷贝出来另存储到其它路径下进行备份。
步骤103:待备份成功后,触发宿主机系统对待回收资源进行回收。
具体地,待容器管理进程对已退出的docker容器的网卡流量数据文件备份成功后,容器管理进程触发宿主机系统对待回收资源(包含已退出的docker容器的网卡流量数据文件)进行回收。
在一个例子中,docker-shim进程在备份好已退出的docker容器的网卡流量数据文件后,可调用系统wait函数,触发宿主机系统对待回收资源进行回收。宿主机系统在检测到系统wait函数被docker-shim进程调用后,对分配给docker-shim进程的PCB,包括其网络命名空间下的网卡的流量数据文件所占用的资源进行回收。
本发明实施方式相对于现有技术而言,容器管理进程在接收到宿主机系统发送的docker容器已退出的第一通知信号后,根据第一通知信号,将待回收资源下的docker容器的网卡流量数据文件备份到待回收资源以外的备份目录中,以供流量采集程序从备份目录获取网卡流量数据文件;待备份成功后,触发宿主机系统对待回收资源进行回收。由于本方案在docker容器退出后,及时将docker容器的网卡流量数据文件备份到待回收资源以外的备份目录中,并由流量采集进程从备份目录中获取该网卡流量数据文件,从而避免从待回收资源采集网卡流量数据文件时,由于采集频率导致的容器退出前最后一段流量数据丢失的问题,提高了所获取得docker容器的网卡流量数据的完整性。
如图2所示,本实施例方法应用于流量采集进程,通常情况下,流量采集进程会定期采集内核维护在宿主机的/proc目录下的流量数据文件。而在本实施例中流量采集进程除了“定期采集”外,还基于系统发送的通知信号,额外进行流量数据文件的采集。本实施例方法则是在容器退出后由流量采集进程执行的额外进行流量数据文件的采集操作,包括如下步骤:
步骤201:接收宿主机系统发送的docker容器已退出的第二通知信号;第二通知信号是docker容器对应的容器管理进程触发宿主机系统回收用于存储docker容器的网卡流量数据文件的资源后发出。
具体地,在经过如上述容器管理进程后采集docker容器网络流量的方法,宿主机系统接收到对待回收资源进行回收的触发信息后,宿主机系统一方面执行回收资源的操作,另一方面向流量采集系统发送docker容器已退出的第二通知信号。与第一通知信号不同的是,该第二通知信号是docker容器对应的容器管理进程触发宿主机系统回收用于存储docker容器的网卡流量数据文件的资源后发出。换言之,流量采集进程在接收到第二通知信号时,不仅docker容器已退出,连同docker容器对应的容器管理进程也已经退出,它们所占用的所有资源也已经开始被执行回收。
在一个例子中,容器管理进程可为docker框架下的docker-shim进程;docker容器对应的容器管理进程触发宿主机系统回收用于存储docker容器的网卡流量数据文件的资源的过程可通过如下步骤实现,这些步骤的具体执行过程可参考图1所示方法实施例中的步骤,在此不做赘述。
容器管理进程接收宿主机系统发送的SIGCHLD信号,SIGCHLD信号为宿主机系统感知到docker容器中的初始化进程退出后发出,初始化进程为docker-shim进程的子进程;待容器管理进程将待回收资源下的网卡流量数据文件备份到备份目录中后,触发宿主机系统回收用于存储上述网卡流量数据文件的资源。
步骤202:从备份目录获取网卡流量数据文件;网卡流量数据文件是由容器管理进程,在触发宿主机系统回收用于存储网卡流量数据文件的资源之前,备份到待回收资源以外的备份目录中。
具体地,流量采集进程接收到第二通知信号后,按约定从备份目录中获取已退出的docker容器所对应的网卡流量数据文件。该网卡流量数据文件是由容器管理进程,在触发宿主机系统回收用于存储网卡流量数据文件的资源之前,备份到待回收资源以外的备份目录中。
其中,触发宿主机系统回收用于存储网卡流量数据文件的资源的过程可通过如下步骤实现。
调用系统wait函数,触发宿主机系统回收用于存储网卡流量数据文件的资源。
以上有关网卡流量数据文件的备份过程、宿主机系统回收用于存储网卡流量数据文件的资源的过程,可参见图1所示方法实施例,在此不做赘述。
此外,本实施例所示方法还可包括如下步骤:
基于网卡流量数据文件统计docker容器使用的网卡流量参数,网卡流量参数包括如下参数中的至少一种:docker容器在退出前最后一个统计周期的网卡流量差值和平均带宽。
具体地,流量采集进程周期性从宿主机的/proc目录下采集宿主机系统上各docker容器的网卡流量数据文件。例如,流量采集进程在每一分钟的0秒执行一次采集任务,采集各docker容器当前时刻的网卡流量数据,包括rx_bytes、tx_bytes等。通过将当前时刻采集的网卡流量数据与上一分钟采集的网卡流量数据对比,可以得出本采集周期内的网卡流量参数,包括如网卡流量差值,平均带宽等中的至少一种。同时,保存当前时刻的网卡流量数据,用于下一个采集时刻到来时计算下一采集周期的网卡流量参数。而当下一个采集时刻未到达且docker容器既已退出时,则认为docker容器只运行了当前流量统计周期的部分周期时间,此时可将docker容器退出后流量采集进程采集的网卡流量数据文件作为“下一个采集时刻”采集的网卡流量数据文件来统计当前统计周期的网卡流量数据。例如对该次采集的网卡流量数据以及上一次采集的网卡流量数据进行比较,得出docker容器在退出前最后一个统计周期的网卡流量参数,包括如网卡流量差值,平均带宽等中的至少一种。
本发明实施方式相对于现有技术而言,流量采集进程接收宿主机系统发送的docker容器已退出的第二通知信号,该第二通知信号是docker容器对应的容器管理进程触发宿主机系统回收用于存储docker容器的网卡流量数据文件的资源后发出;从备份目录获取网卡流量数据文件;该网卡流量数据文件是由容器管理进程,在触发宿主机系统回收用于存储网卡流量数据文件的资源之前,备份到待回收资源以外的备份目录中。由于本方案在docker容器退出后,及时将docker容器的网卡流量数据文件备份到待回收资源以外的备份目录中,并由流量采集进程从备份目录中获取该网卡流量数据文件,从而避免从待回收资源采集网卡流量数据文件时,由于采集频率导致的容器退出前最后一段流量数据丢失的问题,提高了所获取得docker容器的网卡流量数据的完整性。
本发明另一实施方式涉及一种采集docker容器网络流量的方法,该方法的执行主体包含前述实施方式中的容器管理进程和流量采集进程。该采集docker容器网络流量的方法包含如下步骤。
容器管理进程接收宿主机系统发送的docker容器已退出的第一通知信号;
容器管理进程根据第一通知信号,将待回收资源下的docker容器的网卡流量数据文件备份到待回收资源以外的备份目录中;
待备份成功后,容器管理进程触发宿主机系统对待回收资源进行回收;
流量采集进程接收宿主机系统发送的docker容器已退出的第二通知信号;
流量采集进程从所述备份目录获取所述网卡流量数据文件。
具体地,上述各步骤内容的具体实现过程可参考前述实时方式中分别以容器管理进程和流量采集进程为执行主体的相应处理过程。
此外,前述实时方式中分别以容器管理进程和流量采集进程为执行主体的所有处理过程,均可适用于本实施方式中,本实施方式中对这些处理过程将不再赘述。
本发明另一实施方式涉及一种电子设备,如图3所示,包括至少一个处理器302;以及,与至少一个处理器302通信连接的存储器301;其中,存储器301存储有可被至少一个处理器302执行的指令,指令被至少一个处理器302执行,以使至少一个处理器302能够执行上述图1方法实施例;其中,电子设备为第一域;或者,执行上述图2方法实施例;其中,电子设备为第二域。
其中,存储器301和处理器302采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器302和存储器301的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器302处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器302。
处理器302负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器301可以被用于存储处理器302在执行操作时所使用的数据。
本发明第四实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述任一方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (12)
1.一种采集docker容器网络流量的方法,其特征在于,所述方法应用于容器管理进程,包括:
接收宿主机系统发送的docker容器已退出的第一通知信号;
根据所述第一通知信号,将待回收资源下的所述docker容器的网卡流量数据文件备份到所述待回收资源以外的备份目录中,以供流量采集程序从所述备份目录获取所述网卡流量数据文件;
待备份成功后,触发所述宿主机系统对所述待回收资源进行回收。
2.根据权利要求1所述的方法,其特征在于,所述容器管理进程为docker框架下的docker-shim进程;所述接收宿主机系统发送的docker容器已退出的第一通知信号,包括:
接收所述宿主机系统发送的SIGCHLD信号,所述SIGCHLD信号为所述宿主机系统感知到所述docker容器中的初始化进程退出后发出,所述初始化进程为所述docker-shim进程的子进程。
3.根据权利要求2所述的方法,其特征在于,所述docker容器中的初始化进程退出包括:
所述初始化进程主动退出,或者所述初始化进程接收到所述docker-shim进程发出的退出指令后退出。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一通知信号,将待回收资源下的所述docker容器的网卡流量数据文件备份到所述待回收资源以外的备份目录中,包括:
根据所述第一通知信号,触发所述宿主机系统将待回收资源下的所述docker容器的网卡流量数据文件,以约定文件名备份到所述待回收资源以外的备份目录中。
5.根据权利要求2所述的方法,其特征在于,所述待备份成功后,触发所述宿主机系统对所述待回收资源进行回收,包括:
待备份成功后,调用系统wait函数,触发所述宿主机系统对所述待回收资源进行回收。
6.一种采集docker容器网络流量的方法,其特征在于,所述方法应用于流量采集进程,包括:
接收宿主机系统发送的docker容器已退出的第二通知信号;所述第二通知信号是所述docker容器对应的容器管理进程触发所述宿主机系统回收用于存储所述docker容器的网卡流量数据文件的资源后发出;
从备份目录获取所述网卡流量数据文件;所述网卡流量数据文件是由所述容器管理进程,在触发所述宿主机系统回收用于存储所述网卡流量数据文件的资源之前,备份到待回收资源以外的所述备份目录中。
7.根据权利要求6所述的方法,其特征在于,所述容器管理进程为docker框架下的docker-shim进程;所述docker容器对应的容器管理进程触发所述宿主机系统回收用于存储所述docker容器的网卡流量数据文件的资源,包括:
所述容器管理进程接收所述宿主机系统发送的SIGCHLD信号,所述SIGCHLD信号为所述宿主机系统感知到所述docker容器中的初始化进程退出后发出,所述初始化进程为所述docker-shim进程的子进程;
待所述容器管理进程将待回收资源下的所述网卡流量数据文件备份到所述备份目录中后,触发所述宿主机系统回收用于存储所述网卡流量数据文件的资源。
8.根据权利要求7所述的方法,其特征在于,所述触发所述宿主机系统回收用于存储所述网卡流量数据文件的资源,包括:
调用系统wait函数,触发所述宿主机系统回收用于存储所述网卡流量数据文件的资源。
9.根据权利要求7或8所述的方法,其特征在于,所述方法还包括:
基于所述网卡流量数据文件统计所述docker容器使用的网卡流量参数,所述网卡流量参数包括如下参数中的至少一种:所述docker容器在退出前最后一个统计周期的网卡流量差值和平均带宽。
10.一种采集docker容器网络流量的方法,其特征在于,包括:
容器管理进程接收宿主机系统发送的docker容器已退出的第一通知信号;
所述容器管理进程根据所述第一通知信号,将待回收资源下的所述docker容器的网卡流量数据文件备份到所述待回收资源以外的备份目录中;
待备份成功后,所述容器管理进程触发所述宿主机系统对所述待回收资源进行回收;
所述流量采集进程接收所述宿主机系统发送的docker容器已退出的第二通知信号;
所述流量采集进程从所述备份目录获取所述网卡流量数据文件。
11.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行:
如权利要求1至5中任一项所述的采集docker容器网络流量的方法,其中,所述电子设备为所述容器管理进程;或者,如权利要求6至9中任一项所述的采集docker容器网络流量的方法,其中,所述电子设备为所述流量采集进程;或者,如权利要求10所述的采集docker容器网络流量的方法,其中,所述电子设备包含所述容器管理进程和所述流量采集进程。
12.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至10中任一项所述的采集docker容器网络流量的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210167848.8A CN114679391A (zh) | 2022-02-23 | 2022-02-23 | 采集docker容器网络流量的方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210167848.8A CN114679391A (zh) | 2022-02-23 | 2022-02-23 | 采集docker容器网络流量的方法、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114679391A true CN114679391A (zh) | 2022-06-28 |
Family
ID=82071714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210167848.8A Pending CN114679391A (zh) | 2022-02-23 | 2022-02-23 | 采集docker容器网络流量的方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114679391A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1725187A (zh) * | 2005-04-30 | 2006-01-25 | 珠海金山软件股份有限公司 | 在计算机上当软件崩溃时保存用户数据的方法及装置 |
US20170293762A1 (en) * | 2015-04-07 | 2017-10-12 | Huawei Technologies Co., Ltd. | Method and Apparatus for a Mobile Device Based Cluster Computing Infrastructure |
CN109743261A (zh) * | 2019-01-07 | 2019-05-10 | 中国人民解放军国防科技大学 | 一种基于sdn的容器网络资源调度方法 |
CN109980776A (zh) * | 2017-12-28 | 2019-07-05 | 中国电力科学研究院有限公司 | 一种智能配变系统和该系统的应用方法 |
CN110018932A (zh) * | 2019-03-26 | 2019-07-16 | 中国联合网络通信集团有限公司 | 一种容器磁盘的监控方法及装置 |
CN111782432A (zh) * | 2020-06-29 | 2020-10-16 | 中国工商银行股份有限公司 | 用于容器异常分析的数据的采集方法及装置 |
CN112181638A (zh) * | 2020-09-11 | 2021-01-05 | 苏州浪潮智能科技有限公司 | 一种容器资源回收方法、系统、设备以及介质 |
CN112965783A (zh) * | 2021-02-24 | 2021-06-15 | 上海英方软件股份有限公司 | 一种使用存储快照备份虚拟机的系统及方法 |
CN113347258A (zh) * | 2021-06-04 | 2021-09-03 | 上海天旦网络科技发展有限公司 | 云流量下的数据采集监控分析的方法及系统 |
-
2022
- 2022-02-23 CN CN202210167848.8A patent/CN114679391A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1725187A (zh) * | 2005-04-30 | 2006-01-25 | 珠海金山软件股份有限公司 | 在计算机上当软件崩溃时保存用户数据的方法及装置 |
US20170293762A1 (en) * | 2015-04-07 | 2017-10-12 | Huawei Technologies Co., Ltd. | Method and Apparatus for a Mobile Device Based Cluster Computing Infrastructure |
CN109980776A (zh) * | 2017-12-28 | 2019-07-05 | 中国电力科学研究院有限公司 | 一种智能配变系统和该系统的应用方法 |
CN109743261A (zh) * | 2019-01-07 | 2019-05-10 | 中国人民解放军国防科技大学 | 一种基于sdn的容器网络资源调度方法 |
CN110018932A (zh) * | 2019-03-26 | 2019-07-16 | 中国联合网络通信集团有限公司 | 一种容器磁盘的监控方法及装置 |
CN111782432A (zh) * | 2020-06-29 | 2020-10-16 | 中国工商银行股份有限公司 | 用于容器异常分析的数据的采集方法及装置 |
CN112181638A (zh) * | 2020-09-11 | 2021-01-05 | 苏州浪潮智能科技有限公司 | 一种容器资源回收方法、系统、设备以及介质 |
CN112965783A (zh) * | 2021-02-24 | 2021-06-15 | 上海英方软件股份有限公司 | 一种使用存储快照备份虚拟机的系统及方法 |
CN113347258A (zh) * | 2021-06-04 | 2021-09-03 | 上海天旦网络科技发展有限公司 | 云流量下的数据采集监控分析的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105357038B (zh) | 监控虚拟机集群的方法和系统 | |
JP2021521528A (ja) | タスク処理方法、装置及びシステム | |
CN108337333B (zh) | Ip地址管理方法、管理设备、网络录像机及存储介质 | |
CN103229535A (zh) | 电信网络中用于单元恢复的方法和系统 | |
CN112506702B (zh) | 数据中心容灾方法、装置、设备及存储介质 | |
CN110618864A (zh) | 一种中断任务恢复方法及装置 | |
KR20040047209A (ko) | 네트워크 상의 컴퓨터 시스템의 자동 복구 방법 및 이를구현하기 위한 컴퓨터 시스템의 자동 복구 시스템 | |
CN109976886B (zh) | 内核远程切换方法及装置 | |
CN111176952A (zh) | 一种i2c通道的监测方法、监测系统及相关装置 | |
CN106375103B (zh) | 一种告警数据采集和发送方法 | |
CN115858221A (zh) | 存储设备的管理方法、装置、存储介质及电子设备 | |
CN101110608B (zh) | 一种主备板数据检测的方法、系统和装置 | |
CN112714010B (zh) | 一种网络拓扑管理方法、装置、拓展单元及存储介质 | |
CN115543872A (zh) | 一种设备管理方法、装置及计算机存储介质 | |
CN108958980A (zh) | 防止Activity生命周期异常的方法、电子装置及计算机可读存储介质 | |
CN114679391A (zh) | 采集docker容器网络流量的方法、电子设备及存储介质 | |
US20050068888A1 (en) | Seamless balde failover in platform firmware | |
CN105843336A (zh) | 具有多机柜管理模块的机柜及其韧体更新方法 | |
CN113568719B (zh) | 一种业务故障处理方法、装置、电子设备及存储介质 | |
CN111464357A (zh) | 资源配置方法及装置 | |
CN112422598A (zh) | 资源调度方法、智能前端设备、智能网关及分布式系统 | |
CN114245052B (zh) | 视频数据的存储方法及装置、存储介质、电子装置 | |
CN115437889B (zh) | 一种应急处理方法、系统及计算设备 | |
CN112799917B (zh) | 一种数据处理方法、装置及设备 | |
KR100428765B1 (ko) | 비동기 전송 모드에서의 관리 정보 전송 시스템 및 방법 |
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 |