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

iBu*_*Bug 5 networking process monitoring

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

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

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

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

dir*_*rkt 6

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