1

主机的服务定义如下所示: service{ name host_1_svc .... check_command check_xyz!abc }

需要在host2上进行类似的检查,只是check_command的参数是lmn。所以我必须定义: service{ name host_2_svc .... check_command check_xyz!lmn }

避免一次又一次地定义服务而只进行微小更改的一般方便做法是什么?

谢谢, 亚什

4

2 回答 2

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

于 2014-08-13T14:03:30.793 回答
0

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

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

关于各种网络监控选项的幻灯片:http://www.semintelligent.com/talks/chuug/network-monitoring/#%2827%29

关于 Nagios 设置的简短但有用的页面:http://www.the-tech-tutorial.com/?p=1433

于 2013-10-08T02:19:25.370 回答