1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
#!@@GOODSH@@
# -*- sh -*-
: << =cut
=head1 NAME
if_ - Wildcard plugin to monitor traffic network interfaces
=head1 CONFIGURATION
=head2 ENVIRONMENT VARIABLES
This plugin does not use environment variables
=head2 WILDCARD PLUGIN
This is a wildcard plugin. To monitor an interface, link
if_<interface> to this file. E.g.
ln -s /usr/share/munin/plugins/if_ \
/etc/munin/node.d/if_eth0
...will monitor eth0.
Any device found in /usr/bin/kstat can be monitored.
=head1 AUTHOR
Unknown author
=head1 LICENSE
GPLv2
=head1 MAGIC MARKERS
#%# family=auto
#%# capabilities=autoconf suggest
=cut
. "$MUNIN_LIBDIR/plugins/plugin.sh"
INTERFACE=${0##*/if_}
if [ "$1" = "autoconf" ]; then
if [ -x /usr/bin/kstat ]; then
echo yes
exit 0
else
echo "no (/usr/bin/kstat not found)"
exit 0
fi
fi
if [ "$1" = "suggest" ]; then
if [ -x /usr/bin/kstat ]; then
kstat -p -m '/^(?!unix)/' -n '/^(?!mac$)/' -s rbytes64 | awk -F: '{ print $3 }'
exit 0
else
exit 1
fi
fi
if [ "$1" = "config" ]; then
echo "graph_order rbytes obytes"
echo "graph_title $INTERFACE traffic"
echo 'graph_args --base 1000'
echo 'graph_vlabel bits per ${graph_period} in (-) / out (+)'
echo 'graph_category network'
echo 'rbytes.label received'
echo 'rbytes.type DERIVE'
echo 'rbytes.graph no'
echo 'rbytes.cdef rbytes,8,*'
echo 'rbytes.min 0'
print_warning rbytes
print_critical rbytes
echo 'obytes.label bps'
echo 'obytes.type DERIVE'
echo 'obytes.negative rbytes'
echo 'obytes.cdef obytes,8,*'
echo 'obytes.min 0'
print_warning obytes
print_critical obytes
exit 0
fi;
kstat -p -m '/^(?!unix)/' -n $INTERFACE -s '*bytes64' | sed \
's/.*\(.bytes\)64./\1.value /'
|