为nagios 3中的主机配置额外的ip

为nagios 3中的主机配置额外的ip

我刚刚从 nagios2 迁移到 nagios3,主要是为了自定义宏功能。
我的网络中有两种服务器:

  • 单一 IP 服务器(服务和 snmp 服务器使用同一个 IP)
  • 双 IP 服务器(公共 IP 用于服务,私有 IP 用于 snmp 服务器)

我尝试做的是将默认值设置为主机模板中的宏 $_HOSTIPSNMP$。

define host {
       name linux-server
       ...
       _IPSNMP                 $HOSTADDRESS$
       ...
}

我假设所有主机都会自动将 $_HOSTIPSNMP$ 设置为 $HOSTADDRESS$ 的内容

如果我能让它工作,第二部分将是根据每个主机为 $_HOSTIPSNMP$ 设置自定义值,样式如下:

define host {
       use linux-server
       address           123.123.123.123
       _IPSNMP        192.168.1.10
}

所以 $_HOSTIPSNMP$ 始终有一个合理的值,我可以随时将其设置为我想要的任何值。

我遇到的错误是这样的,似乎 _HOSTIPSNMP 没有被正确替换为变量值,而是被替换为变量名。

cmd=[/usr/lib/nagios/plugins/check_snmp_storage.pl '-H' 'HOSTADDRESS'
'-C' 'comunity' '-m' '/' '-w' '80%' '-c' '85%']
output=[ERROR: Unable to resolve UDP/IPv4 address 'HOSTADDRESS'.

我尝试更改模板中 $HOSTADDRESS$ 的引用,但没有任何效果。

感谢您的帮助。

答案1

根据 Nagios文档在宏上,引用上面定义的 _IPSNMP 的正确方法是 $_HOSTIPSNMP$

答案2

好吧,最后唯一的解决方案是向所有主机告知 _IPSNMP 的值。
看来宏不是递归解析的,这是预期的行为(至少在 nagios 3 中)
至少我能够以一种巧妙的方式做我想做的事情。我建议每个人都使用宏。

相关内容