#!@@GOODSH@@ # -*- sh -*- # # Wildcard-plugin to monitor network interfaces. To monitor an # interface, link if_packets_ to this file. E.g. # # ln -s /usr/share/munin/node/plugins-auto/if_packets_ /etc/munin/node.d/if_packets_eth0 # # ...will monitor eth0. # # To aggregate all network interfaces on the system (except lo0), # link if_packets_aggregated to this file. # # Any device found in /usr/bin/netstat can be monitored. # # Magic markers (optional - used by munin-config and some installation # scripts): # #%# family=auto #%# capabilities=autoconf suggest INTERFACE=${0##*if_packets_} if [ "$1" = "autoconf" ]; then if [ -x /sbin/ifconfig -o -x /usr/bin/netstat ]; then echo yes exit 0 else echo "no (/usr/bin/netstat not found)" exit 0 fi fi if [ "$1" = "suggest" ]; then if [ -x /sbin/ifconfig ] then ifconfig -l | sed -Ee 's/[[:<:]](pfsync|faith|pf(log|sync)|lo|plip|carp|enc|fwe)[^ ]*//g' | xargs -n 1 echo exit 0 elif [ -x /usr/bin/netstat ]; then netstat -i -b -n | sed -n -e '/^faith/d' -e '/^lo[0-9]/d' -e '/^pf(log|sync)/d' -e '//s/\** .*//p' exit 0 else exit 1 fi fi if [ "$1" = "config" ]; then echo "graph_order rpackets opackets" echo "graph_title $INTERFACE pps" echo 'graph_args --base 1000' echo 'graph_vlabel packets per ${graph_period} in (-) / out (+)' echo 'graph_category network' echo "graph_info This graph shows the packets counter of the $INTERFACE network interface. Please note that the traffic is shown in packets per second." echo 'rpackets.label received' echo 'rpackets.type COUNTER' echo 'rpackets.graph no' echo 'rpackets.min 0' echo 'opackets.label pps' echo 'opackets.type COUNTER' echo 'opackets.negative rpackets' echo 'opackets.min 0' echo "opackets.info Packets sent (+) and received (-) on the $INTERFACE network interface." exit 0 fi if [ "$INTERFACE" = "aggregated" ]; then /usr/bin/netstat -i -b -n | grep -v '^lo' | awk ' BEGIN { rsum = 0; osum = 0; } // { if (NF == 10) { rsum += $4; osum += $7; } else if (NF == 11) { if ($4 ~ /:/) { rsum += $5; osum += $8; } else { rsum += $4; osum += $8; } } else { # NF == 12 rsum += $6; osum += $9; } } END { printf "rpackets.value %i\n", rsum; printf "opackets.value %i\n", osum; }' else /usr/bin/netstat -i -b -n -I $INTERFACE | awk ' // { if (NF == 10) { print "rpackets.value", $4; print "opackets.value", $7; } else if (NF == 11) { if ($4 ~ /:/) { print "rpackets.value", $5; print "opackets.value", $8; } else { print "rpackets.value", $4; print "opackets.value", $8; } } else { # NF == 12 print "rpackets.value", $5; print "opackets.value", $9; } }' fi