我有以下配置:
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_ping
或check_icmp
不是选项,那么下一个最好的选择是使用check_tcp
指向开放端口(目标是像 ssh 这样稳定的东西,它是“主机是否启动”的一个很好的类比)。
如果您确实无法进行主机检查,那么总是有的check_dummy
,但这会搞乱检查/通知逻辑,导致主机上的每个服务在发生故障时都会收到通知。
答案3
您应该能够为该主机设置“checks_enabled 0”。但是 Sven 推荐的替代 check_command 可能更好。
答案4
generic-host
是您的基本模板,如果您想更改继承值的参数,您可以用自己的参数覆盖该参数。