Настроим NTP клиент Chrony на сервере Ubuntu для синхронизации с NTP серверами.
У меня есть парочка стареньких серверов Ubuntu 14, на которых постоянно отстаёт время, причём прилично так отстаёт. Еще есть корпоративные NTP сервера, с которыми было бы неплохо синхронизировать время.
Установим и настроим Chrony для синхронизации времени. После установки появится две программы:
- chronyc — интерфейс командной строки для Chrony
- chronyd — служба Chrony
Установка Chrony
CentOS/RHEL:
yum -y install chrony
Fedora 22+:
dnf -y install chrony
Debian/Ubuntu:
apt install chrony
У меня как раз Ubuntu.
Проверка статуса службы:
service chrony status
systemctl status chronyd
etc/init.d/chronyd status
Для автозапуска вам может пригодиться:
systemctl enable chrony
chkconfig --add chronyd
Настройка Chrony
Конфигурационный файл Chrony находится по адресу /etc/chrony/chrony.conf.
Настроим. Я указываю четыре NTP сервера:
server 10.12.33.13 iburst
server 10.12.33.14 iburst
server 10.12.33.15 iburst
server 10.12.33.16 iburst
stratumweight 0
driftfile /var/lib/chrony/chrony.drift
rtcsync
makestep 10 3
bindcmdaddress 127.0.0.1
keyfile /etc/chrony/chrony.keys
commandkey 1
generatecommandkey
noclientlog
logchange 0.5
logdir /var/log/chrony
- server — NTP-сервер для синхронизации
- stratumweight — задержка синхронизации
- driftfile — расположение и имя файла, содержащего данные смещения
- rtcsync — включает режим, в котором системное время периодически копируется в RTC
- makestep — эта директива корректирует смещение во времени путем снижения скорости или замедления хода часов
- bindcmdaddress — позволяет указать IP-адрес интерфейса, на котором chronyd будет прослушивать пакеты команд мониторинга
- keyfile — файл, содержащий пары ID-ключей для аутентификации пакетов NTP
- commandkey — используется для установки номера ключа, используемого для аутентификации пользовательских команд с помощью программы chronyc во время выполнения
- generatecommandkey — если командный ключ не найден при запуске, chronyd создаст новый командный ключ из файла /dev/urandom и запишет его в файл ключа
- noclientlog — клиентские обращения не должны регистрироваться
- logchange — пороговое значение для настройки системных часов, которые будут генерировать сообщение системного журнала
- logdir — путь к файлу журнала
Перезапускаем службу:
service chrony restart
Проверка Chrony
Информация об источниках:
chronyc sources
Состояние синхронизации:
chronyc tracking
- Reference ID — текущий источник синхронизации
- Stratum — количество переходов
- Ref time — время по Гринвичу
- System time — задержка системных часов от синхронизированного сервера
- Last offset — расчетное смещение последнего обновления часов
- RMS offset — долгосрочное среднее арифметическое значения смещения
- Frequency — это частота, на которой часы системы будут работать неправильно, если хронограф не проведет коррекцию. Она выражена в ppm — ч/м (частей на миллион)
- Residual freq — остаточная частота указывает на разницу между измерениями от опорного источника и используемой в настоящее время частотой
- Skew — расчетная погрешность частоты
- Root delay — суммарная задержка сетевого пути к опорному серверу, с которым синхронизируется компьютер
- Leap status — это статус, который может иметь одно из следующих значений — нормальное, добавить второй, удалить второй или не синхронизироваться
У меня Leap status — Normal, всё синхронизировано.