ger*_*ijk 5 nic nagios icinga system-monitoring
我正在设置 Icinga(Nagios fork)并且我有一些具有多个接口的机器。有些服务只监听其中一个并正确检查它们,我想知道是否可以为 Icinga 中的单个主机配置多个 IP 地址。
这是一个最小的例子:
远程服务器:
1.2.3.4公网IP)10.1.2.3私有IP,安全隧道)1.2.3.4:80. (仅限公开)10.1.2.3:22. (仅限内部网络)0.0.0.0:25(所有接口)冰加服务器:
10.2.3.4私有IP,上网)现在,如果我定义一个主机:
define host {
use generic-host
host_name server1
alias server1.gertvandijk.net
address 10.1.2.3
}
Run Code Online (Sandbox Code Playgroud)
这不会正确检查 HTTP 状态。并定义一个额外的主机:
define host {
use generic-host
host_name server1-public
alias server1.gertvandijk.net
address 1.2.3.4
}
Run Code Online (Sandbox Code Playgroud)
将检查所有内容,但显示为两个独立的主机。现在我想“聚合”这两个主机以显示为单个主机,同时提供一个简单的配置来检查它们正确地址上的服务。
对此,最优雅的节省配置行数的解决方案是什么?我阅读了几个可用于解决此问题的插件,但我无法弄清楚当前的解决方法是什么。解决方案可以追溯到 2003 年,但我正在运行 Icinga 1.7.1,它已经能够address6选择,但这会触发仅对主机名进行 IPv6 解析...
理想情况下,我希望将 Icinga 配置为足够智能以知道运行的 Postfix 实例与两个警报10.1.2.3:25相同1.2.3.4:25,因此不会触发两个警报。
我想这之前肯定已经解决了,系统管理员现在已经设置好了。请分享您对此的解决方案。谢谢!:)
您可以定义一个自定义对象变量,如下所示:
define host {
use generic-host
host_name server1
alias server1.gertvandijk.net
address 10.1.2.3
_wan_address 1.2.3.4
}
Run Code Online (Sandbox Code Playgroud)
然后将其称为$_HOSTWAN_ADDRESS$宏:
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
}
Run Code Online (Sandbox Code Playgroud)