Is there a way to configure a service to issue notifications continually, regardless of state change, until the notification is acknowledged?
In particular, I would like to configure a service which uses a custom plugin, similar to check_log, which when detecting a hard state change will issue a notification, and continue notifying until acknowledged even if the plugin afterward detects an OK state.
I looked at the is_volatile directive and it seems to only provide additional notifications if another hard state is detected, but this isn’t what I want.
Any comments/suggestions are appreciated.
One option to do this would be to use an event handler for the service, which persists this state information on the nagios server, and have another custom plugin monitor the persisted state information which then would issue the notification.
The issue with this option is that somehow the persisted state information would have to be reset when the acknowledgement happens, and I don’t know if this is possible to configure.
Checks are made every 5 minutes. If the state is held as hard down, and nobody acknowledges the problem, then no further checks would be made. I don’t see the reason for this. The log file check, or whatever it is, may have other problems, and those are going to be missed, if nobody acknowledges your problem. It appears, in order to achieve the logic you require, you will have to some event handler, like you stated.
It appears that, according to the 2.x documentation, it is possible to recognize when the acknowledgement happens from the $NOTIFICATIONTYPE$ macro when its value is ‘ACKNOWLEDGEMENT’.
Along with the $HOSTNAME$ and $SERVICEDESC$ macros, these can be used with a custom plugin executed at the command level definition of notify-by-email and/or notify-by-epager, to reset the persisted state information for the service when the notification is acknowledged.
Theoretically, this should work.