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
Was this helpful?