That is looking pretty awful for a open source monitoring solution like Nagios.
Anyway, I am trying to create a simple plugin for nagios. First step is to make it work, second step is to add "echo $hostname" in it so I get information of hostname.
Nagios Server:
/etc/nagios/objects/command.cfg
Code: Select all
define command{
command_name check_loadavg
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_loadavg
}
/usr/lib64/nagios/plugins/check_nrpe -H 192.168.1.11 -c check_loadavg
NRPE: Command 'check_loadavg' not defined
cat /usr/lib64/nagios/plugins/check_loadavg
#!/bin/bash
loadavg=$( uptime | awk -F: '{print $5}' | xargs )
load1int=$( echo $loadavg | cut -d "." -f 1 )
load5int=$( echo $loadavg | awk -F, '{print $2}' | xargs | cut -d "." -f 1 )
load15int=$( echo $loadavg | awk -F, '{print $3}' | xargs | cut -d "." -f 1 )
load1=$( echo $loadavg | awk -F, '{print $1}' )
load5=$( echo $loadavg | awk -F, '{print $2}' )
load15=$( echo $loadavg | awk -F, '{print $3}' )
output="Load Average: $loadavg | Load_1min=$load1, Load_5min=$load5, Load_15min=$load15"
if [ $load1int -le 1 -a $load5int -le 1 -a $load15int -le 1 ]
then
echo "OK- $output"
exit 0
elif [ $load1int -le 2 -a $load5int -le 2 -a $load15int -le 2 ]
then
echo "WARNING- $output"
exit 1
elif [ $load1int -gt 2 -a $load5int -gt 2 -a $load15int -gt 2 ]
then
echo "CRITICAL- $output"
exit 2
else
echo "UNKNOWN- $output"
exit 3
fi
If I execute one of the in-built nagios scripts I have to provide parameters
/usr/lib64/nagios/plugins/check_load
check_load: Could not parse arguments
Usage:
check_load [-r] -w WLOAD1,WLOAD5,WLOAD15 -c CLOAD1,CLOAD5,CLOAD15
For check_loadavg, I don't have to provide any parameters.
/usr/lib64/nagios/plugins/check_loadavg
OK- Load Average: 0.41, 0.47, 0.54 | Load_1min=0.41, Load_5min= 0.47, Load_15min= 0.54
Permissions on files.
Code: Select all
ls -l /usr/lib64/nagios/plugins/check_loadavg
-rwxr-xr-x. 1 root root 861 Apr 15 00:40 /usr/lib64/nagios/plugins/check_loadavg
ls -l /usr/lib64/nagios/plugins/check_load
-rwxr-xr-x. 1 root root 49312 Sep 12 2015 /usr/lib64/nagios/plugins/check_load
At client machine, where nrpe is running:
File:
/etc/nagios/nrpe.cfg
Code: Select all
command[check_loadavg]=/usr/lib64/nagios/plugins/check_loadavg
/usr/lib64/nagios/plugins/check_loadavg
#!/bin/bash
loadavg=$( uptime | awk -F: '{print $5}' | xargs )
load1int=$( echo $loadavg | cut -d "." -f 1 )
load5int=$( echo $loadavg | awk -F, '{print $2}' | xargs | cut -d "." -f 1 )
load15int=$( echo $loadavg | awk -F, '{print $3}' | xargs | cut -d "." -f 1 )
load1=$( echo $loadavg | awk -F, '{print $1}' )
load5=$( echo $loadavg | awk -F, '{print $2}' )
load15=$( echo $loadavg | awk -F, '{print $3}' )
output="Load Average: $loadavg | Load_1min=$load1, Load_5min=$load5, Load_15min=$load15"
if [ $load1int -le 1 -a $load5int -le 1 -a $load15int -le 1 ]
then
echo "OK- $output"
exit 0
elif [ $load1int -le 2 -a $load5int -le 2 -a $load15int -le 2 ]
then
echo "WARNING- $output"
exit 1
elif [ $load1int -gt 2 -a $load5int -gt 2 -a $load15int -gt 2 ]
then
echo "CRITICAL- $output"
exit 2
else
echo "UNKNOWN- $output"
exit 3
fi
Restarted nagios server but still no charm.
I have no idea where I am going wrong!
Please assist. Thanks.