From e49b78ab528a3f2de0d2f0fd58c32c2b03ae806e Mon Sep 17 00:00:00 2001 From: Arturo Borrero Gonzalez Date: Thu, 20 Sep 2012 17:30:18 +0200 Subject: [PATCH 1/4] Added `traffic' plugin, to allow measure server total throughput in both IPv4 and IPv6 --- plugins/network/traffic | 74 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 plugins/network/traffic diff --git a/plugins/network/traffic b/plugins/network/traffic new file mode 100644 index 00000000..aa08b834 --- /dev/null +++ b/plugins/network/traffic @@ -0,0 +1,74 @@ +#!/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 +EOF + exit 0 +fi + +if [ -r /proc/net/dev ] +then + echo "IPv4.value $(( `egrep -v bond\|lo /proc/net/dev | awk -F' ' '{print $2"+"$10}' | grep [0-9] | paste -sd+ | bc` * 8 ))" +else + echo "IPv4.value 0" + echo "W: Unable to read /proc/net/dev" >&2 +fi + +if [ -r /proc/net/snmp6 ] +then + echo "IPv6.value $(( `egrep Ip6InOctets\|Ip6OutOctets /proc/net/snmp6 | awk -F' ' '{print $2}' | paste -sd+ | bc` * 8 ))" +else + echo "IPv6.value 0" + echo "W: Unable to read /proc/net/snmp6" >&2 +fi + +exit 0 From 0a0cc634eaff032a68c0c116882d36e7e03743a0 Mon Sep 17 00:00:00 2001 From: Arturo Borrero Gonzalez Date: Thu, 20 Sep 2012 17:31:26 +0200 Subject: [PATCH 2/4] changed permissions, like others pluggins. --- plugins/network/traffic | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 plugins/network/traffic diff --git a/plugins/network/traffic b/plugins/network/traffic old mode 100644 new mode 100755 From 09b0f002d52830b8062c171df1c065548b0fb332 Mon Sep 17 00:00:00 2001 From: Arturo Borrero Gonzalez Date: Fri, 21 Sep 2012 10:50:29 +0200 Subject: [PATCH 3/4] added "Total bps" to help know the exact total traffic in the graph. --- plugins/network/traffic | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/plugins/network/traffic b/plugins/network/traffic index aa08b834..b0dd1a0e 100755 --- a/plugins/network/traffic +++ b/plugins/network/traffic @@ -51,24 +51,33 @@ 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 - echo "IPv4.value $(( `egrep -v bond\|lo /proc/net/dev | awk -F' ' '{print $2"+"$10}' | grep [0-9] | paste -sd+ | bc` * 8 ))" + ipv4=$(( `egrep -v bond\|lo /proc/net/dev | awk -F' ' '{print $2+$10}' | paste -sd+ | bc` * 8 )) + echo "IPv4.value $ipv4" else - echo "IPv4.value 0" - echo "W: Unable to read /proc/net/dev" >&2 + echo "IPv4.value 0" + echo "W: Unable to read /proc/net/dev" >&2 fi if [ -r /proc/net/snmp6 ] then - echo "IPv6.value $(( `egrep Ip6InOctets\|Ip6OutOctets /proc/net/snmp6 | awk -F' ' '{print $2}' | paste -sd+ | bc` * 8 ))" + ipv6=$(( `egrep Ip6InOctets\|Ip6OutOctets /proc/net/snmp6 | awk -F' ' '{print $2}' | paste -sd+ | bc` * 8 )) + echo "IPv6.value $ipv6" else - echo "IPv6.value 0" - echo "W: Unable to read /proc/net/snmp6" >&2 + echo "IPv6.value 0" + echo "W: Unable to read /proc/net/snmp6" >&2 fi +echo "total.value $( echo $ipv4 + $ipv6 | bc )" exit 0 + From f20325386120cc710f3c5d4e8a60e0861c27e571 Mon Sep 17 00:00:00 2001 From: Arturo Borrero Gonzalez Date: Tue, 25 Sep 2012 14:03:59 +0200 Subject: [PATCH 4/4] Added support even larger numbers. --- plugins/network/traffic | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/network/traffic b/plugins/network/traffic index b0dd1a0e..5df88dc6 100755 --- a/plugins/network/traffic +++ b/plugins/network/traffic @@ -62,7 +62,7 @@ fi if [ -r /proc/net/dev ] then - ipv4=$(( `egrep -v bond\|lo /proc/net/dev | awk -F' ' '{print $2+$10}' | paste -sd+ | bc` * 8 )) + 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" @@ -71,7 +71,7 @@ fi if [ -r /proc/net/snmp6 ] then - ipv6=$(( `egrep Ip6InOctets\|Ip6OutOctets /proc/net/snmp6 | awk -F' ' '{print $2}' | paste -sd+ | bc` * 8 )) + 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"