1.4 Настройка синхронизации времени

Синхронизация времени по NTP

NTP — это протокол синхронизации времени по сети. По существу клиенты запрашивают текущее время на сервере и используют его для установки своих собственных часов.

За этим простым описанием скрывается много сложностей — существуют уровни NTP серверов, где первый уровень подключен к атомным часам, а второй и третий уровни серверов распределяют на себя нагрузку по актуальным запросам из интернета. Кроме того клиентское приложение сложнее, чем вы можете подумать — оно компенсирует задержки соединения и регулирует время таким образом, чтобы не навредить другим процессам, запущенным на сервере. Но к счастью вся эта сложность скрыта от вас!

ntpdate

РЕД ОС стандартно устанавливается с ntpdate и будет запускать его при каждой загрузке один раз для установки времени по NTP серверу.

ntpdate ntp1.vniiftri.ru

Проверка доступности сервера времени:

ntpdate -q 0.ru.pool.ntp.org

ntpd

Сервис NTP ntpd вычисляет уход ваших системных часов и постоянно подправляет их, благодаря чему не происходит сильных изменений, что может приводить к непоследовательности в журналах. Ценой этому небольшое расходование мощности процессора и оперативной памяти, но для современного сервера это несущественно.

Установка

Для установки ntpd из терминала введите:
для РЕД ОС версии 7.1 или 7.2:

# yum install ntp

для РЕД ОС версии 7.3 и старше:

# dnf 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 необходимо выполнить следующую команду:
для РЕД ОС версии 7.1 или 7.2:

 # yum install chrony

для РЕД ОС версии 7.3 и старше:

 # dnf 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

Если вы нашли ошибку, выделите текст и нажмите Ctrl+Enter.

Print Friendly, PDF & Email