NTP-сервер (Network Time Protocol) — источник точного времени для синхронизации системных часов устройств в сети по протоколу NTP. Протокол NTP синхронизирует системное время устройств с высокой точностью относительно всемирного координированного времени (UTC).

Сертификат libvirt — TLS-сертификат, который сервис libvirt использует для проверки идентичности сервера и клиентов.

Вы можете настроить автоматическую синхронизацию системного времени на сервере платформы и узлах кластера с сервером точного времени (NTP-сервером). Синхронизация времени на серверах:

  • упрощает работу с логами. Например, при анализе инцидентов;
  • позволяет избежать проблем с работой сервиса libvirt. Если разница во времени между сервером платформы и узлом кластера больше 15 минут, сервис не может проверить валидность сертификата libvirt и завершается с ошибкой.

Доступны следующие режимы синхронизации времени:

  • сервер платформы VMmanager — время на узлах кластера синхронизируется с сервером платформы. Синхронизация времени на сервере платформы не выполняется автоматически. Вы можете настроить её вручную с помощью ПО chrony;
  • стандартные серверы времени для используемой ОС — время каждого сервера корректируется по локальным настройкам службы синхронизации. Этот режим используется по умолчанию;
  • другие серверы — время каждого сервера синхронизируется с NTP-серверами, указанными администратором.

Логика работы


Сервис синхронизации времени запускается при установке или обновлении платформы до версии 2025.09.1 и выше. Отключение сервиса в платформе не поддерживается. Для корректной работы сервиса на сервере платформы и узлах кластера предварительно должно быть установлено ПО chrony для синхронизации времени.

Перед добавлением нового узла в кластер платформа проверяет на нём работу NTP. Если проверка завершилась с ошибкой, узел не добавляется в кластер. Этапы проверки:

  1. Если на сервере нет ПО для сихнронизации времени, устанавливается ПО chrony. Если chrony не удалось установить, то устанавливается ПО ntp. Если ntp не удалось установить, проверка завершается с ошибкой. 
  2. Время сервера одномоментно синхронизируется в режиме, выбранном в настройках платформы.
  3. Если синхронизация не выполнена и разница во времени между сервером платформы и узлом составляет больше 15 минут, проверка завершается с ошибкой.

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


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

Чтобы настроить режим синхронизации времени:

  1. В правом меню нажмите значок  → раздел Глобальные настройки.
  2. В разделе Время нажмите кнопку Изменить.

  3. Выберите серверы, с которыми будет синхронизироваться время:
    • Сервер платформы VMmanager;
    • Стандартные серверы времени для используемой ОС;
    • Другие серверы → укажите IP-адреса или доменные имена серверов.
  4. Нажмите кнопку Сохранить.

После применения настроек запустится синхронизация времени на узлах кластеров. Синхронизация может занять около одного часа. 

Если в момент применения настроек часть узлов была отключена от кластера (например, находились в режиме обслуживания), то после подключения этих узлов настройки синхронизации не применятся автоматически. Чтобы применить настройки:

  1. В правом меню нажмите значок  → раздел Глобальные настройки.
  2. В разделе Время на баннере Время не синхронизировано на X узлах нажмите кнопку Применить настройки.

Настройка уведомлений

Чтобы получать сообщения о проблемах с синхронизацией, создайте уведомление с параметрами Время не синхронизировано на узле и Ошибки в задачах узлов. Подробнее о создании уведомлений см. статью Уведомления.

Тонкие настройки синхронизации

Вы можете изменить следующие настройки синхронизации:

  • интервал проверки. Значение по умолчанию — каждые 60 минут;
  • допустимое отклонение времени сервера от источника точного времени. Значение по умолчанию — 5 секунд.

Эти параметры задаются через переменные окружения в контейнере nodewarden. Чтобы изменить их значения:

  1. Подключитесь к серверу с платформой по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
  2. Создайте файл патча /opt/ispsystem/vm/patch_time_sync.yaml со следующим содержимым:
    version: "3.5"
    services:
      nodewarden:
        environment:
          TIME_SYNC_INTERVAL: <T_sec>
          TIME_SYNC_MAX_OFFSET: <T_ms>
    CODE
    Пояснения:
    • <T_sec> — интервал проверки в секундах;

    • <T_ms> — допустимое отклонение в миллисекундах.

  3. Примените патч:
    sudo vm add-patch -p=time_sync -f /opt/ispsystem/vm/patch_time_sync.yaml
    CODE
  4. Проверьте, что изменения применены: 
    sudo docker exec nodewarden env | grep TIME_SYNC
    CODE

    Если патч применён успешно, вывод будет содержать новые значения переменных:

    Пример вывода

    TIME_SYNC_INTERVAL: 30
    TIME_SYNC_MAX_OFFSET: 1000
    CODE

Диагностика


Для диагностики проблем, связанных с синхронизацией времени, изучите лог-файлы:

  • /opt/ispsystem/vm/install.log на сервере платформы — cинхронизация времени на сервере платформы;
  • /var/log/vm_reader.log* и /var/log/vm_writer.log* в контейнере vm_box — ошибки синхронизации времени;
  • /var/log/node_alert.log в контейнере vm_box — логи уведомлений;
  • /var/log/nodewarden.log в контейнере nodewarden — логи мониторинга.