小编Jer*_*pel的帖子

Nagios hostgroup_name 排除项中的通配符

我很难在 Nagios 中为通配符和正则表达式(尤其是当它们与排除一起工作时)找到好的文档。这是我正在尝试做的一个例子:

在 中nagios.cfg,设置了以下内容,假设启用*?作为通配符:

use_regexp_matching=1
use_true_regexp_matching=0
Run Code Online (Sandbox Code Playgroud)

在 中services.cfg,我们有一项服务,我们希望将其应用于除少数对象之外的所有对象;那是所有 Linux 主机,但不是负载平衡器。显式排除工作:

define service {
     use                  generic-service
     service_description  Puppet check
     hostgroup_name       prod, staging, !prod-site_a-lbs
     check_command        check_puppet_alive_nrpe
}
Run Code Online (Sandbox Code Playgroud)

但是,我们有很多站点,每个站点在自己的主机组中都有负载均衡器(因此站点可以轻松管理通知)。而不是有一长串!prod-site_a-lbs, !staging-site_a-lbs, !prod-site_b-lbs。我希望能够将该hostgroup_name行修改为:

     hostgroup_name       prod, staging, !*-lbs
Run Code Online (Sandbox Code Playgroud)

我已经尝试过了,虽然我们没有收到错误消息,但此服务检查仍在应用于我们的负载平衡器。为了仔细检查,我也试过:

     hostgroup_name        prod, staging, !.*-lbs
Run Code Online (Sandbox Code Playgroud)

但是,这use_true_regexp_matching在运行时失败了,正如预期的那样(因为未设置)checkconfig-noprecache

 Error: Could not find any hostgroup matching '!.*lbs' ...
Run Code Online (Sandbox Code Playgroud)

在测试中,.*被接受的checkconfig-noprecacheif!被删除。

我们正在尝试的可能吗?我们可以使用通配符来排除匹配的主机组吗?或者,有没有一种替代方法同样干净?


更新(2015-09-21):在测试 Keith 的回答后,此配置有效:

services.cfg …

monitoring nagios

6
推荐指数
1
解决办法
2464
查看次数

标签 统计

monitoring ×1

nagios ×1