diff --git a/plugins/network/traffic b/plugins/network/traffic new file mode 100755 index 00000000..5df88dc6 --- /dev/null +++ b/plugins/network/traffic @@ -0,0 +1,83 @@ +#!/bin/bash +# -*- bash -*- + +: << =cut + +=head1 NAME + +traffic - Plugin to monitor the traffic (throughput) by IP protocols. + +=head1 CONFIGURATION + +No special configuration is needed. + +If trouble reading files, use: + + [traffic] + user root + +=head1 AUTHORS + +=over + +=item 2012.09.20: Initial version by Arturo Borrero Gonzalez + +=back + +=head1 LICENSE + +GPLv2 + +=head1 MAGIC MARKERS + + #%# family=auto + #%# capabilities=autoconf + +=cut + + +if [ "$1" == "config" ] +then + cat <<'EOF' +graph_title Throughput by IP protocol +graph_vlabel bits per ${graph_period} +graph_category network +graph_args --base 1000 --upper-limit 100 -l 0 +IPv4.label IPv4 bps +IPv4.min 0 +IPv4.type DERIVE +IPv4.draw AREA +IPv6.label IPv6 bps +IPv6.min 0 +IPv6.type DERIVE +IPv6.draw STACK +total.label Total bps +total.min 0 +total.type DERIVE +total.draw LINE1 +EOF + exit 0 +fi + + +if [ -r /proc/net/dev ] +then + ipv4=$( echo "`egrep -v bond\|lo /proc/net/dev | awk -F' ' '{print $2+$10}' | paste -sd+ | bc` * 8" | bc ) + echo "IPv4.value $ipv4" +else + echo "IPv4.value 0" + echo "W: Unable to read /proc/net/dev" >&2 +fi + +if [ -r /proc/net/snmp6 ] +then + ipv6=$( echo "`egrep Ip6InOctets\|Ip6OutOctets /proc/net/snmp6 | awk -F' ' '{print $2}' | paste -sd+ | bc` * 8" | bc ) + echo "IPv6.value $ipv6" +else + echo "IPv6.value 0" + echo "W: Unable to read /proc/net/snmp6" >&2 +fi +echo "total.value $( echo $ipv4 + $ipv6 | bc )" + +exit 0 +