Step 1:
Write the script that will check for the given condition, and verify its functionality. This is a simple script that will check that the crond process is running. The data after the pipe is interpreted by nagios as performance data, and is being added in so that the status of the process can be graphed over a period of time in an rrd graph. Adding graphs to nagios will be covered in another post.
Note that the exit codes get interpreted by nagios as follows:
0 - OK
1 - WARNING
2 - CRITICAL
3 - UNKNOWN
#!/bin/bash
lineCount=`ps -eaf|grep -v grep|grep " crond"|wc -l`
if [ $lineCount -eq "0" ]; then
echo "WARNING - crond is not running|proc=$lineCount"
exit 1;
fi
if [ $lineCount -eq "1" ]; then
echo "OK - crond is running|proc=$lineCount"
exit 0;
fi
if [ $lineCount -gt "1" ]; then
echo "UNKNOWN - crond process count > 1|proc=$lineCount"
exit 3;
fi
echo "UNKNOWN - crond process count is unknown|proc=$lineCount"
exit 3;
Step 2:
Add the command to /etc/nagios/nrpe.cfg on the host. The necessary line to add in this case is:
command[check_crond]=/usr/lib/nagios/plugins/check_crond
Step 3:
Add the service check to the nagios server. Restart the nagios process.
define service{
use generic-service
host_name puppetmaster
service_description Crond Process
check_command check_nrpe!check_crond
}
service nagios restart
Step 4:
Verify functionality.

No comments:
Post a Comment