ローカルな Zabbix アプライアンスのNTP設定
インターネットに繋がっていない環境下(正確にはVPN網で各拠点に接続)に設置している Zabbix アプライアンスにて、NTPサーバの指定がインターネット上のサーバを参照するように設定されているようで、気が付いたら時刻がずれていた。
(導入業者曰く、導入前に指示しないといけないらしい…導入前に言いなさいよそういうことは)
各拠点にはローカル NTP サーバが存在するので、Zabbix もローカルの NTP を参照するように設定し、時刻ずれを修正したメモ。
作業メモ
現在の状況をtimedatectl
コマンドを実行して確認する。
~$ timedatectl
Local time: Thu 2020-07-16 10:55:18 JST
Universal time: Thu 2020-07-16 01:55:18 UTC
RTC time: Thu 2020-07-16 02:04:47
Time zone: Asia/Tokyo (JST, +0900)
Network time on: yes
NTP synchronized: no
RTC in local TZ: no
時間がずれていることと、Network time on
がyes
と設定されているにも関わらずNTP synchronized
がno
となっており、NTPサーバと同期が取れていないことが分かる。
(本例ではNTPサーバのIPアドレスを変更する必要があった)
現在のNTPクライアント設定を確認する。
NTPクライアントはNTPd
、もしくはChronyd
を利用していない場合、大体systemd-timesyncd
を利用しているはず。
(NTPサーバの機能を利用しないのであれば、systemd-timesyncd
でクライアント機能だけを利用するのが好ましい)
まず設定ファイルの保存ディレクトリまで移動。
~$ cd /etc/systemd/
/etc/systemd$ ls
bootchart.conf logind.conf resolved.conf system.conf user
journald.conf network system timesyncd.conf user.conf
timesyncd.conf
が設定ファイルになるので、編集前にオリジナルのコピーを取得しておく。
/etc/systemd$ sudo cp -p timesyncd.conf timesyncd.conf.`date +%F`
/etc/systemd$ ls
bootchart.conf logind.conf resolved.conf system.conf timesyncd.conf.2020-09-28 user.conf
journald.conf network system timesyncd.conf user
バックアップ後、vi timesyncd.conf
で設定ファイルを開き、下記の通り`NTP=正しい内容に変更する。
# 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.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See timesyncd.conf(5) for details.
[Time]
NTP=xxx.xxx.xxx.xxx ←ここが正しくはローカルのNTPサーバのIPアドレスであるべきなので修正
FallbackNTP=0.jp.pool.ntp.org 1.jp.pool.ntp.org 2.jp.pool.ntp.org 3.jp.pool.ntp.org
修正した後に一応sysetmd-timesyncd
のNTP機能を有効化。
/etc/systemd$ timedatectl set-ntp true
この時点ではまだ変更が適用されていないため、NTP同期が失敗したまま。
サービスの再起動を行って変更を適用する。
まだだめ。Status
が"Idle."
になっており、待機中。
/etc/systemd$ systemctl status systemd-timesyncd.service
● systemd-timesyncd.service - Network Time Synchronization
Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-11-28 12:12:58 JST; 7 months 17 days ago
Docs: man:systemd-timesyncd.service(8)
Main PID: 330 (systemd-timesyn)
Status: "Idle."
CGroup: /system.slice/systemd-timesyncd.service
└─330 /lib/systemd/systemd-timesyncd
Jul 16 05:35:28 012S01ZA systemd-timesyncd[330]: Timed out waiting for reply from 192.168.0.2:123 (192.168.0.2).
Jul 16 06:09:46 012S01ZA systemd-timesyncd[330]: Timed out waiting for reply from 192.168.0.2:123 (192.168.0.2).
Jul 16 06:44:05 012S01ZA systemd-timesyncd[330]: Timed out waiting for reply from 192.168.0.2:123 (192.168.0.2).
Jul 16 07:18:23 012S01ZA systemd-timesyncd[330]: Timed out waiting for reply from 192.168.0.2:123 (192.168.0.2).
Jul 16 07:52:42 012S01ZA systemd-timesyncd[330]: Timed out waiting for reply from 192.168.0.2:123 (192.168.0.2).
Jul 16 08:27:00 012S01ZA systemd-timesyncd[330]: Timed out waiting for reply from 192.168.0.2:123 (192.168.0.2).
Jul 16 09:01:19 012S01ZA systemd-timesyncd[330]: Timed out waiting for reply from 192.168.0.2:123 (192.168.0.2).
Jul 16 09:35:37 012S01ZA systemd-timesyncd[330]: Timed out waiting for reply from 192.168.0.2:123 (192.168.0.2).
Jul 16 10:09:56 012S01ZA systemd-timesyncd[330]: Timed out waiting for reply from 192.168.0.2:123 (192.168.0.2).
Jul 16 10:44:14 012S01ZA systemd-timesyncd[330]: Timed out waiting for reply from 192.168.0.2:123 (192.168.0.2).
サービスを再起動。
/etc/systemd$ sudo systemctl restart systemd-timesyncd.service
修正が反映された。Status
が"Synchronized ~"
となっており、同期が開始された。
/etc/systemd$ systemctl status systemd-timesyncd.service
● systemd-timesyncd.service - Network Time Synchronization
Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-07-16 11:00:19 JST; 12s ago
Docs: man:systemd-timesyncd.service(8)
Main PID: 7616 (systemd-timesyn)
Status: "Synchronized to time server 192.168.0.10:123 (192.168.0.10)."
CGroup: /system.slice/systemd-timesyncd.service
└─7616 /lib/systemd/systemd-timesyncd
Jul 16 11:00:19 012S01ZA systemd[1]: Starting Network Time Synchronization...
Jul 16 11:00:19 012S01ZA systemd-timesyncd[7616]: Synchronized to time server 192.168.0.10:123 (192.168.0.10).
Jul 16 11:00:19 012S01ZA systemd[1]: Started Network Time Synchronization.
最後に改めて現在の状況をtimedatectl
コマンドを実行して確認。
/etc/systemd$ timedatectl
Local time: Thu 2020-07-16 11:00:52 JST
Universal time: Thu 2020-07-16 02:00:52 UTC
RTC time: Thu 2020-07-16 02:00:52
Time zone: Asia/Tokyo (JST, +0900)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no
NTP synchronized
がyes
となっており、NTPサーバと同期が取れていることが分かる。
もしも本設定を行っても時刻が同期されない場合は、大きく時刻がずれている可能性があるため、timedatectl set-time "時刻"
コマンドにて手動で時刻合わせしてからサービスを再起動してみること。
Discussion