Nagios 监控不同的网卡

以一个简单的情况来说明问题,默认情况下,Nagios 只会监控(ping, ssh etc)服务器的某一个 IP,这个特定的 IP 宏 $HOSTADDRESS 解释,而该值来自于 host 定义中的 address 指令。
系统默认定义的 ping command 如下:
define command{
        command_name    check_ping
        command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 100
        }  

显然,该指令只能监控某一个网卡,或者更具体的说是某一个 IP 的健康状况,如果服务器上有多个 IP,就需要重新定义该命令:
define command{
        command_name    check_ping_new
        command_line    $USER1$/check_ping -H $ARG1$ -w $ARG2$ -c $ARG3$ -p 100
        }  


将 -H 直接表达成 $ARGx$ 的形式就可以了。
这样就可以在一个 cfg(我们这里将一台机器的所有 service 均放在该 cfg 文件中)文件里面同时监控不同的 IP 了,以某台交换机的 ping 指标为例:
define host{
        use                     network-server   
        host_name               h3c-1
        alias                   h3c-1
        address                 192.168.10.1
        }  

define service{
        use                             network-service 
        host_name                       h3c-1
        service_description             PING_PRIVATE
        check_command                   check_ping_new!192.168.10.1!50.0,2%!100.0,6%
        }  

define service{
        use                             network-service 
        host_name                       h3c-1
        service_description             PING_PUBLIC
        check_command                   check_ping_new!114.80.121.166!100.0,2%!300.0,6%
        }