nagios 服务依赖通配符未扩展

nagios 服务依赖通配符未扩展

要到达 customer-es-prd-dobb1,数据包必须通过主机“cust-client-vpn”穿越(基于客户端的)vpn。中间主机有一个名为“customer-prod-vpn”的检查,用于监控特定连接的健康状况。

目标是使客户网络中的主机服务全部依赖于中介机器上的特定服务。然而我得到了

Error: Could not expand dependent services specified in service dependency (config file '/usr/local/nagios/etc/conf.d/servicedependency/customer.cfg', starting on line 1)
Error processing object config files!

如果我将通配符替换为“cpu 使用率”(现有检查),它就可以起作用。

这是相关的依赖块:

define servicedependency {
    dependent_host_name             customer-es-prd-dobb1
    dependent_service_description   *
    host_name                       cust-client-vpn
    service_description             customer-prod-vpn
    execution_failure_criteria      w,u,c
    notification_failure_criteria   w,u,c
}

中间主机配置:

define host {
    host_name                       cust-client-vpn
    alias                           cust-client-vpn
    address                         ip_addr_was_here
    use                             nrpe-server,host-pnp
    hostgroups                      debian-servers, monit-servers
    _NRPESSL    -n
    contacts        operations
}

这一切都取决于中间主机检查

define service {
    use                             generic-service,srv-pnp
    host_name                       cust-client-vpn
    service_description             customer-prod-vpn
    check_command                   check_nrpe_1arg!check_customer_vpn_prod
    check_interval                  10
    max_check_attempts              1
}

最后在 nagios 中检查“customer-prod-vpn”的状态:

customer-prod-vpn  OK   05-20-2013 16:21:15  0d 14h 50m 42s 1/1 OK - UP 

有没有 nagios ninjas 可以指出问题出在哪里?

答案1

' 仅在未使用正则表达式 (use_regexp_matching=0) 时才是有效的通配符。正则表达式中的通配符至少为 。

我选择了 .* 和 use_regexp_matching=1

答案2

看看节省时间的技巧文档页面...使用通配符的描述似乎表明你的方式应该工作,尽管他们没有明确地给出你想要做的事情的例子。

鉴于您的方法不起作用,我所知道的唯一方法就是使用服务组。

将该主机上的所有服务放入一个服务组(可能使用模板或通配符?),并使用该服务组作为依赖项。这确实有效;我就是这么做的。

相关内容