是否可以从 Nagios check_command 中排除特定主机

是否可以从 Nagios check_command 中排除特定主机

我有以下配置:

define host {
name                            generic-host

[...]

check_command                   check-host-alive

[...]

register                        0
}

检查主机是否存活是默认的 ping 检查,当数据包丢失率为 100% 或往返时间为 5000 毫秒时,会报告严重问题。

定义主机时,我使用此模板。现在我需要监控一个阻止 ICMP/Echo 请求的主机,而 Nagios 一直告诉我它处于离线状态。

主机定义如下:

define host {
host_name                   some.example.com
use                         generic-host
hostgroups                  my-servers
address                     127.0.0.1
}

由于我的配置中有多个服务器,并且所有服务器都需要检查是否处于活动状态,因此我需要从检查主机是否存活检查一下。有办法吗?

PS:由于我不知道的原因,负责被监控服务器的系统管理员在任何情况下都不会允许 ICMP/Echo 请求。

答案1

您可以添加另一种方法来检查活动主机(例如 SSH、HTTP 或任何在您的环境中有意义的主机),以覆盖模板中的定义。

define host {
   host_name                   some.example.com
   use                         generic-host
   hostgroups                  my-servers
   address                     127.0.0.1
   check_command               ssh-check
 }

当然,您必须定义ssh-check才能使其工作。

https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/3/en/objectinheritance.html

答案2

你不能只是不是有一个主机检查,但您可以使用任何插件作为主机检查。

如果check_pingcheck_icmp不是选项,那么下一个最好的选择是使用check_tcp指向开放端口(目标是像 ssh 这样稳定的东西,它是“主机是否启动”的一个很好的类比)。

如果您确实无法进行主机检查,那么总是有的check_dummy,但这会搞乱检查/通知逻辑,导致主机上的每个服务在发生故障时都会收到通知。

答案3

您应该能够为该主机设置“checks_enabled 0”。但是 Sven 推荐的替代 check_command 可能更好。

答案4

generic-host 是您的基本模板,如果您想更改继承值的参数,您可以用自己的参数覆盖该参数。

相关内容