Я нашел этот скрипт на 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
Моя цель - увидеть, сколько МБ трафика было передано за определенный промежуток времени. Насколько надежно использование данных из / sys / class / net / eth0 / statistics / rx_bytes, как это, чтобы узнать, сколько трафика производит вся наша ферма серверов?
Я установил на многих своих Linux-серверах команду vnstat для мониторинга интерфейса трафика. Его очень легко установить, и вы получите огромное количество информации. https://www.howtoforge.com/tutorial/vnstat-network-monitoring-ubuntu/
Думаю, / sys / class / net / eth0 / statistics надежны, но их нужно будет хранить в приложении для мониторинга. для извлечения полезной информации ... Если в нашей системе установлен vnstat, у вас будет вся эта информация, когда она вам понадобится, в самой системе.
Надеюсь, это может быть полезно
С уважением