我正在设置Icinga(Nagios fork),我有一些有多个接口的机器。 有些服务只能在其中一个服务器上进行监听并正确检查,我想知道是否可以为Icinga中的单个主机configuration多个IP地址。
这是一个最小的例子:
远程服务器:
1.2.3.4 (公网IP) 10.1.2.3 (私有IP,安全隧道) 1.2.3.4:80上1.2.3.4:80 。 (只限公众) 10.1.2.3:22收听。 (仅限内部networking) 0.0.0.0:25 (所有接口)上侦听的Postfix SMTP Icinga服务器:
10.2.3.4 (私有IP,Internet访问) 现在,如果我定义一个主机:
define host { use generic-host host_name server1 alias server1.gertvandijk.net address 10.1.2.3 }
这不会正确检查HTTP状态。 并定义一个额外的主机:
define host { use generic-host host_name server1-public alias server1.gertvandijk.net address 1.2.3.4 }
将检查一切,但显示为两个独立的主机。 现在,我想将这两个主机“聚合”为一个主机,但提供一个简单的configuration来检查服务的正确地址。
什么是最优雅的configuration线保存解决scheme呢? 我阅读了几个可用于解决这个问题的插件,但我无法弄清楚目前的解决方法是什么。 解决scheme回到2003年,但我正在运行Icinga 1.7.1,已经能够的address6选项,但是这触发IPv6只parsing主机名…
理想情况下,我希望configurationIcinga足够聪明,知道运行在10.1.2.3:25上的Postfix实例与1.2.3.4:25相同,因此不会触发两个警报。
我猜这一定是在之前被解决的,系统pipe理员现在已经开始了。 请分享你的解决scheme。 谢谢! 🙂
你可以定义一个自定义对象variables ,如下所示:
define host { use generic-host host_name server1 alias server1.gertvandijk.net address 10.1.2.3 _wan_address 1.2.3.4 }
然后调用它$_HOSTWAN_ADDRESS$macros:
define command{ command_name check_wan_http command_line $USER1$/check_http -I $_HOSTWAN_ADDRESS$ $ARG1$ } define service{ use generic-service hostgroup_name apache service_description Apache check_command check_wan_http process_perf_data 0 contact_groups admin }