NTP、Amazon Linuxの時刻設定、サーバー時刻監視 学習メモ

スポンサーリンク

f:id:sato_susumu:20171226225810j:plain

NTPとは

NTP(Network Time Protocol)、エヌティーピー。
時計を正しい時刻へ同期するための通信プロトコル
UDPポート123を使用
NTPプロトコル上では協定世界時(UTC)を使って時刻を送受信する。

ntpd

ntpdは代表的なNTPの実装。
1000秒以上のズレを検知した場合は単純なクロック誤差ではないと判断し、同期しない。

ntpq

ntpdがシステムクロックを同期する様子を見るためのコマンド

ntpq -pの見方

http://ips.nekotype.com/1494/

remoteの左に同期しているサーバーに*がつきます。
また、複数設定している場合には、同期可能なサーバーに+がつきます。

refid:参照しているサーバーの、更に上位のNTPサーバです。
st:stratum番号、サーバーが第何階層か示す
when:前回サーバーを参照してから経過した秒数です。pollに達すれば再度参照します。
poll:参照する間隔(秒数)です。
reach:過去8回の参照結果です。同期したした場合1、同期しなかった場合0です。
   8進数で表示されており、
   毎回同期されると377(8進数)となります。つまり11111111(2進数)です。
delay:ポーリングインターバルの遅延見積もり(単位:ミリ秒)
offset:NTPサーバとのずれ(ミリ秒)
jitter:NTPサーバがどのくらい正確なのかを示す指標です。値が小さいほど正確。

ntpdログの長期保存と監視方法

PCIDSS で必要になる ntpd のログの取得と監視体制の構築 | Developers.IO

Amazon Linuxの時刻

デフォルトの状態

https://dev.classmethod.jp/cloud/aws/clock-on-amazon-linux-and-ntp/

Amazon Linuxはntpdがインストール済みで動作している。ログは出力していない。
設定ファイルを読めば、同期しているNTPサーバも確認できる。

$cat /etc/ntp.conf  
  
省略  
server 0.amazon.pool.ntp.org iburst  
server 1.amazon.pool.ntp.org iburst  
server 2.amazon.pool.ntp.org iburst  
server 3.amazon.pool.ntp.org iburst  
省略  

注意事項:

  • pool.ntp.orgはNTP POOL PROJECTが提供するタイムサーバーの仮想クラスタ
  • pool.ntp.orgはAWSが管理するタイムサーバではない。
  • poolに参加するサーバにはあまり厳密な規格が無い。
  • 場合によっては精度の低いNTPサーバが割り当てられてしまうこともある。

Amazon Time Sync Service

  • AWSが提供するNTPで配信される時刻同期サービス
  • 各リージョンで冗長化している衛星接続の原子時計を使って高精度な時刻参照を提供
  • 追加料金不要

公式ブログでの概要

ntpdやchronydでの設定方法
AWS公式の時刻設定方法(chronyでの設定例)

chronyd

ntpdとchronydの違い

サーバ時刻の取得例(zabbix 3.0)

各ホストの時刻のキーは「system.localtime」。
テンプレート「Template OS Linux」の取得アイテムにも「system.localtime」は含まれている。

テンプレート「Template OS Linux」を適用している場合、「監視データ > 最新データ > 名前に"local time" を設定し、フィルター」で、各ホストの時刻を確認できる

各ホスト毎に取得時刻が異なるため、当然"最新の値"は異なる。

サーバ時刻のズレを監視する例(zabbix)

Zabbix3.0での設定例:
https://qiita.com/miyahang55/items/9d1f99e9549143cdc8de

テンプレートを使ってntpqの情報を取得する:
https://qiita.com/qryuu/items/518a7167b728f2662ddd