DBAtlas · Атлас эксплуатации баз данных

Рассинхронизация часов / проблема NTP

Симптом

Расхождение часов между узлами кластера; несогласованность репликации/выборов, 'certificate not yet valid', скачки времени в журналах.

1. Распознайте симптом

Расхождение часов коварно: «мигание» выборов в Mongo/Redis Sentinel, ошибки TLS 'not yet valid/expired', ошибки Kerberos, метки времени, идущие назад в журналах. В распределённых системах это корень большинства «необъяснимых» странностей.

2. Измерьте расхождение

На каждом узле сравните источник времени и смещение: timedatectl, chronyc tracking (или ntpq -p) и date -u на разных узлах. На сколько ms/s они расходятся?

3. Исправьте NTP/chrony

Запущен ли chronyd/ntpd, доступны ли источники времени, есть ли синхронизация? Запустите службу и исправьте источник; при больших смещениях корректируйте время осторожно (резкий скачок может затронуть некоторые СУБД).

4. Проверьте затронутый компонент

После исправления часов проверьте: стабильны ли выборы в наборе реплик MongoDB, исправен ли Redis Sentinel/Cluster, проходят ли TLS handshake, восстановились ли метрики отставания репликации?

5. Навсегда

Сделайте NTP обязательным на всех узлах и отслеживайте смещение (оповещение: >100ms). На виртуальных машинах определитесь с настройкой синхронизации времени host-guest; желательно использовать единую надёжную иерархию источников времени.

Открыть в DBAtlas →