#!/bin/sh # Usage: check_disk_snmp hostname community volume warning critical # This plugin requires the bc program and snmp utilities # Example: check_disk_snmp main public 2 80% 95% STATE_OK=0 STATE_WARNING=1 STATE_CRITICAL=2 STATE_UNKNOWN=3 STATE_DEPENDENT=4 #MESSAGE=`telnet $1 $PORT 2> /dev/null | grep -e ^$2` # You can use awk or cut #DISK_USED=`snmpget -v 1 $1 -c $2 hrStorageUsed.$3 | awk '{print $4}'` #DISK_SIZE=`snmpget -v 1 $1 -c $2 hrStorageSize.$3 | awk '{print $4}'` DISK_USED=`snmpget -v 1 $1 -c $2 hrStorageUsed.$3 | cut -d \ -f4` DISK_SIZE=`snmpget -v 1 $1 -c $2 hrStorageSize.$3 | cut -d \ -f4` DISK_DESC=`snmpget -v 1 $1 -c $2 hrStorageDescr.$3 | cut -d \ -f4` USE_PERCENTAGE=$(echo "100 * $DISK_USED / $DISK_SIZE" | bc) WARNING=`echo $4 | cut -d% -f1` CRITICAL=`echo $5 | cut -d% -f1` STATE=$STATE_UNKNOWN STATUS="DISK UNKNOWN" if [ $USE_PERCENTAGE -lt $WARNING ]; then STATE=$STATE_OK STATUS="DISK OK" fi if [ $USE_PERCENTAGE -eq $WARNING ]; then STATE=$STATE_OK STATUS="DISK OK" fi if [ $USE_PERCENTAGE -gt $WARNING ]; then STATE=$STATE_WARNING STATUS="DISK WARNING" fi if [ $USE_PERCENTAGE -gt $CRITICAL ]; then STATE=$STATE_CRITICAL STATUS="DISK CRITICAL" fi echo $STATUS - $USE_PERCENTAGE% of $DISK_DESC on $1 used exit $STATE or #!/bin/sh # Usage: check_disk_snmp hostname community volume warning critical # This plugin requires the bc program and snmp utilities # Example: check_disk_snmp main public 2 80% 95% STATE_OK=0 STATE_WARNING=1 STATE_CRITICAL=2 STATE_UNKNOWN=3 STATE_DEPENDENT=4 #MESSAGE=`telnet $1 $PORT 2> /dev/null | grep -e ^$2` # You can use awk or cut #DISK_USED=`snmpget -v 1 $1 -c $2 hrStorageUsed.$3 | awk '{print $4}'` #DISK_SIZE=`snmpget -v 1 $1 -c $2 hrStorageSize.$3 | awk '{print $4}'` DISK_USED=`snmpget -v 1 $1 -c $2 hrStorageUsed.$3 | cut -d \ -f4` DISK_SIZE=`snmpget -v 1 $1 -c $2 hrStorageSize.$3 | cut -d \ -f4` DISK_DESC=`snmpget -v 1 $1 -c $2 hrStorageDescr.$3 | cut -d \ -f4` USE_PERCENTAGE=$(echo "100 * $DISK_USED / $DISK_SIZE" | bc) WARNING=`echo $4 | cut -d% -f1` CRITICAL=`echo $5 | cut -d% -f1` STATE=$STATE_OK STATUS="$USE_PERCENTAGE% OK" if [ $USE_PERCENTAGE -gt $WARNING ]; then STATE=$STATE_WARNING STATUS="$USE_PERCENTAGE% WARNING" fi if [ $USE_PERCENTAGE -gt $CRITICAL ]; then STATE=$STATE_CRITICAL STATUS="$USE_PERCENTAGE% CRITICAL" fi echo $STATUS - $USE_PERCENTAGE% of $DISK_DESC on $1 used exit $STATE # 'check_disk_snmp' command definition define command{ command_name check_disk_snmp command_line $USER1$/check_disk_snmp $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $ARG4$ } define service{ use generic-service ; Name of service template to use host_name main service_description C DRIVE is_volatile 0 check_period 24x7 max_check_attempts 3 normal_check_interval 5 retry_check_interval 1 contact_groups nt-admins notification_interval 120 notification_period 24x7 notification_options c,r check_command check_disk_snmp!public!2!80%!90% }