如何在 Linux 中监控每月带宽使用情况

作为服务器所有者,随着时间的推移跟踪您的网络使用情况非常重要。许多托管服务提供商会对带宽和传输的数据收费,因此您需要密切关注每月的使用情况。
安装 vnstat
有很多带宽监控工具——大多数实时监控工具,如 htop
和 glances
将显示 Rx(已接收)和 Tx(已传输)。但是,查看日平均值和月平均值要有用得多,为此,您需要一个可以随时间保留日志的工具。
当然,如果您将服务器托管在 AWS 或 GCP 等大型云提供商上,他们可能会内置日志收集工具,例如 AWS CloudWatch 和 GCP Cloud Monitoring。不过,对于通用 Linux 解决方案,您需要安装 vnstat
。
vnstat
监控所有网络接口,并记录您的服务器正在处理的流量,可用于显示每月、每天和每小时的平均流量。它还可以选择输出为 PNG 以获得更好看的图形。
vnstat
可从大多数主要包管理器获得。对于像 Ubuntu 这样的基于 Debian 的系统,这将是:
sudo apt install vnstat
您还需要为图像输出安装 vnstati
:
sudo apt install vnstati
如果它在您的包管理器上不可用,您可以从源代码下载它,并使用 make
为您的系统构建它。
vnstat
将立即开始收集数据,但需要一段时间才能收集到足够的数据以实际呈现任何内容。一旦它收集了一些数据,请在几个小时后返回它,并运行 vnstat
查看它的输出:
vnstat

如果日志不完整,这会显示接收到的 GiB (RX) 和传输的 GiB (TX),以及总数和基于先前使用情况的估计。请记住,这是以 Gibi 字节为单位,而不是 Giga 字节,尽管差异没有更小的 Giga位那么大。
如果想要更详细的输出,可以按小时输出:
vnstat -h

要输出图像摘要,您可以使用以下命令(-s
用于摘要),将 eth0 替换为您要查看的任何网络设备:
vnstati -s -i eth0 -o ~/network-log.png

您还可以以相同的方式查看每小时的输出。
vnstati -h -i eth0 -o ~/network-log.png

如果您想进行更深入的分析,或将这些日志发送到其他地方,您可以使用 --json
标志输出所有 vnstat
的日志.