Рассинхронизация часов / проблема 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; желательно использовать единую надёжную иерархию источников времени.