Help with service dependency

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