Help us understand the problem. What is going on with this article?

Linux/UNIXサーバは立てたらまず時刻同期の設定

More than 1 year has passed since last update.

信頼できるタイムスタンプがログに残っていることが障害調査の重要な手がかりとなります。
正確な時刻の確保はサーバ管理の根本ですので、時刻同期の設定はOSをインストール後に最優先で行う作業と位置づけられるものです。

基礎知識として

  • 時刻は ハードウェアクロック とOS上の ソフトウェアクロック がともに刻んでいます。 稼働中はソフトウェアクロックだけが参照されますが、ハードウェアクロックはマシン停止時にも動き続けているので 起動時にはハードウェアクロックがソフトウェアクロックへ読み込まれます。
  • ネットワークから現在時刻を提供するサービス(NTP)により時刻合わせをします。 このとき、特に時刻を遅らす場合、急に遅らせる操作はしません。時刻が後ろへ飛ぶことによりログの時刻の前後関係がひっくり返る可能性があるからです。 (ログ以外のソフトウェア動作も異常を来すかも知れません) ソフトウェアクロックのテンポを微妙に落とすことでゆっくりと時計を遅らす操作を SLEWモード の時刻設定と呼びます。

稼働中には

  • 定期的にNTPサーバを参照してソフトウェアクロックをSLEWモードで正確に保つ
  • 定期的にソフトウェアクロックをハードウェアクロックへ反映する

ことにより稼働中・再起動後とも正確な時刻を保てます。

設定

  1. ntpd(NTPクライアント・サーバ)のインストール
    # chkconfig
    で出てくるリスト内にntpdがあればインストール済みです。 インストールはRedhat系のLinuxなら
    # yum install ntp
    で。Debian系なら
    # apt-get install ntp
    ですね。 chkconfigの結果でntpがランレベル3,4,5でonになっていなければ
    # chkconfig ntpd on
    で自動起動を設定します。
  2. ntpdの設定
    純粋にクライアントとして動作するように設定します。
    参照先として、日本国内のサーバならNICTの設置するntp.nict.jpを指定します。社内サーバなら社内NTPが指示されているかも知れません。
    ntpdの設定ファイルはOSにもよりますが /etc/ntp.conf などです。以下はNICT接続の設定例です。

    # 時刻の狂いがどんなに大きくても動作停止はしないが、300秒以上狂っていたらSLEWせず一気にあわせる。
    tinker panic 0 step 300
    # 時刻の狂う傾向を統計して以下のファイルに記録する
    driftfile /var/lib/ntp/drift
    # サーバとしての動作は全面禁止
    restrict default kod nomodify notrap nopeer noquery
    restrict -6 default kod nomodify notrap nopeer noquery
    # ただしローカルホストからのアクセスは許可
    restrict 127.0.0.1
    restrict -6 ::1
    # NICTからのアクセス(返答パケット)を許可する
    restrict 133.243.238.163 mask 255.255.255.255 nomodify notrap noquery
    restrict 133.243.238.164 mask 255.255.255.255 nomodify notrap noquery
    restrict 133.243.238.243 mask 255.255.255.255 nomodify notrap noquery
    restrict 133.243.238.244 mask 255.255.255.255 nomodify notrap noquery
    # 同期先はNICT
    server ntp.nict.jp
  3. ntpdを再起動

    # service ntpd restart
  4. 時刻同期ができていることを確認
    ntpd起動後しばらくしてから

    # ntpq -p
    を実行して同期状況を表示させます。結果のサーバ名の左端に'*'が出ていれば同期中であることがわかります。
  5. ハードウェアクロックへの定期反映の設定
    /etc/crontab ファイルに次の行を追加します。

    0 5 * * 0 root /sbin/hwclock -w > /dev/null 2>&1
    これにより、毎朝5時にソフトウェアクロックがハードウェアクロックに反映されます。

ntpdを起動した時点で時刻が5分以上狂っていた場合、上記の設定ではSLEWでなく一気に合わさりますのでご注意ください。

yuba
全然わからない 俺たちは雰囲気でコードを書いている
http://cs.hatenablog.jp/
m3dev
インターネット、最新IT技術を活用し日本・世界の医療を改善することを目指します
https://m3.recruitment.jp/engineer/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした