Using Nagios

How to use Nagios to Monitor your scheduled jobs

Get informed in case the last run had problems (exitcode > 0)

Our example job's md5 is 0f517c9d32a032b84615c82461e1c864

In your host config:

define service {
        use                             generic-service;
        host_name                       my.server.com
        service_description             Last Run Failed
        check_command                   check_nrpe!check_last_run_job1
        notifications_enabled           1
}

In your nrpe.cfg:

command[check_last_run_job1]=cd /your/project && php artisan scheduler-watcher:checklastevent 0f517c9d32a032b84615c82461e1c864 --no-ansi

Get informed in case the job did not run in the last 15 minutes

Write a SQL that shows you how many minutes have passed since last run:

SELECT	CEILING(TIME_TO_SEC(TIMEDIFF(NOW(),je.jobe_db_created))/60) AS c 
FROM job_events je
	INNER JOIN jobs j
		ON je.jobe_job_id = j.job_id
WHERE j.job_md5 = '0f517c9d32a032b84615c82461e1c864'
ORDER BY je.jobe_id DESC LIMIT 0, 1;

Write a bash script, PHP or whatever you prefer:

In case the result of the SQL shows more than 15, exit your script with exitcode 2, if lower, exit with 0.

Read this for further informations and example scripts.

Last updated