Назад | Перейти на главную страницу

Время ожидания спорадического сокета check_ntp_time Nagios

Check_ntp_time периодически дает сбой на всех моих хостах. Я обычно получаю

CRITICAL - Socket timeout after 10 seconds

И через пару минут check_ntp_time завершается успешно и показывает правильное смещение.

NTP OK: Offset 0.0001899003983 secs

Я попытался увеличить тайм-аут команды check_ntp_time до 20 секунд, но он терпит неудачу с той же скоростью. Я попытался удалить nopeer и noquery из ntp.conf, но безрезультатно (что имеет смысл, потому что если бы это было проблемой, то в 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 проверки в секунду (0,5 на процессор)

Это связано с тем, что проверка пытается подключиться через 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

Или вы можете использовать IPv4 только с '-4', тогда вы получите ответ в течение <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

Это было решено путем изменения ntp-сервера, который я настроил для проверки правильного времени. Вероятно, все серверы запросили его одновременно, и он заблокировал некоторые запросы. В итоге я указал на внутренний ntp-сервер, который сам использует время от ранее использованного источника.