Я нашел этот сценарий в 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 у вас есть вся эта информация, когда она вам нужна в системе сам.
Я надеюсь это может быть полезно
С уважением