Nagios

Nagios 的 check_ntp_time 偶發套接字超時

  • September 25, 2018

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 次)

這已通過更改我配置為檢查正確時間的 ntp 伺服器來解決。很可能所有伺服器同時查詢它,它阻止了一些請求。我最終指向了一個內部 ntp 伺服器,它本身正在從以前使用的源中獲取時間。

這是因為檢查嘗試通過 IPv6 連接由“-t”指定的一半超時,然後它回退到 IPv4。所以你可以將超時時間減少到 10 秒,你應該在 5 秒內得到響應:

[root@server ~]# time /usr/lib64/nagios/plugins/check_ntp_time -q -H time1.google.com -w 1 -c 2 -t 10
NTP OK: Offset 0.0004314184189 secs|offset=0.000431s;1.000000;2.000000;

real    0m5.767s
user    0m0.843s
sys     0m4.908s

或者您可以僅通過“-4”使用 IPv4,然後您將在 < 1 秒內得到響應:

[root@server ~]# time /usr/lib64/nagios/plugins/check_ntp_time -q -H time1.google.com -4 -w 1 -c 2 -t 10
NTP OK: Offset 0.0006598234177 secs|offset=0.000660s;1.000000;2.000000;

real    0m0.401s
user    0m0.003s
sys     0m0.007s

引用自:https://serverfault.com/questions/721817