主机的服务定义如下: 服务{ 名称为host_1_svc .... check_command check_xyz!abc }
需要在host2上执行类似的检查,但check_command的参数是lmn。 所以我必须定义: 服务{ 名称host_2_svc .... check_command check_xyz!lmn }
一般方便的做法是避免必须一次又一次地定义服务而只需稍作改动?
谢谢, 佳日
答案 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 short but helpful page about Nagios setup: http://www.the-tech-tutorial.com/?p=1433