私は2つのNTP stratum 3サーバーを実行していて、どちらかのサーバーが時間ドリフトしているかどうかを確認し、それがpublic stratum 2サーバーと適切に同期していないことを警告できる簡単なチェックを作成したいと考えていました。
私の最初の考えは、複数のstratum 2サーバーから時間を引き出し、その時間を私のntpサーバーが送信しているものと比較することでした。次に、ドリフトがXデルタを超えているかどうかを警告します。
NTPサーバーが正しい時刻を送信していることを確認するためのより標準的な方法またはより良い方法はありますか?
TL; DR:
ロングバージョン:
構成
適切なNTPモニタリングの最も重要な基盤は、適切なNTP構成です。これを最もよく理解するには、 NTP Best Current Practices(BCP 223/RFC 8633) をお読みください。構成の推奨事項の要約は次のとおりです。
測定場所
ローカル構成が適切になったら、リモートサーバーからのオフセットを手動で測定するのではなく、メトリックがローカルNTPサーバーにクエリする必要があることを覚えておいてください。主要なNTPサーバー(ntpdおよびchronyd)は、必要なすべてのメトリックを既に収集しているため、リモートサーバーとクロックを比較するチェックでは、NTPに組み込まれている多くの利点が無視されています。
メトリック選択
したがって、あなたの質問に対して、あなたが最も関心を持つべきメトリックは次のとおりです:
モニタリング
NTPにはいくつかの監視ソリューションがあります-既に行っている監視によっては、他の監視ソリューションよりも適切な監視ソリューションがあります。これらの概要を my blog に書きました、これが要約です:
注意事項
確かに、標準的なアプローチは、バンドルされたNTPクライアントと呼ばれるntpqを使用することです。このユーティリティを使用して、接続されているサーバー、その到達可能性、時間差、ジッターを表示できます。次に例を示します。
# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*metasntp12.admi .MRS. 1 u 274 1024 377 64.445 1.086 0.450
+cecar.ddg.lth.s 130.149.17.8 2 u 811 1024 377 48.143 -0.810 0.175
dir.mcc.ac.uk 85.199.214.100 2 u 7d 1024 0 76.708 -1.654 0.000
ここでは、3つのサーバーが構成されており、2つは大丈夫です(377の到達可能性はバイナリ11 111 1111に拡張され、1は成功した応答、0は応答がないことを意味するため、377は100%の到達可能性を意味します)。なんらかの理由。オフセットはミリ秒単位の時間オフセットを表し、ジッターは変動性です。