#!/bin/sh : << =cut =head1 NAME if_err_ - Wildcard plugin to monitor errors on 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_ to this file. E.g. ln -s /usr/share/munin/plugins-auto/if_err_ \ /etc/munin/node.d/if_err_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_err_} 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 -s ierrors | awk -F: '$1 != "unix" && $3 != "mac" { print $3 }' exit 0 else exit 1 fi fi if [ "$1" = "config" ]; then echo "graph_order ierrors oerrors collisions" echo "graph_title Interface $INTERFACE errors & collisions" echo 'graph_args --base 1000' echo 'graph_vlabel events / ${graph_period}' echo 'graph_category network' echo 'ierrors.label Input Errors' echo 'ierrors.type COUNTER' echo 'ierrors.max 2000000000' print_warning ierrors print_critical ierrors echo 'oerrors.label Output Errors' echo 'oerrors.type COUNTER' echo 'oerrors.max 2000000000' print_warning oerrors print_critical oerrors echo 'collisions.label Collisions' echo 'collisions.type COUNTER' echo 'collisions.max 2000000000' print_warning collisions print_critical collisions exit 0 fi kstat -p -n $INTERFACE -s '/^([io]errors|collisions)$/' | awk -F: ' $1 != "unix" { split($4, four, "\t") print four[1] ".value", four[2] }'