#!/bin/bash # call this script with 6 parameters # $1 = DC IP-address # $2 = username # $3 = password # $4 = storage-name # $5 = warning value in percent # $6 = critical value in percent # # for example # ./check_esx_storage.sh 192.168.100.250 checker checkerpassword datastore1 80 95 # ########################### # # prerequisites for this script # * add a user on the ESX/ESXi server with read-only access so he cannot break anything # * download check_esx3.pl script - at least version from Fri, 17 Sep 2010 09:14:32 +0000 # Info: http://www.monitoringexchange.org/inventory/Check-Plugins/Virtualization/VMware-%2528ESX%2529/check_esx3 # Download: http://git.op5.org/git/?p=nagios/op5plugins.git;a=blob;f=check_esx3.pl# # +++ For correct usage you have to install some perl-mods - for more info; see check_esx3.pl-file ########################### # used later for the Nagios status exits . /usr/local/nagios/libexec/utils.sh # most echos are for debugging # multiplied by 100 for calculation purpose. In a bash script you cannot calculate floats so easily WARNING=$(($5 * 100)) CRITICAL=$(($6 * 100)) # get free MB. This is normally a float figure! Here the . is removed so that the number can be used for calcualting stuff. FREEMB=$(/usr/local/nagios/libexec/check_esx.pl -D $1 -u $2 -p $3 -l vmfs -s $4 | awk '{print $4 }' | awk -F '=' '{print $2}' | sed 's/[.]//') #echo "FREE: $FREEMB" # get free MB in "percent". This is normally a float figure! Here the . is removed so that the number can be used for calculation FREEPERCENT=$(/usr/local/nagios/libexec/check_esx.pl -D $1 -u $2 -p $3 -l vmfs -s $4 | awk '{print $6}' | sed 's/[(]//' | sed 's/[)]//' | sed 's/[.]//' | sed 's/[%]//' | sed 's/[)]//') #echo "FREE %: $FREEPERCENT" # calculate how much MB are used in "percent". Remember stuff above! USEDPERCENT=$((10000 - $FREEPERCENT)) #echo "USED: $USEDPERCENT" # "1%" in MB ONEPERCENT=$(($FREEMB / $FREEPERCENT)) #echo "ONE PERCENT: $ONEPERCENT" # calculate the amount of "MB" that are used. USEDMB=$(($ONEPERCENT * $USEDPERCENT)) #echo "USED: $USEDMB" # calculate the total MB of the datastore TOTALMB=$(($USEDMB + $FREEMB)) #echo "TOTAL: $TOTALMB" # calculate the real used MB USEDMB_FLOAT=`echo "scale=2 ; $USEDMB / 100" | bc` # calculate the real free MB FREEMB_FLOAT=`echo "scale=2 ; $FREEMB / 100" | bc` # calculate the real used amount in percent USEDPERCENT_FLOAT=`echo "scale=2 ; $USEDPERCENT / 100" | bc` # calculate the real free amount in percent FREEPERCENT_FLOAT=`echo "scale=2 ; $FREEPERCENT / 100" | bc` # calculate the real total amount in MB TOTALMB_FLOAT=`echo "scale=2 ; $TOTALMB / 100" | bc` # Nagios output with perfdata for nice graphs echo "$4: $USEDPERCENT_FLOAT% used ($USEDMB_FLOAT/$TOTALMB_FLOAT) | $4=$USEDPERCENT_FLOAT%;$5;$6;0;100" # Nagios status exits if [ $USEDPERCENT -lt $WARNING ] && [ $USEDPERCENT -lt $CRITICAL ]; then # echo OK exit $STATE_OK elif [ $USEDPERCENT -ge $WARNING ] && [ $USEDPERCENT -lt $CRITICAL ]; then # echo WARN exit $STATE_WARNING elif [ $USEDPERCENT -ge $WARNING ] && [ $USEDPERCENT -ge $CRITICAL ]; then # echo CRIT exit $STATE_CRITICAL fi
This website uses cookies so that we can offer you the best possible user experience. Cookie information is stored in your browser and performs functions such as recognizing you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.
Kommentare