После завершения этого раздела вы сможете поддерживать точную синхронизацию времени с помощью NTP и настроить часовой пояс, чтобы обеспечить правильные метки времени для событий, зарегистрированных системным журналом и log-файлами.
Правильная синхронизация системного времени очень важна для анализа log-файлов в различных системах. Сетевой протокол времени (Network Time Protocol, NTP) — это стандартный способ предоставления и получения компьютерами информации о правильном времени в Интернете. Компьютер может получить сведения о точном времени от общедоступных NTP-служб в Интернете, таких как NTP Pool Project. Еще один вариант ― высокоточные аппаратные часы, предоставляющие точное время локальным клиентам.
Команда timedatectl показывает обзор текущих системных параметров, связанных со временем, включая текущее время, часовой пояс и параметры синхронизации NTP.
[user@host ~]$ timedatectl Local time: Fri 2019-04-05 16:10:29 CDT Universal time: Fri 2019-04-05 21:10:29 UTC RTC time: Fri 2019-04-05 21:10:29 Time zone: America/Chicago (CDT, -0500) System clock synchronized: yes NTP service: active RTC in local TZ: no
[user@host ~]$
timedatectl
Доступна база данных с часовыми поясами. Отобразить ее можно с помощью команды timedatectl list-timezones.
[user@host ~]$ timedatectl list-timezones Africa/Abidjan Africa/Accra Africa/Addis_Ababa Africa/Algiers Africa/Asmara Africa/Bamako ...
timedatectl list-timezones
Имена часовых поясов берутся из общедоступной базы данных часовых поясов, предоставляемой IANA. Часовые пояса именуются на основе континента или океана и (как правило, но не всегда) по самому большому городу в регионе часового пояса. Например, большая часть горного часового пояса США — это «Америка/Денвер».
Выбрать правильное название может быть сложно, если населенные пункты внутри часового пояса применяют разные правила перехода на летнее время. Например, в США значительная часть штата Аризона (США, горное время) не применяет переход на летнее время вообще и находится в часовом поясе «Америка/Финикс».
Для определения правильных названий часовых поясов по zoneinfo используется команда tzselect. Она интерактивно задает пользователю вопросы о расположении системы и отображает название правильного часового пояса. Она не вносит никаких изменений в параметры часовых поясов системы.
Привилегированный пользователь может с помощью команды timedatectl set-timezone изменить настройки системы, чтобы обновить текущий часовой пояс. Следующая команда timedatectl изменяет текущий часовой пояс на America/Phoenix.
America/Phoenix
[root@host ~]# timedatectl set-timezone America/Phoenix [root@host ~]# timedatectl Local time: Fri 2019-04-05 14:12:39 MST Universal time: Fri 2019-04-05 21:12:39 UTC RTC time: Fri 2019-04-05 21:12:39 Time zone: America/Phoenix (MST, -0700) System clock synchronized: yes NTP service: active RTC in local TZ: no
[root@host ~]#
timedatectl set-timezone America/Phoenix
Если вам потребуется использовать Всемирное координированное время (UTC) на определенном сервере, установите для него часовой пояс UTC. Команда tzselect не включает название часового пояса UTC. Используйте команду timedatectl set-timezone UTC, чтобы установить UTC в качестве текущего часового пояса системы.
UTC
Используйте команду timedatectl set-time, чтобы изменить текущее время системы. Время задается в формате "ГГГГ-ММ-ДД чч:мм:сс", где либо дату, либо время можно опустить. Следующая команда timedatectl изменяет время на 09:00:00.
"ГГГГ-ММ-ДД чч:мм:сс"
09:00:00
[root@host ~]# timedatectl set-time 9:00:00 [root@host ~]# timedatectl Local time: Fri 2019-04-05 09:00:27 MST Universal time: Fri 2019-04-05 16:00:27 UTC RTC time: Fri 2019-04-05 16:00:27 Time zone: America/Phoenix (MST, -0700) System clock synchronized: yes NTP service: active RTC in local TZ: no
timedatectl set-time 9:00:00
Команда timedatectl set-ntp включает или отключает синхронизацию NTP для автоматической корректировки времени. Для включения или отключения синхронизации необходимо использовать аргумент true или false соответственно. Следующая команда timedatectl включает синхронизацию NTP.
[root@host ~]# timedatectl set-ntp true
timedatectl set-ntp true
В Red Hat Enterprise Linux 8 команда timedatectl set-ntp определяет, работает NTP-служба chronyd или нет. В других дистрибутивах Linux этот параметр может использоваться для настройки другой службы NTP или SNTP.
chronyd
Включение или отключение NTP с использованием других утилит в Red Hat Enterprise Linux, например в графическом приложение GNOME Settings, также изменяет этот параметр.
Служба chronyd поддерживает правильное время в обычно неточных локальных аппаратных часах (RTC), синхронизируя их с настроенными серверами NTP. Если сетевое подключение недоступно, chronyd вычисляет смещение времени RTC, которое записывается в переменную driftfile файла конфигурации /etc/chrony.conf.
driftfile
/etc/chrony.conf
По умолчанию служба chronyd использует серверы службы NTP Pool Project для синхронизации времени и не требует дополнительной настройки. Может потребоваться изменить серверы NTP, когда компьютер находится в отдельной сети.
Значение stratum источника времени NTP определяет его качество. stratum определяет количество транзитных переходов, отделяющих компьютер от высокоточных эталонных часов. Эталонные часы ― это источник времени stratum 0. NTP-сервер, непосредственно подключенный к нему, — это stratum 1, а компьютер, синхронизирующий время с NTP-сервера, — stratum 2.
stratum 0
stratum 1
stratum 2
Существуют две категории источников времени, которые можно объявить в файле конфигурации /etc/chrony.conf: server и peer. server находится на один уровень выше локального NTP-сервера, а peer находится на том же уровне иерархии. Задать можно более одного server и более одного peer, по одному в каждой строке.
Первый аргумент строки server является IP-адресом или DNS-именем сервера NTP. После имени или IP-адреса сервера можно указать ряд опций для сервера. Рекомендуется использовать опцию iburst, так как после запуска службы выполняются четыре измерения за короткий период времени для более точной начальной синхронизации часов.
server
iburst
Следующая строка server classroom.example.com iburst в файле /etc/chrony.conf предписывает службе chronyd использовать источник времени NTP classroom.example.com .
server classroom.example.com iburst
classroom.example.com
# Use public servers from the pool.ntp.org project. ...output omitted... server classroom.example.com iburst ...output omitted...
Указав для chronyd локальный источник времени (classroom.example.com), необходимо перезапустить службу.
[root@host ~]# systemctl restart chronyd
systemctl restart chronyd
Команда chronyc играет роль клиента для службы chronyd. После настройки синхронизации NTP необходимо выполнить команду chronyc sources, чтобы убедиться, что локальная система действительно использует сервер NTP для синхронизации системных часов. Чтобы получить более детальный вывод с дополнительными пояснениями, используйте команду chronyc sources -v.
[root@host ~]# chronyc sources -v 210 Number of sources = 1 .-- Source mode '^' = server, '=' = peer, '#' = local clock. / .- Source state '*' = current synced, '+' = combined , '-' = not combined, | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable. || .- xxxx [ yyyy ] +/- zzzz || / xxxx = adjusted offset, || Log2(Polling interval) -. | yyyy = measured offset, || \ | zzzz = estimated error. || | | MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* classroom.example.com 8 6 17 23 -497ns[-7000ns] +/- 956us
chronyc sources -v
Символ * в поле S (исходное состояние) указывает, что в качестве источника времени использовался сервер classroom.example.com и компьютер в настоящее время синхронизирован именно с этим сервером.
*
S
Man-страницы timedatectl(1), tzselect(8), chronyd(8), chrony.conf(5) и chronyc(1)
tzselect
chrony.conf
chronyc
NTP Pool Project
База данных часовых поясов