记录每个 IP 的 LAN 带宽(使用命令行输出)

记录每个 IP 的 LAN 带宽(使用命令行输出)

我有一个本地 samba 服务器,我需要知道哪个 IP 产生的带宽最多。我希望能够抽取该数据进行流入,因此我需要一个命令行工具,为我提供某种直接的输出,例如我可以使用 python 来处理。

我已经探索过一些工具,但它们要么是实时监视器(我并不需要),要么无法提供“每个 IP”的统计数据。

我的情况很简单 -> 单台服务器,单张网卡,所以它是记录数据的中心点。我需要的只是一个简单的输出,例如:

10.10.10.10 -> 35234234 bytes sent 

(平均吞吐量也很好)。有什么线索吗?(我没有使用 IP 表)

我查看了 iptraf-ng 和 itop - 这些都不允许我获取命令行输出。(我不需要实时带宽)

答案1

iftop,,trafshow等等。你被谷歌封禁了吗?

答案2

我没有足够的声誉来回复 drookie 的回答,所以这将出现在答案字段中。

@drookie——他们不想要实时监控,尽管这可能是他们最好的选择。他们可能能够从交换机收集带宽信息并将交换机端口映射到用户。

答案3

正如@DamianoVerzulli 所提到的,pmacct它被证明是适合这项工作的工具。

我开始pmacctd在中央服务器上将过滤后的数据写入内存(使用内存插件)。然后我使用pmacct命令行工具以 csv 格式获取这些数据。

最后我想要的只是将这些数据信息泵入 InfluxDB,因此一些python+ csv 数据可以pmacct毫无问题地工作。

为了定期获取计数器,我使用了 cron(pmacct每次读数后清除计数器)。

也许这不是最优雅的解决方案,因为它使用了,,,pmacctd但是却有效!pmacctpythoncron

感谢帮助

相关内容