見出し画像

chrony/NTPの設定間違いで時刻同期が崩壊『サーバOSの話⑩』

サーバ運用で最も“地味だが致命的”なのが 時刻同期の崩壊
アプリのログが並ばない、DBレプリケーションが破綻、
証明書やトークン認証が失敗──。
原因が chrony/NTP の設定ミス というのは、現場で本当によくある。

時刻はインフラの基準。
これが揃わないと、上のレイヤはすべて崩れる。


ひと言まとめ

NTP/chrony の設定ミスは“静かに壊す”タイプの事故。
サーバ同士の時刻がズレると、障害解析・認証・レプリケーション全部が狂う。


症状(あるある)

  • サーバごとにログ時刻がバラバラ

  • 監視アラートと OS のログが一致しない

  • DBレプリケーションで “clock skew” エラー

  • TLS証明書やJWTトークンの期限判定で失敗

  • アプリのセッション周りだけ謎の不具合

  • chronyc sources が “? UNREACH” だらけ

  • 仮想環境でホストとVMの時刻が揃わない


原因と仕組み(なぜ起きる?)

  • chrony と ntpd が 両方インストールされて競合

  • “server” と “pool” の使い方ミス

  • 上位NTPサーバのIP/ホスト名が間違い

  • ファイアウォールで UDP/123 が閉じている

  • 仮想環境で ホストとゲストが互いに時刻修正 してズレ続ける

  • RTC(ハードウェアクロック)が UTC/JST どちらかに統一されていない

  • cloud-init が別の NTP 設定を上書き


図:NTP不達 → サーバが勝手に時刻を進めたり遅らせたりする

[上位NTP] ×(到達不可)
      │
      ▼
[サーバ]  ← 自己判断で時刻調整 → ログがズレる・認証失敗

切り分け(最短コース)

  1. 使用しているサービスを確認(chrony or ntpd)

    1. systemctl status chronyd systemctl status ntpd

  2. 同期状態確認

    1. chronyc tracking chronyc sources -v

  3. 上位NTPへの疎通確認

    1. nc -uvz <NTP_SERVER> 123

  4. 時刻の現在値チェック

    1. date

  5. 仮想環境ならホスト側のタイムソースを確認
     VMware/Hyper-V/KVM で “時刻同期” の二重化に注意。


今すぐ効く対処(テンプレ)

◆ chrony を正しく設定(RHEL系例)

/etc/chrony.conf

server ntp.example.com iburst
# または
pool 0.jp.pool.ntp.org iburst
  • サービス再起動

    1. systemctl restart chronyd

  • 即時同期(強制)

    1. chronyc makestep

  • 競合する ntpd を無効化

    1. systemctl disable --now ntpd

◆ FW の UDP/123 を開放

NTPは 必ずUDP/123。ここを閉じているケースが非常に多い。

◆ 仮想環境の“二重同期”を無効化

  • VM Tools の時刻同期を切る

  • もしくは chrony を無効化しホストに統一する(どちらか一方)


恒久対策/再発防止チェックリスト

  • chrony と ntpd の“どちらを使うか”を統一

  • 上位NTPサーバを企業内で一本化

  • UDP/123 の通信経路を保証

  • cloud-init の NTP 設定上書きを防止

  • 仮想環境でホスト/ゲストの同期方式を明確化

  • chronyc tracking を監視に組み込む

  • RTC(ハードウェアクロック)は UTC 統一

  • NTPサーバ側の負荷・可用性も定期点検


落とし穴(やりがちミス)

  • chrony.conf の “server” と “pool” を混在

  • pool.ntp.org を firewall がブロック

  • 複数NTPサーバを設定したが、1つだけ間違ったIPで固まる

  • cloud-init で設定を上書きされ chrony.conf が無視される

  • 仮想環境でホストとVMが“時刻の押し合い”をしてズレ続ける


変更後の確認ポイント

  • chronyc sources が ^* で同期状態

  • offset(ズレ幅)が数ミリ秒〜数十ミリ秒で安定

  • ログ時刻と実際の時刻が一致

  • 監視アラートの発生時刻と整合

  • VMとホストの同期方式が一貫している


まとめ(行動指針)

時刻同期は“インフラの基準線”。
ここが狂うと、ログ・認証・レプリケーションがすべて崩れる。

chrony/ntpd を一本化 → 上位NTPを正しく設定 → 同期状態を監視。
これだけで時刻同期の崩壊はほぼ防げる。

いいなと思ったら応援しよう!