Negation stops after upgrade to 3.0.6


Hi all,

When I upgrade the following service definition to nagios 3.0.6, I get an error in the preflight check.

define service{ ... hostgroup linux_machines host !lin01 }

The aim of the bang (exclamation point) is to activate this service for all linux_machines except for the one called lin01. This works in nagios 2 (although I cannot find any documentation on it), but no longer in nagios 3.

I am sure there is a deliberate decision behind this change, but I am looking at migrating several clients with this config trick woven deeply into their cfg files. I am not particularly looking forward to regrouping all these hosts into new hostgroups.

Does anyone know of a way to negate the implication of one (or several) hostgroup members in a service definition?

Thanks in advance,
Rik de Deken
VanderLet Netherlands


I have since learned that the exclusion still ought to work in v3. That is to say: I found it documented in the version 3 docs. Ironic that I can get it to work when not documented, but I cannot when it IS documented. :slight_smile:

Maybe I changed something in the main nagios.cfg that blocks the exclamation points during interpretation of the object definition?



Just reporting that I figured it out. And that it was documented after all. All faith is restored.

In docs/objecttricks.html the negation is called exclusion. And the top of that page warns against
use_true_regexes. A simple experiment with nagios.cfg confirms it. Either use true regexes or use the exclusion trick.

The warning is not specific for the use of the exclamation point however.

My problem was therefore not directly related to the upgrade from v2 to v3. The change in the use of true_regexes was.