Синхронизация времени по NTP
NTP — это протокол синхронизации времени по сети. По существу клиенты запрашивают текущее время на сервере и используют его для установки своих собственных часов.
За этим простым описанием скрывается много сложностей — существуют уровни NTP серверов, где первый уровень подключен к атомным часам, а второй и третий уровни серверов распределяют на себя нагрузку по актуальным запросам из интернета. Кроме того клиентское приложение сложнее, чем вы можете подумать — оно компенсирует задержки соединения и регулирует время таким образом, чтобы не навредить другим процессам, запущенным на сервере. Но к счастью вся эта сложность скрыта от вас!
ntpdate
РЕД ОС стандартно устанавливается с ntpdate и будет запускать его при каждой загрузке один раз для установки времени по NTP серверу.
ntpdate ntp1.vniiftri.ru
Проверка доступности сервера времени:
ntpdate -q 0.ru.pool.ntp.org
ntpd
Сервис NTP ntpd вычисляет уход ваших системных часов и постоянно подправляет их, благодаря чему не происходит сильных изменений, что может приводить к непоследовательности в журналах. Ценой этому небольшое расходование мощности процессора и оперативной памяти, но для современного сервера это несущественно.
Установка
Для установки ntpd из терминала введите:
# yum install ntp
Настройка
Отредактируйте /etc/ntp.conf для добавления/удаления серверов. По умолчанию эти сервера такие:
server ntp1.vniiftri.ru server ntp2.vniiftri.ru server ntp3.vniiftri.ru server ntp4.vniiftri.ru
После изменений конфигурационного файла вам надо перезапустить ntpd:
# systemctl restart ntpd.service
Просмотр статуса
Используйте ntpq для просмотра дополнительной информации:
# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== +stratum2-2.NTP. 129.70.130.70 2 u 5 64 377 68.461 -44.274 110.334 +ntp2.m-online.n 212.18.1.106 2 u 5 64 377 54.629 -27.318 78.882 *145.253.66.170 .DCFa. 1 u 10 64 377 83.607 -30.159 68.343 +stratum2-3.NTP. 129.70.130.70 2 u 5 64 357 68.795 -68.168 104.612 +europium.canoni 193.79.237.14 2 u 63 64 337 81.534 -67.968 92.792
Chronyd
Chrony – альтернативный клиент и сервер протокола сетевого времени NTP. Chrony может быстрее синхронизировать системные часы с лучшей точностью времени, и он может быть особенно полезен для систем, которые не работают в сети все время.
Установка Chrony
Действия по установке и настройке требуется производить под пользователем root или пользователем с правами администратора.
Chrony доступен по умолчанию в репозитории РЕД ОС.
Для установки Chrony необходимо выполнить следующую команду:
# yum install chrony
После установки вывод будет выглядеть следующим образом:
... Пакет chrony-2.1.1-5.el7.x86_64 уже установлен, и это последняя версия. Выполнять нечего.
После установки необходимо запустить демон chronyd.service, если он еще не запущен:
# systemctl start chronyd.service
Если есть необходимость автоматически запускать Chrony при каждой перезагрузке системы, следует воспользоваться командой:
# systemctl enable chronyd.service
Для того чтобы проверить, запущен ли сервис chronyd.service, следует ввести команду:
# systemctl status chronyd.service
Если сервис запущен, ответ будет выглядеть примерно так:
chronyd. service - NTP client/server Loaded: loaded (/usr/lib/systemd/system/chronyd. service; enabled; vendor preset: enabled) Active: active (running) since Br 2020-07-07 12:11:39 MSK; 24min ago Main PID: 746 (chronyd) CGroup: /system. slice/chronyd. service 1-746 /usr/sbin/chronyd июл 10 16:32:47 localhost. localdomain systemd[1]: Starting NTP client/server… июл 10 16:32:47 localhost. localdomain chronyd[775]: chronyd version 2.1.1 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP HASH) июл 10 16:32:47 localhost. localdomain chronyd[775] : Frequency -2.451 +/- 0.538 ppm read from /var/lib/chrony/drift июл 10 16:32:47 localhost. localdomain systemd июл 10 16:33:02 localhost. localdomain chronyd[775]: source 89.109.251.24 июл 10 16:33:02 localhost. localdomain chronyd[775]: System clock wrong by -1.158345 seconds, adjustment started июл 10 16:33:03 localhost. localdomain chronyd [775] : source 89.109.251.21 июл 10 16:46:01 localhost. localdomain chronyd[775]: Selected source 89. 109. 251.
Если нужно остановить Chrony, можно воспользоваться следующей командой:
# systemctl stop chronyd
Настройка Chrony
Клиенты NTP должны знать, с какими серверами NTP они должны связаться, чтобы получить текущее время. Серверы NTP могут быть указаны в директиве server в файле конфигурации NTP.
В РЕД ОС конфигурационный файл располагается: /etc/chrony.conf.
Для повышения надежности рекомендуется указать не менее трех серверов.
Пример конфигурационного файла:
# Use public servers from the pool. ntp. org project. # Please consider joining the pool (http: //www. pool. ntp. org/join.html). server ntpl.vniiftri.ru iburst server ntp2.vniiftri.ru iburst server ntp3.vniiftri.ru iburst server ntp4.vniiftri.ru iburst
Параметр iburst используется для ускорения начальной синхронизации.
Необходимо убедиться, что выбранные вами серверы NTP хорошо синхронизированы, стабильны и близки к текущему местоположению, чтобы улучшить точность времени с помощью источников NTP.
Управление Chronyd из командной строки
У Chrony есть утилита командной строки с именем chronyc для управления и мониторинга демона chrony (chronyd).
Для проверки синхронизации chrony, можно использовать команду tracking, как показано ниже.
# chronyc tracking
Вывод должен выглядеть следующим образом:
Reference ID : 89.109.251.23 (ntp3.vniiftri.ru) Stratum : 2 Ref time (UTC) : Tue Jul 7 09:58:19 2020 System time : 0.000002169 seconds fast of NTP time Last offset : +0.000050713 seconds RMS offset : 0.000483255 seconds Frequency : 3.934 ppm slow Residual freq : -0.000 ppm Skew : 1.657 ppm Root delay : 0.016404 seconds Root dispersion : 0.000233 seconds Update interval : 1040.1 seconds Leap status : Normal
Перечисленные пункты содержат следующую информацию:
• Reference ID — идентификатор и имя сервера, с которым компьютер в настоящее время синхронизирован;
• Stratum — количество переходов к серверу с установленными эталонными часами;
• Ref time — время по Гринвичу, в которое было выполнено последнее измерение из эталонного источника;
• System time — задержка системных часов от синхронизированного сервера;
• Last offset — расчетное смещение последнего обновления часов;
• RMS offset — долгосрочное среднее арифметическое значения смещения;
• Frequency — частота, на которой часы системы будут работать неправильно, если хронограф не проведет коррекцию. Она выражена в ppm — ч/м (частей на миллион);
• Residual freq — остаточная частота указывает на разницу между измерениями от опорного источника и используемой в настоящее время частотой;
• Skew — расчетная погрешность, связанная с погрешностью частоты;
• Root delay — суммарная задержка сетевого пути к опорному серверу, с которым синхронизируется компьютер;
• Leap status — статус скачка (изменения) времени, который может иметь одно из следующих значений:
«Normal» – означает нормальную корректировку времени;
«Insert second» – означает, что произведена корректировка времени добавлением дополнительной секунды в последнюю минуту текущего месяца;
«Delete second» – означает, что произведена корректировка времени удалением дополнительной секунды из последней минуты текущего месяца;
«Not synchronised» – означает, что компьютер в данный момент времени не синхронизирован.
Также есть возможность проверить текущие источники времени, которые использует chrony:
# chronyc sources
Вывод должен выглядеть следующим образом:
210 Number of sources = 4 MS Name/IP address Stratum Poll Reach LastRx Last sample ======================================================================= ^+ ntp1.vniiftri.ru 1 10 377 23 +1082us[+1082us] +/- 7791us ^+ ntp2.vniiftri.ru 1 9 377 161 -2180us[-2129us] +/- 16ms ^* ntp3.vniiftri.ru 1 9 375 156 +107us[ +158us] +/- 8421us ^+ ntp4.vniiftri.ru 1 10 377 19 -6601us[-6601us] +/- 20ms
Утилита Chronyc может находить статистику каждого источника, например, скорость дрейфа и процесс оценки смещения, используя команду sourcestats:
# chronyc sourcestats
Вывод должен выглядеть следующим образом:
210 Number of sources = 4 Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev ============================================================================= ntp1.vniiftri.ru 23 13 48m +0.368 2.414 +768us 2728us ntp2.vniiftri.ru 22 15 46m -0.368 3.470 -1076us 2932us ntp3.vniiftri.ru 21 11 46m +0.319 2.649 +887us 2564u ntp4.vniiftri.ru 23 11 48m -0.457 2.564 -1273us 2022us
Чтобы сообщить Chrony, что вы больше не подключены к глобальной сети Интернет, выполните следующие действия:
# chronyc offline
Для проверки статуса источников NTP, необходимо запустить следующую команду:
# chronyc activity
Вывод должен выглядеть следующим образом:
200 0K 4 sources online 0 sources offline 0 sources doing burst (return to online) 0 sources doing burst (return to offline) 0 sources with unknown address
Когда система будет вновь подключена к Интернету, необходимо сообщить об этом Chrony, используя команду:
# chronyc online
Для более подробного объяснения всех параметров следует руководствоваться Справочными страницами.
$ man chronyc $ man chronyd