2.1.4 Настройка синхронизации времени
Синхронизация времени по NTP
ntpdate
ntpd
Chronyd
systemd-timesyncd
Диспетчер даты и времени
System-config-date
На нашем Youtube-канале вы можете подробнее ознакомиться с настройкой синхронизации времени, просмотрев видео Настройка синхронизации времени, а также найти много другой полезной информации.
Окружение
- Версия РЕД ОС: 7.3.1
- Конфигурация: Рабочая станция
- Версия ПО: ntpdate-4.2.8p13, chrony-4.0-5
Синхронизация времени по 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
systemd-timesyncd
systemd-timesyncd – это системная служба, которую можно использовать для синхронизации локальных системных часов с удаленным сервером по протоколу сетевого времени (NTP). В отличие от сервисов времени chrony или ntpd, которые могут предоставлять время для клиентов, служба systemd-timesyncd реализует только клиентскую часть SNTP. Этот сервис способен регулировать системные часы для больших смещений по времени или медленно настраивает их для меньших дельт.
Чтобы перейти к настройке службы systemd-timesyncd предварительно проверьте статусы ntpd и chronyd. Если они запущены, то исключите сервисы из автозапуска с помощью команд:
systemctl disable ntpd --now systemctl disable chronyd --now
Это необходимо сделать для корректной синхронизации через systemd-timesyncd.
Настройка systemd-timesyncd производится через файл конфигурации /etc/systemd/timesyncd.conf. Чтобы указать список серверов времени для синхронизации, добавьте в файле /etc/systemd/timesyncd.conf, в раздел [Time] параметр «NTP»:
NTP=ntp0.vniiftri.ru ntp1.vniiftri.ru ntp2.vniiftri.ru ntp3.vniiftri.ru
В примере перечисляются сервера времени vniiftri.ru, которые предоставляются ФГУП «ВНИИФТРИ». Эти NTP-сервера работают от сигналов рабочих шкал Государственного первичного эталона времени, частоты и национальной шкалы времени РФ и вторичных эталонов в Иркутске, Хабаровске и Новосибирске.
Параметр «FallbackNTP» определит список резервных серверов времени:
FallbackNTP=ntp1.niiftri.irkutsk.ru
В итоге файл конфигурации будет выглядеть следующим образом:
[Time]
NTP=ntp0.vniiftri.ru ntp1.vniiftri.ru ntp2.vniiftri.ru ntp3.vniiftri.ru
FallbackNTP=ntp1.niiftri.irkutsk.ru
Запустите службу systemd-timesyncd командой:
systemctl enable systemd-timesyncd --now
Чтобы проверить статус службы выполните команду:
systemctl status systemd-timesyncd
Для проверки текущего статуса синхронизации времени выполните команду:
timedatectl status Local time: Пн 2022-07-18 09:46:38 MSK Universal time: Пн 2022-07-18 06:46:38 UTC RTC time: Пн 2022-07-18 06:46:38 Time zone: Europe/Moscow (MSK, +0300) System clock synchronized: yes NTP service: active RTC in local TZ: no
Детальную информацию о состоянии синхронизации времени можно посмотреть командой:
timedatectl timesync-status Server: 89.109.251.21 (ntp1.vniiftri.ru) Poll interval: 1min 4s (min: 32s; max 34min 8s) Leap: normal Version: 4 Stratum: 1 Reference: MRS Precision: 4us (-18) Root distance: 183us (max: 5s) Offset: -992us Delay: 17.277ms Jitter: 0 Packet count: 1 Frequency: +99,726ppm
Диспетчер даты и времени
Для настройки даты и времени в РЕД ОС по умолчанию доступна графическая утилита «Диспетчер даты и времени», которая располагается в «Главном меню» - «Администрирование» - «Дата и время».
По умолчанию включена синхронизация по NTP, поэтому настройка даты и времени вручную отключена, доступна только смена часового пояса.
Для изменения настроек отключите синхронизацию по NTP, выберите часовой пояс, установите время и дату, для применения изменений нажмите кнопку «Сохранить».
System-config-date
System-config-date также является графической утилитой для настройки системной даты и времени, однако, в отличие от стандартного Диспетчера, функционал данной утилиты шире.
Для установки утилиты перейдите в сеанс пользователя root:
su -
и выполните команду:
dnf install system-config-date
После установки программа доступна из «Главного меню» - «Администрирование» - «System-Config-Date».
На вкладке Дата и время есть возможность включить/отключить Синхронизацию даты и времени по сети.
При включенной синхронизации можно настроить Серверы NTP — добавить новые серверы для синхронизации времени, изменить или удалить существующие. В Дополнительных параметрах можно ускорить синхронизацию и использовать локальный источник времени.
При выключенной синхронизации установка системной даты и времени производится вручную.
Для применения изменений нажмите «ОК».
На вкладке Часовой пояс доступен выбор необходимого часового пояса на карте или в списке.
Для навигации по карте используются вертикальная и горизонтальная полосы прокрутки. Для изменения масштаба можно использовать кнопки «+» и «-» слева от карты либо колесико мыши.
Также доступна настройка использования UTC — функции автоматического перехода с зимнего на летнее время.
Для применения установленных настроек нажмите «ОК».
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.