#! /bin/bash #This Plug-in monitors the Pending Tasks in Cassandra TPSTATS output (combined in all Stages) # Author - Juned Memon #########THIS part is for Nagios ################################ PROGNAME=`/usr/bin/basename $0` PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'` REVISION=`echo '$Revision: 1749 $' | sed -e 's/[^0-9.]//g'` #. $PROGPATH/utils.sh . /usr/local/nagios/libexec/utils.sh ###################################################################### #Function to print Usage function usage { usage1="Usage: $0 [-w ] [-c ]" usage2=" is Number of Pending Jobs for WARNing state Default is 5." usage3=" is Number of Pending Jobs for Critical state Default is 10." echo $usage1 echo"" echo $usage2 echo"" echo "$usage3" exit $STATE_UNKNOWN } WARN=5 CRIT=10 ##################################################################### # get parameter values in Variables while test -n "$1"; do case "$1" in -c ) CRIT=$2 shift ;; -w ) WARN=$2 shift ;; -h) usage ;; *) echo "Unknown argument: $1" usage ;; esac shift done ##################################################################### PENDING=$(nodetool -h localhost tpstats | awk '{if (NR>1 && NR <19) } { sum+=$1} END {print sum} ') echo "$PENDING Pending Tasks in Cassandra TPSTATS" #if CRIT > PENDING >WARN then WARNing if [ $PENDING -ge $WARN ]; then if [ $PENDING -lt $CRIT ]; then exitstatus=$STATE_WARNING exit $exitstatus fi fi # PENDING>CRIT then CRITical if [ $PENDING -ge $CRIT ]; then exitstatus=$STATE_CRITICAL exit $exitstatus fi # 0<=PENDING