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 は動作しているか、時刻ソースに到達できるか、同期しているか。サービスを起動してソースを修正する。オフセットが大きい場合は慎重にステップ調整する (急激な時刻の飛びが一部の DB に影響することがある)。

4. 影響を受けたコンポーネントを検証する

時刻を修正した後に確認する: MongoDB レプリカセットの選出は安定しているか、Redis Sentinel/Cluster は正常か、TLS ハンドシェイクは成功するか、レプリケーションラグのメトリクスは回復したか。

5. 恒久対策

すべてのノードで NTP を必須とし、オフセットを監視する (アラート: >100ms)。仮想マシンではホストとゲストの時刻同期設定を明確にし、できれば単一の信頼できる時刻ソース階層を使う。

DBAtlas で開く →