到一天(或一周/一个月)结束时,我希望对使用网络的所有进程有一个概览,并了解 Linux 服务器上每个进程在特定时间段内产生了多少流量:
- 在给定时间段内总共使用了多少流量?
- 哪些进程使用了多少(以 MB 或百分比为单位)?
我用vnstat
它来显示服务器上消耗了多少流量 - 我发现它非常方便 - 我想要的不仅仅是vnstat
显示所有流量的综合概览,而且还显示哪个进程使用了多少流量。
也许那里有一些工具,或者也许有人知道如何通过编写脚本来解决这个问题——我愿意接受任何关于如何获得概述的建议。
答案1
我认为 Datadog 可能就是你要找的东西。Datadog 非常强大,根据 Gartner 的说法,它是市场领导者之一。它还允许你创建自定义仪表板。但它还提供了很多功能,而且需要付费。顺便说一句,我与 Datadog 没有任何关系。
您还可以使用 nethogs 并将其输出到文件并使用 awk 进行分析
sudo nethogs -t | tee network_logs.txt
cat network_logs.txt | awk '{ total += $2; process[$NF] += $2 } END { print "Total: " total " KB"; for (p in process) print p ": " process[p] " KB" }'