Vedr.: Re: Disk space checks

Thomas Jens Lauritsen tjl at topdanmark.dk
Tue Apr 13 10:44:13 CEST 2004





Hi Andreas,

I use SNMP to get disk space values. I have made a plugin called
check_diskspace.sh.

I uses it for win2000 servers, but you should be able to change it to any
snmp system.

I have attached the plugin to this mail ...It might be usefull to
you....check the services.jpg

#!/bin/sh
#
# check_diskspace.sh via SNMP
#
# Autor         : Thomas Jens Lauritsen <tjl at topdanmark.dk> + inspired by
other plugin Authors
# Date          : 14 Jan 2004
# Version       : 1.0
# Description : Script that checks for free disk space in a server with
SNMP.
# Req.          : The script uses the bc - calulator (Installed on most
*nix's)
# Advice        : Run the script for every 60 min - to keep the load down
on the cpu.
# Nagios        : In the services.cfg. Exampel:
check_diskspace.sh!public!1!2!100!1000!
# Info          : You have to change Oid for your system - see below (num1
and num2).
#
#                                                     crit  warn
# ./check_diskspace.sh <ip-address> <public> <2> <2> <100> <1000>
#
# Verify that there is an input
# ------------------------------
#
if [ -z "$1" ]; then
echo "usage  : check_diskspace.sh <hostname> <snmp-community> <num1> <num2>
<crit-num3> <warn-num4>"
echo "example: check_diskspace.sh 192.168.1.1 public 2 2 100 1000"
echo
exit
fi
#

# Variables
# ---------
PROGPATH=`echo $0 | /bin/sed -e 's,[\\/][^\\/][^\\/]*$,,'`
. $PROGPATH/utils.sh
SERVER=$1                    # Example: 10.0.0.3
SNMPCOMUNITY=$2              # Example: public
NUM1=$3                      # Example: 2 (Drive C Storage Used)
NUM2=$4                      # Example: 2 (Drive C Storage Size/Capacity)
NUM3=$5                      # Example: "100"   (Mb) CRITICAL
NUM4=$6                      # Example: "1000"  (Mb) WARNING

# CHECK HOST
#snmpget -v 1 $SERVER -c public .system.sysUpTime.0

# GET STORAGE SIZE & USED VALUE (CHANGE THE OID's TO FIT YOUR DESTINATION
OS)

# Used disk value
USED=`/usr/bin/snmpget $SERVER $SNMPCOMUNITY
.iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageUsed.$NUM1
 -t 5| awk '{ print $3  }'`
#echo $USED

# GET STORAGE SIZE AND USED VALUE (CHANGE THE OID's TO FIT YOUR DESTINATION
OS)
# Storage value
SIZE=`/usr/bin/snmpget $SERVER $SNMPCOMUNITY
.iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageSize.$NUM1
 -t 5| awk '{ print $3  }'`
#echo $SIZE

# GET BYTE VALUE FOR DISK SYSTEM (512;1024;2048;4096)
#VALUE=`/usr/local/nagios/libexec/check_snmp -H $SERVER -o
.1.3.6.1.2.1.25.2.3.1.4.$NUM1 |awk '{ print $4  }'`
VALUE=`/usr/bin/snmpget $SERVER $SNMPCOMUNITY
.iso.org.dod.internet.mgmt.mib-2.host.hrStorage.hrStorageTable.hrStorageEntry.hrStorageAllocationUnits.$NUM1
 -t 5 |awk '{ print $3  }'`
#/usr/bin/snmpget $SERVER $SNMPCOMUNITY .1.3.6.1.2.1.25.2.3.1.4.$3 |awk '{
print $4  }'>>/usr/local/nagios/libexec/$SERVER.txt
#echo $VALUE

# CALUCULATE FREE DISK SPACE
C=$((SIZE-USED))

#echo $C*$VALUE/1024/1024 | bc
>>/usr/local/nagios/libexec/$SERVER-$NUM1.txt
RESULT=`echo $C*$VALUE/1024/1024 | bc`
#echo $RESULT

if [ "$3" == "2" ] ; then
      DISKVOL=C
#      echo "$DISKVOL"

elif [ "$3" == "3" ] ; then
      DISKVOL=D
#      echo "$DISKVOL"

elif [ "$3" == "4" ] ; then
      DISKVOL=E
#      echo "$DISKVOL"
#      exit
fi

#echo DISK OK - $E MB

# TELL NAGIOS WHAT WE COLLECTED - AND GIVE IT A STATE
if [ "$RESULT" -lt "$NUM3" ] ; then
      $ECHO "DISKSPACE $DISKVOL - CRITICAL $RESULT MB\n"
      exitstatus=$STATE_CRITICAL

elif [ "$RESULT" -lt "$NUM4" ] ; then
      $ECHO "DISKSPACE $DISKVOL - WARNING $RESULT MB\n"
      exitstatus=$STATE_WARNING

elif [ "$RESULT" -gt "$NUM4" ] ; then
     $ECHO "DISKSPACE $DISKVOL - OK $RESULT MB\n"
      exitstatus=$STATE_OK

else
      $ECHO "DISKSPACE - UNKNOWN $RESULT MB\n"
      exitstatus=$STATE_UNKNOWN
fi

exit $exitstatus
# END OF DOC

(See attached file: check_diskspace.sh)(See attached file: services.jpg)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: check_diskspace.sh
Type: application/octet-stream
Size: 3557 bytes
Desc: not available
URL: <https://www.monitoring-lists.org/archive/users/attachments/20040413/713e2933/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: services.jpg
Type: image/jpeg
Size: 34705 bytes
Desc: not available
URL: <https://www.monitoring-lists.org/archive/users/attachments/20040413/713e2933/attachment.jpg>


More information about the Users mailing list