Nagios Core CPU Plugin

Support forum for Nagios Core, Nagios Plugins, NCPA, NRPE, NSCA, NDOUtils and more. Engage with the community of users including those using the open source solutions.
Locked
vnoc
Posts: 54
Joined: Thu Jul 27, 2017 1:51 am

Nagios Core CPU Plugin

Post by vnoc »

Hi Team,

I was been using a CPU Load plugin which gives me the CPU load is percentage . This plugin is working fine in less than 7 Redhat versions perfectly.

But right now all my servers versions are getting changes to 7.2 Redhat and this plugin is not working.

Can anyone help me in changing the script to be usable in 7.2 version.

Please find the attached of current plugin which I have been using
Attachments
check_load.zip
(728 Bytes) Downloaded 133 times
User avatar
mcapra
Posts: 3739
Joined: Thu May 05, 2016 3:54 pm

Re: Nagios Core CPU Plugin

Post by mcapra »

Just saying "it's not working" isn't very helpful, particularly with third party scripts. As part of troubleshooting, knowing how is it not working is very valuable. What sorts of outputs exist, how the script is behaving compared to how it used to, etc.

I suspect the issue is with the trailing cut command assigned to IDLE as it's expecting a % symbol as the delimiter. I don't think the top output displays a % character in Cent/RHEL 7 though.

I don't have a RHEL 7.2 box to test against, but this works fine for me on CentOS 7.4:

Code: Select all

#!/bin/sh
# Version 0.2
#
#       ### History ###
# V0.1          Created script from CPU Idle script
# V0.2          Handle dicimal compare and output

if [ "$1" = "-w" ] && [ "$2" -gt "0" ] && [ "$3" = "-c" ] && [ "$4" -gt "0" ] ; then
        warn=$2
        crit=$4
        IDLE=`top -b -n2|grep Cpu|tail -1|cut -d',' -f4|cut -d ' ' -f2`
        USAGE=`echo "100 - $IDLE"|bc|sed -r 's/^\./0./g'` ||exit 3
#       echo "DEBUG:    head: ${USAGE%%.*}  tail:  ${USAGE##*.} "
#       echo "DEBUG:    ||$USAGE_RAW||  ,  ||$USAGE||"
        if [ $warn -lt ${USAGE%%.*} ];then
                if [ $crit -lt ${USAGE%%.*} ]; then
                echo "CRITICAL - CPU Usage = $USAGE %|CPU Usage=$USAGE%;;;;"
                exit 2
        else
                echo "WARNING - CPU Usage = $USAGE %|CPU Usage=$USAGE%;;;;"
                exit 1
        fi
else
                echo "OK - CPU Usage = $USAGE %|CPU Usage=$USAGE%;;;;"
        exit 0
fi
else
        echo "$0 - Nagios Plugin for checking CPU Usage in percentage "
        echo ""
        echo "Usage:    $0 -w <warnlevel> -c <critlevel>"
        echo "  = warnlevel and critlevel is warning and critical value for alerts. "
        echo ""
        echo "EXAMPLE:  /usr/lib64/nagios/plugins/$0 -w 80 -c 90 "
        echo "  = This will send warning alert when CPU Usage percentage is higher than 80%, and send critical when higher than 90%"
        echo ""
        exit 3
fi
In action:

Code: Select all

# ./check_load -w 10 -c 20
OK - CPU Usage = 6.4 %|CPU Usage=6.4%;;;;
Former Nagios employee
https://www.mcapra.com/
kyang

Re: Nagios Core CPU Plugin

Post by kyang »

Thanks @mcapra!
Locked