Check_ntp_time 在我的所有主机上偶尔都失败了。我通常收到
CRITICAL - Socket timeout after 10 seconds
几分钟后 check_ntp_time 成功并显示正确的偏移量
NTP OK: Offset 0.0001899003983 secs
我尝试将 check_ntp_time 命令超时提高到 20 秒,但它以相同的速度失败。我尝试从 ntp.conf 中删除 nopeer 和 noquery 无济于事(这是有道理的,因为如果这是问题所在,它将在 100% 的时间内失败)。它在随机时间失败并在之后立即成功的事实真的让我失望。还值得注意的是,它不会同时对所有主机失败,通常一次失败 1 到 3 台主机。知道是什么原因造成的吗?
我的check_ntp_time
命令如下所示:
define command{
command_name check_ntp_time
command_line $USER1$/check_ntp_time -H pool.ntp.org -t 20 -w 1 -c 3
}
编辑:
公制最小值。最大限度。平均
检查执行时间:0.00 秒 20.00 秒 1.153 秒
检查延迟:0.00 秒 0.00 秒 0.000 秒
状态变化百分比:0.00% 31.84% 0.86%
每秒 2 次检查(每个 CPU 0.5 次)
这是因为检查尝试通过 IPv6 连接由“-t”指定的一半超时,然后它回退到 IPv4。所以你可以将超时时间减少到 10 秒,你应该在 5 秒内得到响应:
或者您可以仅通过“-4”使用 IPv4,然后您将在 < 1 秒内得到响应:
这已通过更改我配置为检查正确时间的 ntp 服务器来解决。很可能所有服务器同时查询它,它阻止了一些请求。我最终指向了一个内部 ntp 服务器,它本身正在从以前使用的源中获取时间。