#!/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 karte=$1 # # Exit-Codes: # 0 = $STATE_OK # 1 = $STATE_WARNING # 2 = $STATE_CRITICAL # 3 = $STATE_UNKNOWN if [ `sudo /sbin/mii-tool | grep $karte | grep ok | wc -l 2>&1` == "1" ] then echo `sudo /sbin/mii-tool $karte ` ##-v | tail -n1` # Interface works fine karte=AAA exit 0 elif [ `sudo /sbin/mii-tool | grep $karte | grep "10 " | wc -l 2>&1` == "1" ] then echo `sudo /sbin/mii-tool $karte` # Link Slow Warning: Warning if Interface is on 10 MBit/s karte=AAA exit 1 elif [ `sudo /sbin/mii-tool | grep $karte | grep "no link" | wc -l 2>&1` == "1" ] then echo `sudo /sbin/mii-tool $karte` # Link Down - Critical karte=AAA exit 2 elif [ `sudo /sbin/mii-tool | grep $karte | grep "No such device" | wc -l 2>&1` == "1" ] then echo `sudo /sbin/mii-tool $karte` # Interface not found karte=AAA exit 3 elif [ `sudo /sbin/mii-tool $karte 2>&1 | cut -d \ -f 1` == "sudo" ] then echo "Comment out [defaults requiretty] in /etc/sudoers" # Unknown if there is no tty for nagios karte=AAA exit 3 else echo `sudo /sbin/mii-tool $karte 2>&1` # Another error? karte=AAA exit 3 fi