如何让 nagios 在主机存在时发出警报

如何让 nagios 在主机存在时发出警报

我想要一个 nagios 警报,当 IP 号码存在时会发出警报,当 IP 号码不存在时会消失。我无法在 Google 上搜索这个,因为大多数人想要的恰恰相反。

我想知道是否有一种简单的方法可以做到这一点,或者我必须编写一个插件?

答案1

我建议使用最新监控插件包中包含的“negate”插件。该插件的手册页如下:https://www.monitoring-plugins.org/doc/man/negate.html

然后创建客户命令和自定义主机,例如:

define command{
        command_name    check-host-dead
        command_line    /usr/local/libexec/negate -s /usr/lib/nagios/plugins/check_ping -H '$HOSTADDRESS$' -w 5000,100% -c 5000,100% -p 1
        }

和主持人加上愚蠢的服务:

define host {
       host_name    hostname.domain.tld
       alias        Verbose Description Server
       address      192.168.1.50
       parents      parent.host_name
       notifications_enabled           1       ; Host notifications are enabled
       event_handler_enabled           1       ; Host event handler is enabled
       flap_detection_enabled          1       ; Flap detection is enabled
       failure_prediction_enabled      1       ; Failure prediction is enabled
       process_perf_data               1       ; Process performance data
       retain_status_information       1       ; Retain status information across program restarts
       retain_nonstatus_information    1       ; Retain non-status information across program restarts
       check_command                   check-host-dead
       max_check_attempts              10
       notification_interval           1440
       notification_period             wakehours
       notification_options            d,u,r
       contact_groups                  noticeadmins
       }
define service {
        host_name                       hostname.domain.tld
        service_description             Return OK
        check_command                   return-ok
        use                             generic-service
        contact_groups                  noticeadmins
        normal_check_interval           10
        notification_interval           60 ; set > 0 if you want to be renotified
}

需要注意的是,我们使用 Check_MK 作为 Nagios 的图形前端,并且从美学角度来看,每个主机都需要一个服务,否则我们会得到一个空白/无用的页面。因此,这是一项始终没问题的服务。在我的应用程序中,我只想在白天每天收到一次警报,因此是 1440/wakehours。您需要定义或更改 wakehours/noticeadmins 之类的内容。

答案2

如果您已经有一个可以工作的检查,但它所做的与您想要的完全相反,您是否尝试过更改退出值,以便它不会在“失败”时发出警报,而在“成功”时发出警报?在您的场景中,退出 0 表示失败,退出 1 或退出 2 表示成功。如​​果您对我所说的退出值感到困惑,请参阅关联。

相关内容