监控进程及其整个子进程树的网络流量

监控进程及其整个子进程树的网络流量

我想知道一段时间内的网络流量(入站和出站)、生成的特定进程及其产生的所有子进程。

我开发了一个软件,其中包含一个“作业管理器”,它可以永远运行并且本身不产生网络流量。相反,它会产生子“工人”来完成主要工作,包括大部分网络流量。棘手的一点是,多个“工作人员”可能同时工作,并且单个工作进程预计会在短时间内(几个小时)后退出。此外,这些工作人员还产生更多的子进程,这些子进程会产生同样git fetch需要监控的流量。

将只有一个“作业管理器”实例,并且可以在我的开发和测试服务器上按需启动或终止它,该服务器运行 Ubuntu Server 18.04,架构 amd64。

我想长时间(一周或更长时间)监控所有工作人员的网络流量以及工作人员产生的进程。有解决办法吗?

答案1

也许最简单的方法是将作业管理器放在网络命名空间中。所有子进程也将位于该名称空间中。通过 veth 或 macvlan 连接命名空间,测量该接口上的流量。

相关内容