Не первый раз сталкиваюсь с ситуацией, когда не работает синхронизация времени на сервере. На конкретном примере рассмотрю, как разрешить эту ситуацию при использовании службы синхронизации времени chronyd. Ошибка в первую очередь связана с тем, что провайдер блокирует запросы к серверам времени.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
К примеру, используется дефолтная установка системы centos. Там по-умолчанию настроен chrony. В конфиге /etc/chronyd.conf перечислены серверы времени:
server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp.org iburst server 3.centos.pool.ntp.org iburst
Я замечаю, что на сервере время начинает отставать. Смотрю системный лог:
Feb 9 23:59:24 proxy-nginx chronyd[25285]: Source 94.247.111.10 replaced with 195.3.254.2 Feb 10 00:30:45 proxy-nginx chronyd[25285]: Source 195.210.189.106 replaced with 128.0.142.251 Feb 10 01:12:08 proxy-nginx chronyd[25285]: Source 194.190.168.1 replaced with 85.21.78.8
Ошибок нет, сервера меняются, но нет намека на то, что что-то не в порядке.
Пробую принудительно обновить время с помощью chrony:
# chronyc -a makestep 200 OK
На вид все в порядке. Проверяю лог.
chronyd[19432]: System clock was stepped by 0.000000 seconds
Вижу, что время не изменилось. Проверяю статистику по подключениям.
# chronyc sources -v
Понимаю, что реально к серверам подключения нет. Дальше я уже и так все понял, потому что сталкиваюсь не первый раз. Из-за уязвимостей в протоколе ntp, его часто провайдеры блокируют полностью и предоставляют свои сервера для синхронизации времени. Я не стал писать в тех поддержку, чтобы узнать сервер времени провайдера. Просто открыл настройку chrony на сервере, установленном из шаблона провайдера и посмотрел там адреса.
После того, как установил сервера провайдера, все стало в порядке. Синхронизация времени в chrony заработала.
chronyd[19542]: Selected source 188.93.16.19 chronyd[19542]: System clock wrong by -343.992220 seconds, adjustment started systemd: Time has been changed chronyd[19542]: System clock was stepped by -343.992220 seconds chronyd[19542]: System clock was stepped by -0.000011 seconds systemd: Time has been changed
После таких больших поправок по времени лучше перезагрузить систему, если есть возможность. Если нет, то хотя бы перезапустить основные сервисы.
Рекомендую настраивать мониторинг времени серверов с помощью zabbix. В последних версиях сервера, в стандартных шаблонах эта проверка есть по-умолчанию. На более старых серверах можно настроить вручную. Метрика вроде бы и не критичная. Но это только на первый взгляд. Из-за неправильного времени ошибки могут всплывать в самых неожиданных местах.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.
У меня другая проблемя появилась. Crhony видит ntp и синхронизирует время. Но после каждой перезагрузки машины, причем любой, вылазит следущее System clock was stepped by -10796.523280 seconds Через некоторое время он все исправит и у время будет работать как надо. Но вот из-за этих 10 секунд не стартуют при запуске системы некоторые сервисы яля panfs и еже с ними. Че делать не знаю уже всю голову сломал... В инетах у всех одно и тоже - мол у вас chrony не видит NTP (((
Так это в биосе время неправильное стоит, либо на гипервизоре, если это виртуалка. Система загружается, получает неправильное время от железа. Потом синхронизирует его и становится правильным.
Класс!
Спасибо, помогло.