0

现在我使用以下配置 Icinga2 主机服务器工作:

vars.health_check["my_module1"]={
   host = "HEALTH_CHECK_SERVER_URL"
   module = "my_module1"
}

vars.health_check["my_module2"]={
   host = "HEALTH_CHECK_SERVER_URL"
   module = "my_module2"
}

如您所见,问题是我必须重新声明相同的主机地址。当我将主机地址放在下面的服务之外时,它不起作用并且重新加载Icinga2失败:

   end_url = "HEALTH_CHECK_SERVER_URL"
   vars.health_check["my_module1"]={
       host = "$end_url$"
       module = "my_module1"
    }

    vars.health_check["my_module2"]={
       host = "$end_url$"
       module = "my_module2"
    }

我什至尝试使用vars.end_url相同的场景。我应该如何在Icinga2.

4

1 回答 1

1

您可以将主机地址与 $address$ 一起使用,因此如果主机地址是 URL 解析到的地址,则它应该像这样工作:

end_url = "HEALTH_CHECK_SERVER_URL"
   vars.health_check["my_module1"]={
       host = "$address$"
       module = "my_module1"
    }

    vars.health_check["my_module2"]={
       host = "$address$"
       module = "my_module2"
    }

你看过Icinga2 导演吗?. 它很方便,并且主机配置更容易管理。此外,monitoring-portal.org是 Icinga 社区的一个很好的资源。

如果您使用director,您可以克隆命令,然后将参数设置为$end_url$ 等变量,然后创建字段。然后您可以将该字段添加到您的模板(导入)并在那里输入一次。

例如,我们将此方法用于 SNMP 社区字符串。我们的模板附加了一个 $snmp_community$ 字段。所以在我们需要社区的任何命令中,我们只使用这个变量。这就是 Icinga2 知道我们所有 LAN Distro 的社区字符串的方式,如果我们需要更改它,我们只需更改一次。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

于 2017-08-21T16:16:21.657 回答