Dynamically setting a new test interval for Nagios checks
Solution 1:
You can do it by using CHANGE_NORMAL_SVC_CHECK_INTERVAL and CHANGE_NORMAL_HOST_CHECK_INTERVAL.
Add an event handler for your service:
define service {
host_name ...
service_description ...
check_command ...
contact_groups ...
event_handler change_check_interval
}
The change_check_interval
was defined in commands.cfg
:
define command {
command_name change_check_interval
command_line $USER1$/eventhandlers/change_check_interval.sh $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$ $HOSTADDRESS$
}
The content of change_check_interval.sh
:
#!/bin/bash
now=`date +%s`
commandfile='/usr/local/nagios/var/rw/nagios.cmd'
case "$1" in
OK)
;;
WARNING)
;;
UNKNOWN)
;;
CRITICAL)
/bin/printf "[%lu] CHANGE_NORMAL_SVC_CHECK_INTERVAL;host1;service1;2\n" $now > $commandfile
;;
esac
exit 0
Make sure that external commands is enabled in nagios.cfg
:
check_external_commands=1