Nagios Regex exclusion
Posted: Wed Oct 12, 2016 10:13 am
I have some hosts - they are being included in a group by regex.
The group includes some db hosts, which I don't want to see.
Take these hostnames as examples:
mickp1env1-app1-1-dc1
mickp1env1-apache1-1-dc1
mickp1-db1-1-dc1
mickp1env1-apache2-1-dc1
My group is defined as follows:
However, I don't want to see the db hosts in this group - it's for another team and they don't care about db hosts.
So, using regexr.com, I pasted the above hostnames into the free text box, then in the top I used this expression:
mickp1(?!-db).*
And it works, it finds everything except the db host.
However, when I replace mickp1.* with this in the hostgroups file, it fails. I get this error:
I have also tried the a positive lookup, so find them all - but not the db hosts:
members mickp1.*, !mickp1(?-db).*
This does not generate any error - and nagios reloads fine, but it still does not exclude.
I have tried this with with these settings:
Nothing works.
Anyone got any ideas on what I'm doing wrong? Is it as basic as the exclusion from a group has to be another group name and not another rexgex? Or that in my first example, Nagios prefers to find rather than exclude?
Please help.....
Mick.
The group includes some db hosts, which I don't want to see.
Take these hostnames as examples:
mickp1env1-app1-1-dc1
mickp1env1-apache1-1-dc1
mickp1-db1-1-dc1
mickp1env1-apache2-1-dc1
My group is defined as follows:
Code: Select all
define hostgroup{
hostgroup_name mickp1
alias All mickp1 hosts
members mickp1.*
}
So, using regexr.com, I pasted the above hostnames into the free text box, then in the top I used this expression:
mickp1(?!-db).*
And it works, it finds everything except the db host.
However, when I replace mickp1.* with this in the hostgroups file, it fails. I get this error:
Code: Select all
Error: Could not expand members specified in hostgroup (config file '/etc/nagios/hosts/hostgroups.cfg', starting on line 231)
Error processing object config files!
I have also tried the a positive lookup, so find them all - but not the db hosts:
members mickp1.*, !mickp1(?-db).*
This does not generate any error - and nagios reloads fine, but it still does not exclude.
I have tried this with with these settings:
Code: Select all
1. use_regexp_matching=1, use_true_regexp_matching=0
2. use_regexp_matching=1, use_true_regexp_matching=1
3. use_regexp_matching=0, use_true_regexp_matching=1
Anyone got any ideas on what I'm doing wrong? Is it as basic as the exclusion from a group has to be another group name and not another rexgex? Or that in my first example, Nagios prefers to find rather than exclude?
Please help.....
Mick.