手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 chrony の基本設定 – NTP で時刻同期を安定させる

関連する記事

Ubuntu 26.04 Server では、ログの時系列、TLS 証明書の有効期限判定、監視、クラスタ構成、認証基盤の動作に時刻同期が強く関係します。時刻がずれると、サービス自体は起動していても、原因が見えにくい障害になります。

この記事では、chrony を使って NTP による時刻同期を構成し、/etc/chrony/chrony.confchrony.servicechronyc sourceschronyc tracking で状態を確認する基本をまとめます。

この記事で扱うこと
  • chrony パッケージの導入
  • /etc/chrony/chrony.conf の基本設定
  • NTP server、iburstprefer の考え方
  • driftfilertcsyncmakestepleapsectzlogdir
  • chronyc sourceschronyc tracking による確認
対象 OSUbuntu 26.04 Server
パッケージchrony
サービスchrony.service
設定ファイル/etc/chrony/chrony.conf
確認コマンドchronyc sourceschronyc tracking
参考書籍
参考書籍
Ubuntu Server Administration
Ubuntu Server の時刻同期、ログ、サービス運用を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見る
このリンクは Amazon アソシエイトリンクです。

chrony で見るポイント

chrony は NTP クライアントとして上位の時刻サーバーを参照し、ローカルシステムの時刻を継続的に補正します。単にサービスが active であることだけでなく、どの server を参照しているか、同期済みか、どの程度ずれているかを確認することが重要です。

  • chrony.service が起動している
  • /etc/chrony/chrony.conf に参照先 server が設定されている
  • chronyc sources で同期候補と選択状態を確認できる
  • chronyc tracking で offset、stratum、leap status を確認できる
  • DNS 解決、UDP 123 番、ファイアウォール、経路を合わせて確認する

chrony をインストールする

まず chrony パッケージを導入し、サービス状態を確認します。Ubuntu 26.04 では systemd 管理の chrony.service として扱います。

コマンド
sudo apt update
sudo apt install -y chrony
systemctl status chrony.service --no-pager
chronyc -v

chrony.conf を設定する

/etc/chrony/chrony.conf では、参照する NTP server、driftfile、RTC 反映、起動直後の時刻補正、うるう秒情報、ログディレクトリを定義します。

/etc/chrony/chrony.conf
server ntp.example.com iburst prefer
driftfile /var/lib/chrony/chrony.drift
rtcsync
makestep 1 3
leapsectz right/UTC
logdir /var/log/chrony

複数の時刻サーバーを指定する

本番環境では、単一の時刻サーバーだけに依存しない構成が安全です。複数の server を指定し、優先したい参照先に prefer を付けます。

chrony.conf の一部
server ntp1.example.com iburst prefer
server ntp2.example.com iburst
server ntp3.example.com iburst
driftfile /var/lib/chrony/chrony.drift
rtcsync
makestep 1 3
leapsectz right/UTC
logdir /var/log/chrony

設定を反映する

設定を変更したら chrony.service を再起動します。再起動後はサービス状態とログを確認します。

コマンド
sudo systemctl restart chrony.service
sudo systemctl enable chrony.service
systemctl status chrony.service --no-pager
journalctl -u chrony.service --no-pager -n 100

同期元を確認する

chronyc sources では、参照している NTP server と選択状態を確認できます。^* が現在選択されている同期元、^+ が利用可能な候補です。

コマンド
chronyc sources
chronyc sources -v
chronyc activity

同期状態を確認する

chronyc tracking では、stratum、system time、last offset、RMS offset、frequency、leap status などを確認できます。証明書やログのトラブル時は、ここで大きな時刻ずれがないか見ます。

コマンド
chronyc tracking
timedatectl status
date -u
date

DNS と通信経路を確認する

NTP server を FQDN で指定している場合、名前解決できなければ同期できません。また、外部または内部 NTP server へ UDP 123 番で到達できる必要があります。

コマンド
resolvectl query ntp.example.com
ip route get 192.0.2.123
sudo tcpdump -ni any 'udp port 123'
chronyc sources

時刻が大きくずれている場合を見る

makestep 1 3 は、起動直後の数回に限り、大きなずれを段階的な補正ではなく step で修正できるようにする設定です。常時大きくずれる場合は、NTP server、ネットワーク、仮想化基盤の時計、ホスト OS 側の時刻も確認します。

コマンド
chronyc tracking
chronyc sourcestats
timedatectl timesync-status
dmesg | grep -i clock

運用前の確認ポイント

  • chrony パッケージが導入されている
  • /etc/chrony/chrony.conf に参照先 server が設定されている
  • chrony.service が active になっている
  • chronyc sources で同期元を確認できる
  • chronyc tracking で leap status と offset を確認できる
  • FQDN 指定の場合は DNS 解決を確認している
  • UDP 123 番の通信経路とファイアウォールを確認している

まとめ

Ubuntu 26.04 の chrony 基本設定では、chrony を導入し、/etc/chrony/chrony.conf に NTP server、driftfilertcsyncmakestepleapsectzlogdir を設定します。

時刻同期は地味ですが、ログ、証明書、認証、クラスタ、監視の前提です。chronyc sourceschronyc tracking を見て、サービス状態だけでなく実際の同期状態まで確認できるようにしておくと、障害時の切り分けがずっと楽になります。

関連する記事
Ubuntu 26.04 chrony の基本設定 – NTP で時刻同期を安定させる

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る