Home » Ошибки » Chrony не синхронизирует время

Chrony не синхронизирует время

Не первый раз сталкиваюсь с ситуацией, когда не работает синхронизация времени на сервере. На конкретном примере рассмотрю, как разрешить эту ситуацию при использовании службы синхронизации времени chronyd. Ошибка в первую очередь связана с тем, что провайдер блокирует запросы к серверам времени.

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужно пройти .

К примеру, используется дефолтная установка системы centos. Там по-умолчанию настроен chrony. В конфиге /etc/chronyd.conf перечислены серверы времени:

server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

Я замечаю, что на сервере время начинает отставать. Смотрю системный лог:

Feb  9 23:59:24 proxy-nginx chronyd[25285]: Source 94.247.111.10 replaced with 195.3.254.2
Feb 10 00:30:45 proxy-nginx chronyd[25285]: Source 195.210.189.106 replaced with 128.0.142.251
Feb 10 01:12:08 proxy-nginx chronyd[25285]: Source 194.190.168.1 replaced with 85.21.78.8

Ошибок нет, сервера меняются, но нет намека на то, что что-то не в порядке.

Пробую принудительно обновить время с помощью chrony:

# chronyc -a makestep
200 OK

На вид все в порядке. Проверяю лог.

chronyd[19432]: System clock was stepped by 0.000000 seconds

Вижу, что время не изменилось. Проверяю статистику по подключениям.

# chronyc sources -v

Chrony ошибка синхронизации времени

Понимаю, что реально к серверам подключения нет. Дальше я уже и так все понял, потому что сталкиваюсь не первый раз. Из-за уязвимостей в протоколе ntp, его часто провайдеры блокируют полностью и предоставляют свои сервера для синхронизации времени. Я не стал писать в тех поддержку, чтобы узнать сервер времени провайдера. Просто открыл настройку chrony на сервере, установленном из шаблона провайдера и посмотрел там адреса.

После того, как установил сервера провайдера, все стало в порядке. Синхронизация времени в chrony заработала.

chronyd[19542]: Selected source 188.93.16.19
chronyd[19542]: System clock wrong by -343.992220 seconds, adjustment started
systemd: Time has been changed
chronyd[19542]: System clock was stepped by -343.992220 seconds
chronyd[19542]: System clock was stepped by -0.000011 seconds
systemd: Time has been changed

Список серверов для обновления времени в chrony

После таких больших поправок по времени лучше перезагрузить систему, если есть возможность. Если нет, то хотя бы перезапустить основные сервисы.

Рекомендую настраивать мониторинг времени серверов с помощью zabbix. В последних версиях сервера, в стандартных шаблонах эта проверка есть по-умолчанию. На более старых серверах можно настроить вручную. Метрика вроде бы и не критичная. Но это только на первый взгляд. Из-за неправильного времени ошибки могут всплывать в самых неожиданных местах.

Онлайн курс по CI/CD

Если вы хотите стать специалистом, отвечающим за настройку процессов непрерывной разработки и доставки (continuous integration / continuous delivery), рекомендую познакомиться с онлайн-курсом CI/CD в OTUS. Курс не для новичков, для поступления нужны хорошие знания по Linux. Обучение длится 3 месяца, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Что даст вам этот курс:
  • Освоение популярной методики непрерывной разработки и поставки программного обеспечения Continuous Integration и Continuous Delivery на GitLab.
  • Партнером данного курса является Selectel. Вам выдадут промокоды на ресурсы Selectel, чтобы выполнять практические задания.
  • На курсе предусмотрена песочница в виде стендов для отработки студентами практических навыков.
  • В качестве выпускной работы вам будет предложено реализовать процессы CI/CD для любого opensource-проекта на ваш выбор.
Проверьте себя на вступительном тесте и смотрите подробнее программу по .
Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Zerox
Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству.

2 комментария

  1. Аватар
    Аноним

    Класс!

  2. Аватар

    Спасибо, помогло.

Добавить комментарий

Ваш адрес email не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.