Nagios 配置中的局部变量

Nagios 配置中的局部变量

Nagios 配置文件中可以有局部变量吗?

我可能做了一些有点“错误”的事情,但我认为这最适合我的特定用例。

我需要监控许多非常不同的服务。它们可能会彼此独立地发生变化,也可能保持不变。我知道我可以使用主机组并添加我的服务来监控给定主机组,然后根据需要将主机添加到该组并删除它们。

但说实话,我只是想在服务器文件夹中我的主机定义旁边定义我需要监控的 5-6 个服务。这很好用,但每次我复制文件来监控新主机时,我都有一项繁琐的工作,我需要输入 IP 并重新定义主机名(除了在需要时进行调整)。

我能不能以某种方式在配置文件顶部定义主机名,并将其级联到同一配置文件中的所有服务定义?这真的能帮到我。

答案1

您可以创建一个模板,然后让主机使用该模板。nagios 文档中的示例:

define host{
    host_name       bighost1
    check_command       check-host-alive
    notification_options    d,u,r
    max_check_attempts  5
    name            hosttemplate1
    }
define host{
    host_name       bighost2
    max_check_attempts  3
    use         hosttemplate1
    }

当您要求每个文件变量时。这行不通。Nagios 没有单个配置文件的概念。它只接受所有对象。因此,如果您定义一个宏,例如$MYIPMACRO:192.168.0.1$这个宏对所有对象都适用,即您的整个 nagios 配置。我认为 icinga2 可以实现您想要实现的目标,并且与 nagios 检查插件兼容。

相关内容