Hi guys, I need help planning some service dependency.
Here’s the situation:
NSClient++ check > SNMP service > SNMP system.UpTime.0 query > Other SNMP queries (many)
Now, with this structure if NSClient++ fail Nagios will not check anything below it, and that’s not ok. The only check it cannot make is the SNMP Service status (because it relies on NSClient++ functionality).
Instead, I want Nagios to continue checking the SNMP queries until:
a) SNMP system.UpTime.0 query fail
b) SNMP service “actively” fail (I mean, goes critical while NSClient++ is OK)
I was thinking: setting the dependency execution to “c” for SNMP Service will leave it in current state if NSClient++ goes critical. Then I have to stop inheritance for SNMP test query dependency, so it will only depend on SNMP Service.
Would this solve my problem?
Any suggestion?
Any help appreciated.
Bye
Dario
I did some tests:
Stopping the inheritance did the job, but now I’ve got a bigger problem: Nagios is somewhat ignoring the predictive failure logic (it’s currently enabled for host and services).
If services B and C depend on service A:
A fails, but Nagios doesn’t know yet
B is checked and goes critical: email is sent off < WRONG
A is checked and goes critical: email is sent off
C isn’t checked at all, because A is in critical state
Shouldn’t check A when B fails, and then email status only for A???
I’ve got:
failure_prediction_enabled 1 (in the service template definition)
enable_predictive_host_dependency_checks=1 (in the nagios.cfg)
cached_service_check_horizon=15 (in the nagios.cfg, just to do the tests without cache interfering)
PS
Soft/hard state logic somewhat interfered with the procedure so I disabled soft state setting max_retry at 1 for all services to do some proper testing.
Bye