
下瀬美術館屋上から見る大野瀬戸
先に「RaspberyPiとUnboundを使ったDNSサーバの構築例」を記述しましたが、運用中に動作が重くなる事象が発生しました。
早速、ログ(ここでは/var/log/unbound/unbound.log)を調査したところ,「pool.ntp.org」というメッセージが大量に出力し,時刻サーバとの同期が上手く取れていない事が分かりました。そのため,RaspberryPiの負荷が上がり支障が出たということです。
本来,RaspberryPiは,RTC(Real Time Clock:電子機器の内蔵時計)機能を持たないため,NTP(Network Time Protocol)デーモンがインストールされており,設定ファイル「/etc/systemd/timesyncd.conf」を編集する事で時刻が自動的に修正されます。
しかし,それが上手く動作しない場合は手動で時刻調整を実施するか、NPTサーバとの同期受信デーモンを再構築する必要があります。
先日、雷で停電があり、再度、DNSサーバの負荷が高くなる事象が発生しましたので、毎回時刻設定するのは面倒なので同期受信デーモンを再構築しました。
今回は、この構築方法に関する記述です。
【システム構成】
- Raspberry Pi1 Model B Rev.2 512 MB of RAM
- OS : Raspbian GNU/Linux 12 (bookworm) (CMD : lsb_release -a)
それでは,学習を始めます。
1.はじめに
RaspberryPi
OSでは,時刻同期(NTP)の設定が「Stretch」バージョン以降,systemd-timesyncdを使うようになったようです。
また,デフォルトで参照されるNTPサーバは,0.debian.pool.ntp.org,1.debian.pool.ntp.org,2.debian.pool.ntp.org,3.debian.pool.ntp.orgになっているようです。
しかし,ログファイルを見ると,原因は不明ですがこれらのNTPサーバは同期受信エラーが出力されます。
そのため,今回は日本に存在するNTPサーバでよく使われる以下のものを使用して時刻同期を再構築します。
日本で著名なNTPサーバを以下に示します。
【ntp.jst.mfeed.ad.jp】
インターネットマルチフィード株式会社(MFEED)が提供する、公衆向けNTP(Network Time Protocol)サービスのためのNTPサーバーです。とても信頼性が高く人気のあるNTPサーバです。
【ntp.nict.jp】
情報通信研究機構(NICT)が提供する公開NTPサーバーで、日本標準時(JST)をインターネット経由で配信するサービスです。このサービスを利用すると、パソコンなどのネットワーク機器の時刻をインターネット経由で正確な日本標準時に同期させることができ、多くのシステムで標準的に利用されています。
【time.google.com】
正確な時刻情報を提供するGoogleの公開NTPサービスであり、開発者向けドキュメントにも記載されています。一部に終了したような誤情報が流れているようですが,今のところ使用可能です。
2.NTP設定ファイルの編集
RaspberryPi OSで使われる設定ファイル「/etc/systemd/timesyncd.conf」を以下のように編集します。
今回は「vim」エディターを利用します。もちろん「nano」エディターでも構いません。
Linuxコード
sudo vim /etc/systemd/timesyncd.conf
修正内容(赤字部分)は以下のとおりです。
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it under the
# terms of the GNU Lesser General Public License as published by the Free
# Software Foundation; either version 2.1 of the License, or (at your option)
# any later version.
#
# Entries in this file show the compile time defaults. Local configuration
# should be created by either modifying this file, or by creating "drop-ins" in
# the timesyncd.conf.d/ subdirectory. The latter is generally recommended.
# Defaults can be restored by simply deleting this file and all drop-ins.
#
# See timesyncd.conf(5) for details.
[Time]
NTP=ntp.jst.mfeed.ad.jp ntp.nict.jp time.google.com
#NTP=
#FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
#ConnectionRetrySec=30
#SaveIntervalSec=60
この中で,「FallbackNTP=」という項目がありますが,これは「NTP=」という項目に記載が無いときに稼働するとのことです。(あまり意味が無いように感じますが)
そのため,今回はNTPのみ記載します。スペースで区切られている順番にトライして利用できるNTPサーバが選定されます。
3.NTPの有効化とサービスの再起動
NTP(Network Time Protocol)を有効化するため,次のコマンドを入力します。
Linuxコード
sudo timedatectl set-ntp true
デーモンを再ロードしてサービスの再起動を行います。
Linuxコード
sudo mkdir /etc/ssl/mydomain.home
sudo systemctl daemon-reload
サービスを再起動します。
Linuxコード
sudo systemctl restart systemd-timesyncd.service
4.稼働確認
プロセスの稼働を次のコマンドで確認します。
Linuxコード
ps -ax | grep "time"
【表示メッセージ】
1881 ? Ssl 0:01
/lib/systemd/systemd-timesyncd
次に,ystemd-timesyncdサービスの稼働ステータスを次のコマンドにより確認します。
Linuxコード
sudo systemctl status systemd-timesyncd
【表示メッセージ】
● systemd-timesyncd.service - Network Time Synchronization
Loaded: loaded
(/lib/systemd/system/systemd-timesyncd.service; enabled; preset: enabled)
Active: active (running) since Thu 2025-10-02 11:42:15
JST; 56s ago
Docs: man:systemd-timesyncd.service(8)
Main PID: 1881 (systemd-timesyn)
Status: "Contacted time server 210.173.160.27:123
(ntp.jst.mfeed.ad.jp)."
Tasks: 2 (limit: 383)
CPU: 1.312s
CGroup: /system.slice/systemd-timesyncd.service
mq1881
/lib/systemd/systemd-timesyncd
表示例では ” 210.173.160.27:123 (ntp.jst.mfeed.ad.jp)”
が同期しているのがわかります。
5.まとめ
今回は,RaspberryPi
OSでのNTPサーバによる時間設定方法を学習しました。電源のオンオフを何回か繰り返しましたが,正常に動作しているようです。
Ubuntuなどでは,必ずしもNTPサーバと同期しなくてもRTC等から取得できるようです。
RaspberryPi自体がRTC(Real Time
Clock)を持っていないので仕方ありませんが,これで突然の停電でも時間を再設定しなくてよくなりました。
因みにRaspberry
PiのNTPクライアントがNTPサーバーと同期する頻度は、デフォルトでは最大1024秒(約17分)間隔で、時刻のずれが小さくなるにつれて間隔が長くなる。
同期の開始時は約64秒間隔から始まり、同期が安定すると間隔が倍加していき、最大で約1024秒まで伸びるとのことでした。
それでは,楽しいITリテラシーライフをお過ごしください。
(ご注意)情報の正確性を期していますが,実施される場合には自己責任でお願いします。
0 件のコメント:
コメントを投稿