CentOSでサーバーの時刻がずれる場合の修正方法

サーバー設定

CentOS のサーバーで時刻がずれる場合の対処方法を解説します。

一度時刻を合わせたサーバーでも、起動し続けていると時刻がずれていきます。
NTP を活用することで、定期的にサーバーの時刻を同期するようにしましょう。

CentOS でサーバーが重いときの確認コマンド



タイムゾーンと現在時刻

まずはサーバーの現在時刻を確認してみます。
正確な日本時間は こちら のページで確認できます。

# date
2018年  7月 12日 木曜日 21:16:08 JST (日本語の場合)
Thu Jul 12 21:16:08 JST 2018 (英語の場合)

合わせてタイムゾーンも確認しておきます。
JST と表示されている場合は日本標準時、UTC の場合は世界標準時で設定されています。

日本標準時に変更する場合は、以下のコマンドを実行します。

CentOS 6以前
# cp /usr/share/zoneinfo/Japan /etc/localtime

CentOS 7以降
# timedatectl set-timezone Asia/Tokyo

NTP サーバーで時刻合わせを自動化する

一度サーバーの時刻を正しく設定しても、時間が経つと徐々にずれてしまいます。
対策として、NTP を利用することでサーバーを正しい時刻に保つことが可能です。

NTP サーバーと呼ばれる時刻配信サーバーと定期的に同期を行います。
自由に利用できる NTP サーバーとしては、以下のものが知られています。

ntp.nict.jp

情報通信研究機構が提供しているサーバーです。
日本標準時を管理している機関ですので、提供される時刻精度はとても信頼できます。

ntp.jst.mfeed.ad.jp

インターネットマルチフィードが提供するサーバーです。
日本のインターネットの中心とも呼べる位置にサーバーがあり、通信遅延が少ない点も特徴です。

NTP もしくは Chronyを設定する

CentOS 6以前では ntp、CentOS 7以降は chrony と呼ばれるサービスを利用します。

/etc/ntp.conf もしくは /etc/chrony.conf に以下の設定を追加します。

# serverを定義している欄に追記
server ntp.nict.jp
 または
server ntp.jst.mfeed.ad.jp

サービスを起動します。

# service ntpd start
 または
# systemctl start chrony

しばらく待ち、確認コマンドを実行します。左端に * が付いていれば同期されています。

# ntpq -p
 または
# chronyc sources

まとめ

CentOS で、サーバーの時刻がずれる場合の対処方法を紹介しました。

サーバーの時刻がずれると、アプリが誤動作したりログ時刻にも影響が出ます。
外部のサービスと連携するシステムでは、特に注意しておきましょう。

NTP サーバーを活用することで、正しい時刻情報を保つことが可能です。