你如何在 nagios 中取消继承的服务检查?

Gra*_*ace 3 nagios

我们有一个 nagios 设置,它使用继承的程度比我习惯的要大。我已阅读以下文档:

http://nagios.sourceforge.net/docs/3_0/objectinheritance.html

但我仍然无法理解如何实现我的目标。

我有已通知 procs 警告的服务器/主机。我对此进行了调查,这是一个已知的错误,对于这个特定的服务器可以安全地忽略。理想情况下,我只想为该主机增加服务定义的警告/关键点;但我也很舒服,只是在发布当前问题的补丁之前不使用此服务检查。通过 Web 界面禁用对我的经理来说是不可接受的选择。

服务定义:

define service{
            use                             unix-agent-service
            hostgroup_name                  linux-servers
            service_description             Agent: Total Processes
            check_command                   check_nrpe!check_total_procs
    }
Run Code Online (Sandbox Code Playgroud)

主机定义:

define host{
        use                     linux-server
        host_name               unixlab
        alias                   Unix Lab
        address                 PRIVATE
        }
Run Code Online (Sandbox Code Playgroud)

组/服务器定义:

define host{
        name                            linux-server
        use                             generic-host
        alias                           Linux server
        hostgroups                      linux-servers
        register                        0
        }
Run Code Online (Sandbox Code Playgroud)

主机继承了主机组 linux-servers 中定义的所有服务。我试过给服务检查一个名称,然后在主机定义中将该名称设置为 null,但我认为这种语法是错误的和/或我不理解继承的那部分:

define service{
        **name                                            agent-total-processes** 
       use                                             unix-agent-service
        hostgroup_name                  linux-servers
        service_description             Agent: Total Processes
        check_command                   check_nrpe!check_total_procs
}
Run Code Online (Sandbox Code Playgroud)

主机定义:

define host{
        use                     linux-server
        host_name               unixlab
        alias                   Unix Lab
        address                 PRIVATE
        **agent-total-processes    null**
}
Run Code Online (Sandbox Code Playgroud)

我确定我遗漏了一些明显的东西……根据我对继承的阅读,这应该是可能的,但我无法理解它。

想法?

Kei*_*ith 6

在服务定义中,您可以排除(使用!)您不想在其上运行它的特定主机:

define service {
        use                             unix-agent-service
        hostgroup_name                  linux-servers
        host_name                       !unixlab
        service_description             Agent: Total Processes
        check_command                   check_nrpe!check_total_procs
}
Run Code Online (Sandbox Code Playgroud)

这将使服务应用于“linux-servers”的每个成员,“unixlab”除外。

  • 对于 check_nrpe,默认情况下,警告/严重阈值在另一端的 nrpe.cfg 中定义。所以...您可以在每个主机上定义单独的警告/临界阈值。如果您将 ARG 与 NRPE 一起使用,则必须按照上面 dmourati 建议的操作,并为具有不同阈值的“unixlab”定义一个新的检查命令(例如,“check_nrpe_with_args!check_total_procs!100 200”或类似命令) (2认同)