ChronyによるNTP設定のメモ
#OSバージョン
CentOS Linux release 7.4.1708 (Core)
#Chronyとは
CentOS7/RHEL7でntpdの変わりに標準となったNTP機能(サーバ/クライアント両方)
これからNTPを学ぶ方はChronyの方が良いのかなと思われます。
#事前確認
# rpm -qa | grep chrony
chrony-3.1-2.el7.centos.x86_64
サービスとしても自動起動が設定されています。
# systemctl status chronyd
● chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
Active: active (running) since 土 2017-12-30 14:40:12 JST; 4min 9s ago
Docs: man:chronyd(8)
man:chrony.conf(5)
Process: 797 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
Process: 774 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 779 (chronyd)
CGroup: /system.slice/chronyd.service
mq779 /usr/sbin/chronyd
12月 30 14:40:11 centos74.localdomain systemd[1]: Starting NTP client/server...
12月 30 14:40:12 centos74.localdomain chronyd[779]: chronyd version 3.1 star...
12月 30 14:40:12 centos74.localdomain chronyd[779]: Frequency 0.047 +/- 0.03...
12月 30 14:40:12 centos74.localdomain systemd[1]: Started NTP client/server.
12月 30 14:40:49 centos74.localdomain chronyd[779]: Forward time jump detected!
12月 30 14:40:54 centos74.localdomain chronyd[779]: Selected source 133.130....
12月 30 14:40:54 centos74.localdomain chronyd[779]: System clock wrong by -2...
12月 30 14:40:28 centos74.localdomain chronyd[779]: System clock was stepped...
12月 30 14:40:28 centos74.localdomain chronyd[779]: Selected source 122.215....
12月 30 14:40:30 centos74.localdomain chronyd[779]: Source 129.250.35.250 re...
Hint: Some lines were ellipsized, use -l to show in full.
#設定
設定は非常に簡単です。
(1)定義ファイルのバックアップ
# cp -p /etc/chrony.conf /etc/chrony.conf.org
# diff /etc/chrony.conf /etc/chrony.conf.org
#
(2)定義ファイルの設定を行います。
NTPサーバの指定としてNICTのNTPサーバを指定してみました。
# vi /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server ntp.nict.jp iburst ★←同期したいNTPサーバを指定してください。
# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift
# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
# もし1秒以上のズレがある場合、最初の3回まではslew調整の代わりにstep調整する
makestep 1.0 3
# Enable kernel synchronization of the real-time clock (RTC).
rtcsync
# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *
# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2
# Allow NTP client access from local network.
#allow 192.168.0.0/16 ★←NTPクライアントからの接続を制限したい場合はこちらを設定
# Serve time even if not synchronized to a time source.
#local stratum 10 ★←Stratum1を最上位としてローカルがどこのNTPになるかを設定(NTPサーバとする場合は記述)
# Specify file containing keys for NTP authentication.
#keyfile /etc/chrony.keys
# Specify directory for log files.
logdir /var/log/chrony ★←ログの出力先ディレクトリを指定
# Select which information is logged.
#log measurements statistics tracking ★←取得するログの種類を指定
# デフォルトで入っていなかったオプション
# noclientlog ★←こちらを指定するとクライアントログが取得されない
取得可能なログは下記表の通り。
ログ | 説明 |
---|---|
measurements | 生のNTP測定と関連情報を measurements.log と呼ばれるファイルにログ記録します。 |
statistics | 回帰処理についての情報を statistics.log と呼ばれるファイルにログ記録します。 |
tracking | システムが進むまたは遅れるレートの予測に対する変更、およびなされたスルーを tracking.log と呼ばれるファイルにログ記録します。 |
rtc | システムのリアルタイムクロックについての情報を rtc.log と呼ばれるファイルにログ記録します。 |
refclocks | 生およびフィルター処理された参照クロックの測定を refclocks.log と呼ばれるファイルにログ記録します。 |
tempcomp | 温度測定とシステムレートの補正を tempcomp.log と呼ばれるファイルにログ記録します。 |
(3)サービスの再起動を行います。
# systemctl restart chronyd
(4)動作確認
同期状態を確認します。
# chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* ntp-b3.nict.go.jp 1 6 177 26 +66us[ +632us] +/- 4299us
#クライアントログについて
クライアントログは、「自ホスト NTPクライアント設定の上位NTPサーバへのアクセス」を記録したものです。
NTPサーバ機能で下位NTPクライアントからのアクセスを記録することはできません。
(他サイトで見てこの部分を混乱していました。)
ハードウェアアプライアンス等々でも「NTPクライアントからのアクセス記録」するのは難しいようです。
(仕様的にそういう想定はしてなさそう)
顧客要求があった場合はNW機器(FW)やOSのFirewall設定で通信記録を取るしかなさそうです。
#参考