Nagios - 主机从多个模板继承吗?

Nagios - 主机从多个模板继承吗?

Nagios 中的主机可以使用多个模板吗?

我正在尝试监控一些 MSSQL 服务器。其中一些是具有单个实例的独立单服务器,而其他一些则使用 MSCS 形成 2 节点 HA 集群。

我想在特定服务器上监控的内容与我想为特定 SQL 实例监控的内容不同。例如,我想使用模板windows-server告诉我有关给定服务器的窗口的一般信息。同样,我想使用特定的 SQL 模板来sql-instance监控特定于 SQL 的内容,例如已连接的用户、批处理请求等。

对于我的 2 节点集群,这非常容易 - 我有三个主机定义:一个windows-server用于每个特定节点,一个sql-instance指向集群 DNS 名称。

对于单个实例,我希望能够拥有一个主机,该主机同时使用windows-serversql-instance模板,因为它们都应该指向同一个主机名。但是,任何尝试执行以下操作:

define host {
    use windows-server, sql-instance
}

或者

define host {
    use windows-server
    use sql-instance
}

导致 nagios 只选择其中一个模板而忽略另一个。

那么,如何在 Nagios 中最好地实现多重模板继承?

答案1

我使用了一种变通方法解决了这个问题。我没有让特定主机继承多个模板,而是将服务附加到不同的主机组,并将每个主机放在多个主机组中:

define host {
    use             generic-host
    hostgroups      sql-servers,sql-instances
 }

答案2

如何让一个模板继承另一个模板?这就是我在 nagios 上的做法。您可以输入use windows-server服务器sql-instance模板定义,然后使用 sql-instance 定义的任何东西也将继承 windows-server 定义。在这种情况下,您可能还想将 sql-instance 重命名为 win-sql-instance。

答案3

从 3.x 开始,Nagios 支持第一个示例中的开箱即用语法:

define host {
  use windows-server,sql-instance
}

请参阅http://nagios.sourceforge.net/docs/3_0/objectinheritance.html以及变更日志

(我本来想将此作为评论添加到已接受的答案中,但没有这样做所需的声誉)

答案4

我在我的 Icinga 环境中尝试了这个并且它对 Icinga 有效:

define host {
                host_name                             Testhost
                address                               192.168.220.1
                check_command                         check-host-alive
                notification_interval                 15
                notification_options                  d,u,r
                max_check_attempts                    3
                active_checks_enabled                 1
                passive_checks_enabled                0
                notifications_enabled                 1
                check_period                          24x7
                notification_period                   24x7
                contact_groups                        admins
                parents                               Email Prim,Source
                use                                   Default_timeperiod_interval_1,Default_timeperiod_interval_10
}

我不太确定 Nagios,但它应该不会有太大差别。

相关内容