避免在Nagios Core中重复服务定义

时间:2013-10-01 08:49:20

标签: nagios

主机的服务定义如下: 服务{     名称为host_1_svc     ....     check_command check_xyz!abc     }

需要在host2上执行类似的检查,但check_command的参数是lmn。 所以我必须定义: 服务{     名称host_2_svc     ....     check_command check_xyz!lmn     }

一般方便的做法是避免必须一次又一次地定义服务而只需稍作改动?

谢谢, 佳日

2 个答案:

答案 0 :(得分:1)

您可以在每个主机中定义自定义主机变量:

define host{
    use             generic-host
    host_name       host1
    address         10.0.0.1
    _chk_value      abc
}

define host{
    use             generic-host
    host_name       host2
    address         10.0.0.2
    _chk_value      lmn
}

define service{
    use             generic-service
    name            host_chk_svc
    host_name       host1,host2
    check_command   check_abc!$_HOSTCHK_VALUE$
}

注意主机定义中自定义变量之前的下划线(这将其定义为自定义),然后在宏的开头加下划线,但不在其中间($ _HOSTCUSTOM $而不是$ HOST_CUSTOM $)。

http://nagios.sourceforge.net/docs/3_0/customobjectvars.html

答案 1 :(得分:0)

定义主机组,然后将该主机添加到组中,您只需要定义一次服务。 主机和主机组以及服务和服务组之间的关系可能难以可视化,尤其是如果您的nagios / etc文件夹中的文件没有一致的命名方案。

以下是我发现的两个有助于理解它的图表:

a slideshow about vaious network monitoring options: http://www.semintelligent.com/talks/chuug/network-monitoring/#%2827%29

a short but helpful page about Nagios setup: http://www.the-tech-tutorial.com/?p=1433