NTP サーバの同期設定方法

先日、保守しているサイトの本番サーバの時刻がずれていたので、ntp サーバの設定をしました。
yum list で確認すると、NTP サーバ自体は本番サーバ(以下、hoge サーバとします)にインストールされていたので、設定から。

/etc/ntp.conf を修正

  • NTP サーバの設定を追加します。
  • 日本標準時を提供している NTP サーバと時刻の同期をとるように設定します。
  • 外部の NTP サーバと、hoge サーバにある NTP サーバと同期をとる、という感じです。たぶん。
# 修正前
server 0.rhel.pool.ntp.org
server 1.rhel.pool.ntp.org
server 2.rhel.pool.ntp.org
# 修正後
server -4 ntp.nict.jp
server -4 ntp.jst.mfeed.ad.jp

hoge サーバ内の NTP サーバが起動しているか確認

  • 下記コマンドで確認できます。どっちをつかっても OK です。
    • /etc/init.d/ntpd status
    • ps aux | grep ntpd
ps aux | grep ntpd
# こんな感じででれば起動中
ntp       2675  0.0  0.8   4392  4392 ?        SLs   2010   0:07 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g

NTP サーバが起動してたら一旦止める

  • 停止している状態ならこのコマンドは実行しなくて OK です。


/etc/init.d/ntpd stop

手動で時刻を合わせる

  • 30 分くらい時刻がずれていたので、手動で時刻を合わせてから、NTP サーバと同期をとるようにします。
    • NTP サーバ起動時に大幅に時刻がズレていると、NTP サーバが起動できないそうです。
    • ■NTPサーバーインストール に書いてありました。
ntpdate -b ntp.nict.jp
  • もし NTP サーバが起動中だった場合、下記のようなエラーになります。
21 Apr 13:01:44 ntpdate[9659]: the NTP socket is in use, exiting

NTP サーバを起動

  • 時刻を合わせたら、下記コマンドで NTP サーバを起動します。
/etc/init.d/ntpd start

少し待って、同期しているか確認

  • ntpq -p を実行して、参照同期中のサーバを表すアスタリスクが表示されていれば OK です。
>ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 *ntp-b2.nict.go. .NICT.           1 u    5   64  377    3.366   28.289   8.686
 +ntp2.jst.mfeed. 210.173.160.86   2 u    9   64  377    1.436   31.315   6.857
  LOCAL(0)        .LOCL.          10 l   12   64  377    0.000    0.000   0.001

【補足】ntpq -p の見方

  • * 参照同期中のサーバーを表している
  • + クロック誤り検査に合格したサーバー
  • " " 左に何も表示されない場合(空欄)、サーバーを参照していない

ntpd をサーバ起動時、自動起動するよう設定

  • 下記コマンドを実行すると、自動起動するようになります。
chkconfig ntpd on

自動起動設定になっているか確認

>chkconfig --list ntpd
ntpd            0:off   1:off   2:on    3:on    4:on    5:on    6:off

これで、本番サーバの時刻のズレは解消されました。
結構長い間放置してたので、終わって良かったです。