| Current File : //usr/local/nagios/libexec/check_interfaces |
#!/bin/bash
############################################################
# #
# Watch network-interfaces with Nagios - The simple script #
# #
# by Markus Walther - www.markuswalther.org #
# #
############################################################
# #
# Usage: #
# 1. Copy this script to the nagios plugin-directory #
# 2. Set the exec-rights (chmod a+x check_network) #
# 3. If missing, install "mii-tool" #
# 4. Comment out "Defaults requiretty" in /etc/sudoers #
# and let user nagios execute mii-tool: #
# nagios ALL=NOPASSWD:/sbin/mii-tool #
# 5. commands.cfg: $USER1$/check_network $ARG1$ #
# 6. services.cfg: check_network!eth0 #
# #
# Now it should work fine :) #
# #
############################################################
#
# Read the command-input
netdev=$1
#
# Exit-Codes:
# 0 = $STATE_OK
# 1 = $STATE_WARNING
# 2 = $STATE_CRITICAL
# 3 = $STATE_UNKNOWN
# If no input was given
if [ "$1" = '' ]; then
echo "Usage: check_network INTERFACE"
echo "Example: ./check_network eth0"
echo "Interface not given"
exit 3
fi
# Interface works fine
if [ `/sbin/mii-tool | grep $netdev | grep "link ok" | wc -l 2>&1` == "1" ]
then
echo `/sbin/mii-tool $netdev ` ##-v | tail -n1`
exit 0
# Link Slow Warning: Warning if Interface is on 10 MBit/s
elif [ `/sbin/mii-tool | grep $netdev | grep "10 " | wc -l 2>&1` == "1" ]
then
echo `/sbin/mii-tool $netdev`
exit 1
# Link Down - Critical
elif [ `/sbin/mii-tool | grep $netdev | grep "no link" | wc -l 2>&1` == "1" ]
then
echo `/sbin/mii-tool $netdev`
exit 2
# Interface not found
elif [ `/sbin/mii-tool | grep $netdev | grep "No such device" | wc -l 2>&1` == "0" ]
then
echo "Interface not found"
exit 3
# Unknown if there is no tty for nagios
elif [ `/sbin/mii-tool $netdev 2>&1 | cut -d \ -f 1` == "sudo" ]
then
echo "Comment out [defaults requiretty] in /etc/sudoers"
exit 3
# Another error?
else echo `/sbin/mii-tool $netdev 2>&1`
echo "Unknown error"
exit 3
fi