如何在 host.cfg 文件中设置端口号并在 nagios 中的 services.cfg 文件中使用它

如何在 host.cfg 文件中设置端口号并在 nagios 中的 services.cfg 文件中使用它

我有 hostgroups.cfg 文件,其中有不同的主机和不同的端口号。我想将每个主机的端口号传递给 services.cfg 文件,我在该文件中放置了 check_http 命令。

由于我的不同主机具有不同的 http 进程和不同的端口号,所以我想直接从 hosts.cfg 文件传递​​端口号。可以吗?

以下是 hosts 和 services.cfg 文件中的示例条目

主机文件:

        define host{
          use                    abc
          host_name               test
          alias                   /test/
          address                 192.168.0.24
         hostgroups              testgroup
        }

services.cfg 文件

      define service{
         use                             critical-service
         hostgroup_name                  test
         service_description             HTTP
        check_command                   check_http!8080!7!5
     }

命令.cfg 文件

    define command{
        command_name    check_http
        command_line    $USER1$/check_http -H $HOSTADDRESS$ -p          
                     $ARG1$ --url $HOSTALIAS$ -c $ARG2$ -w $ARG3$
    }

答案1

在您的主机配置中,添加自定义变量像这样:

define host {
      use                    abc
      host_name              test
      alias                  /test/
      address                192.168.0.24
      hostgroups             testgroup
      _port                  8080
}

然后在您的 services.cfg 中,将端口换成您设置的变量(您需要为所有主机设置它):

define service {
     use                             critical-service
     hostgroup_name                  test
     service_description             HTTP
     check_command                   check_http!$_HOSTPORT$!7!5
 }

相关内容