我发现这个脚本https://github.com/Cosmologist/collectd-network-bandwidth-usage。
<Plugin exec>
Exec user "/tmp/exec-network-bandwidth-usage.sh" "eth0"
</Plugin>
它运行一个 bash 脚本来检查 /sys/class/net/eth0/statistics/rx_bytes 和 tx_bytes。
#!/bin/bash
HOSTNAME="${COLLECTD_HOSTNAME:-`hostname -f`}"
INTERVAL="${COLLECTD_INTERVAL:-60}"
while sleep "$INTERVAL"; do
RX=`cat /sys/class/net/$1/statistics/rx_bytes`
TX=`cat /sys/class/net/$1/statistics/tx_bytes`
echo "PUTVAL $HOSTNAME/network-bandwidth-usage/if_octets interval=$INTERVAL N:$RX:$TX"
done
我的目标是查看一段时间内传输了多少 MB 的流量。使用 /sys/class/net/eth0/statistics/rx_bytes 中的数据来查明整个服务器群产生了多少流量,这种做法可靠吗?
答案1
我已在很多 Linux 服务器上安装了 vnstat 命令来监控流量接口。安装起来非常简单,而且可以获得大量信息。 https://www.howtoforge.com/tutorial/vnstat-network-monitoring-ubuntu/
我猜测 /sys/class/net/eth0/statistics 是可靠的,但必须将其存储在监控应用程序中才能提取有用的信息... 在我们的系统中安装 vnstat 后,当您需要在系统本身中获取所有这些信息。
我希望它能有用
亲切的问候