CentOS8でZabbixを4.4から5.0にバージョンアップする

CentOS8でZabbixを4.4から5.0にバージョンアップします。

といっても実質的には、dnf(yum)のみでした。

つまり、非常にお手軽です。

注意点は、Zabbix5.0になり、PHPの要求Ver.が7.2.0以降となっています。
CentOS7以前の標準リポジトリではPHP5系が導入されるため、
別途remiリポジトリ等からの更新が必要です。

DBにはMariaDBを使用し、PHPはCentOS8のAppstreamから導入しています。

[root@server ~]# mysql -v
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 881
Server version: 10.3.17-MariaDB MariaDB Server

稼働中のzabbix-server及び、agentを停止

[root@server ~]# systemctl stop zabbix-server
[root@server ~]# systemctl stop zabbix-agent

設定ファイルのバックアップを実施

[root@server ~]# mkdir /opt/zabbix-backup/
[root@server ~]# cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup/
[root@server ~]# cp /etc/httpd/conf.d/zabbix.conf  /opt/zabbix-backup/
[root@server ~]# cp -R /usr/share/zabbix/ /opt/zabbix-backup/
[root@server ~]# cp -R /usr/share/doc/zabbix-* /opt/zabbix-backup/

Zabbix5.0用のリポジトリに変更(更新)

[root@server ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm を取得中
Verifying...                          ################################# [100%]
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:zabbix-release-5.0-1.el8         ################################# [ 50%]
整理中 / 削除中...
   2:zabbix-release-4.4-1.el8         ################################# [100%]

dnf(yum)コマンドでアップデート実施。

[root@server ~]# dnf update zabbix-server-mysql zabbix-web-mysql zabbix-agent
CentOS-8 - AppStream                                                7.1 kB/s | 4.3 kB     00:00
CentOS-8 - Base                                                     6.4 kB/s | 3.9 kB     00:00
CentOS-8 - Extras                                                   2.2 kB/s | 1.5 kB     00:00
bintray--ookla-rhel                                                 541  B/s | 1.3 kB     00:02
Zabbix Official Repository - x86_64                                  27 kB/s |  14 kB     00:00
Zabbix Official Repository non-supported - x86_64                    12 kB/s | 3.0 kB     00:00
依存関係が解決しました。
====================================================================================================
 パッケージ                     アーキテクチャー  バージョン                リポジトリー      サイズ
====================================================================================================
アップグレード:
 zabbix-agent                   x86_64            5.0.0-1.el8               zabbix            453 k
 zabbix-server-mysql            x86_64            5.0.0-1.el8               zabbix            2.6 M
 zabbix-web                     noarch            5.0.0-1.el8               zabbix            3.0 M
 zabbix-web-mysql               noarch            5.0.0-1.el8               zabbix             15 k

トランザクションの概要
====================================================================================================
アップグレード  4 パッケージ

ダウンロードサイズの合計: 6.1 M
これでよろしいですか? [y/N]: y

停止していたzabbix-server及び、agentを起動

[root@server ~]# systemctl start zabbix-server
[root@server ~]# systemctl start zabbix-agent

CentOSのタイムゾーンを変更する

CentOS8をインストールしていてうっかりしていたらタイムゾーンがEDTになっていた。
ということで修正します。

タイムゾーンの設定確認・変更はtimedatectlコマンドを使用します。

現在のタイムゾーンを確認

[root@server ~]# timedatectl
               Local time: 月 2020-04-27 09:12:14 EDT
           Universal time: 月 2020-04-27 13:12:14 UTC
                 RTC time: 月 2020-04-27 13:12:14
                Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

または

[root@server ~]# timedatectl show
Timezone=America/New_York
LocalRTC=no
CanNTP=yes
NTP=yes
NTPSynchronized=yes
TimeUSec=Mon 2020-04-27 09:13:55 EDT
RTCTimeUSec=Mon 2020-04-27 09:13:55 EDT

タイムゾーンの一覧を表示

list-timezonesオプションんで設定可能なタイムゾーンの一覧が表示できる、
が、426件ほど表示される。

[root@server ~]# timedatectl list-timezones | grep Tokyo
Asia/Tokyo

というわけで、設定するときは、「Asia/Tokyo」を設定する。

[root@server ~]# timedatectl set-timezone Asia/Tokyo
[root@server ~]# timedatectl
               Local time: 月 2020-04-27 22:17:38 JST
           Universal time: 月 2020-04-27 13:17:38 UTC
                 RTC time: 月 2020-04-27 13:17:37
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

@nifty回線をv6プラス化で高速化したい(開通 WN-AX1167GR編)

v6プラス開通で来ていたのでメモ

(前回)[http://www.wanna-party.xyz/201710/nifty-v6plus1/]

ルータを用意する

公式の(v6プラス対応ブロードバンドルーター)[http://csoption.nifty.com/ipv6/router.htm]に記載のあるルータの中から、とりあえず安いIO DATA製のWN-AX1167GRを選択した。

機能的にはかなりシンプルなので、「とりあえずv6プラスで速度改善したい」レベルであれば十分と思われる。
速度面については、BUFFALO製ルータを購入予定なのでそこで比較したい。
このあたりは、それぞれのマニュアルをにらめっこしたほうがよさそう。

ちなみにハマったところとしては、スタティックルートが設定できないため、
別セグメントと通信できない。
既存のルータは流用したかったので、仕方なく既存ルータとWN-AX1167GRの2重NAT構成に。

WN-AX1167GRを設定する。

画像はすでに設定済の状態だが、ログイン後の画面はかなりシンプル

WAN側の設定もv6プラスを選択するのみでOK。

注意点としては本体の物理スイッチを「カスタム」にする必要がある。
「オート」の場合、再接続などの場合に成功せず安定しない。

その他、ルータIPやDHCP、ログインID/PWの設定はお好みで。

ログイン後のTOPページでIPアドレス等が表示されていればv6プラスで接続できている状態。

注意点

  • ISP提供のDNSへはアクセスできなくなる。
    IPv4 PPPoEをやっていたルータがDHCPをやっていて、そのルータを置き返した場合は問題ないが、クライアントに設定されている場合は注意。
    WN-AX1167GRがDNSキャッシュやってくれるみたいだが、必要であればGoogle Public DNSの8.8.8.8 8.8.4.4を指定する。

次回は自宅サーバ公開前提のIPv4 PPPoEとの共存環境を構築する。

カテゴリー: IPv6

@nifty回線をv6プラス化で高速化したい(準備編)

概要

@nifty回線を使用していますが、夜間は下り1Mbpsも出ないことが多くなってきて、非常につらいです。

原因はIPv4のPPPoEのトンネルを張るフレッツ側の設備がパンクしているため。
IPv6網を使用して回避することで通信速度を向上できるらしい。
ということで調べているが、いまいちわからない。。。

調べてみたところ方式が2つあるようでざっくりまとめてみる。

ざっくりまとめ

  • 共通
    • IPv4通信をカプセル化してIPv6 IPoEでインターネットに出ていくため、
      ボトルネック回避。
      (解除もVNE側でやってくれるので宛先がIPv4環境でもOK)
    • IPv6網に乗せるため、ポート開放等に制限あり。
      DS-Liteの場合はプライベートIPが降ってくる?ため
      実質外部公開不可
    • 外部公開が必要な場合は、別途IPv4 PPPoEを張る必要あり。
  • DS-Lite
    • mfeedをVNEとするプロバイダ
    • IIJはこちら
    • ISPでNAT
    • YAMAHAルータやCiscoルータが接続確認機種に含まれる。
      (しかも設定例も公式で出してくれていてすごい!)
      http://www.mfeed.ad.jp/transix/ds-lite/
      VyOS(EdgeOS)でも接続例が転がってます。
  • MAP-E(v6プラス)
    • JPNEやBiglobeをVNEとするプロバイダ
    • @niftyはこちら
    • CPEでNAT
    • 対応機種は、光電話対応HGW、BUFFALOとIODATAの一部ルータのみ
      http://csoption.nifty.com/ipv6/router.htm

v6プラス契約する

というわけで、DS-Liteのほうが扱いやすいのですが、既に@niftyを契約してしまっているため、
仕方なくv6プラスで。
が、契約がかなり面倒です。

ちなみに、光でんわは契約していないため、HGW無し環境です。

IPv6接続オプションとは排他契約

既にIPv6接続オプション(IPv6 IPoEのみの提供)を申し込んでいる場合は、
一度IPv6接続オプションを解除してからv6プラスを申し込みする必要があります。

HGWを所有していないと否決される

下記@niftyの紹介ページを見てもらうとわかるのですが、
HGWを持っていない人は、HGWの申し込みをしろと言っています。
http://csoption.nifty.com/ipv6/

そのため、契約上HGWを所有していない場合1回目はv6プラスの申し込みが拒否され、
自動的にIPv6接続オプションが契約されます。

サポート問い合わせ

v6プラス対応ルータを所有していることを説明する。
すると、v6プラスを再申し込みし、30日以内にv6プラス対応ルータを接続する。
接続確認ができたらJPNE側が開通処理を行うみたい。
(上で自動的にIPv6接続オプションを契約されるため、再解約が必要。
無駄に面倒。)

★今のところここまで

以下サポートのメールを貼り付け


●「(1)「IPv6接続オプション ご利用開始のお知らせ」が届いたことを確
 認」について

 お申し込み後、NTTへの取り次ぎの結果、別途「IPv6接続オプションご利用
 開始通知」」を送信させていただきます。

 上記お知らせメールにて、「IPv6接続オプション」開通をご確認いただき
 ましたら、お申し込み後30日以内に、以下(2)の設定を実施いただきます
 よう、お願いいたします。


●「(2)ご利用のブロードバンドルーター管理画面で「v6プラス」を利用す
   るための設定を行う」方法について

※設定後、「v6プラス」がご利用開始となるまでお時間がかかる場合があり、
 その間インターネット接続が利用できなくなるため、外出前などのインター
 ネットをご利用されない時間帯前の実施をお勧めいたします。

 JPNE側で、v6プラス対応ブロードバンドルーターでの接続が確認できます
 と、「v6プラス」と同等のサービスが開通します。

 ※契約オプション名は「IPv6接続オプション」と表示されます。

 ブロードバンドルーター管理画面での「v6プラス」を利用するための設定に
 ついてのご不明点は、ルーター提供元にご確認をお願いいたします。

 なお、現在「v6プラス」をご利用いただける対応ブロードバンドルーター
 は、下記にご案内するBUFFALO社とIO DATA社提供のルーターのみとなりま
 す。

 ■v6プラス対応ブロードバンドルーター
 http://csoption.nifty.com/ipv6/router.htm

 上記以外のルーターでは、弊社「v6プラス」はご利用いただけず、「v6プラ
 ス」でお申し込みをされた場合も、「IPv6接続オプション」のお申し込みと
 なりますので、ご留意ください。


カテゴリー: IPv6

chronycを使う

NTPサーバとの同期状態の確認などでchronyc sourcesを使ったりするが、
ほかにもいろいろできるみたい。

一部のコマンドは認証しないと実行できない。
(ただしデフォルトではパスワードは設定されていないため、認証要求の-aを付与するだけでOK)

また、chronyc やchronyc -aで対話モードが利用できる。

試しにhelpを実行すると、、、多い。
とはいっても、chrony.confを編集する代わりにコマンド操作できるものがほとんど。

[root@server ~]# chronyc -a
chrony version 2.1.1
Copyright (C) 1997-2003, 2007, 2009-2015 Richard P. Curnow and others
chrony comes with ABSOLUTELY NO WARRANTY.  This is free software, and
you are welcome to redistribute it under certain conditions.  See the
GNU General Public License version 2 for details.

chronyc> help
Commands:
accheck <address> : Check whether NTP access is allowed to <address>
activity : Check how many NTP sources are online/offline
add peer <address> ... : Add a new NTP peer
add server <address> ... : Add a new NTP server
allow [<subnet-addr>] : Allow NTP access to that subnet as a default
allow all [<subnet-addr>] : Allow NTP access to that subnet and all children
burst <n-good>/<n-max> [<mask>/<masked-address>] : Start a rapid set of measurements
clients : Report on clients that have accessed the server
cmdaccheck <address> : Check whether command access is allowed to <address>
cmdallow [<subnet-addr>] : Allow command access to that subnet as a default
cmdallow all [<subnet-addr>] : Allow command access to that subnet and all children
cmddeny [<subnet-addr>] : Deny command access to that subnet as a default
cmddeny all [<subnet-addr>] : Deny command access to that subnet and all children
cyclelogs : Close and re-open logs files
delete <address> : Remove an NTP server or peer
deny [<subnet-addr>] : Deny NTP access to that subnet as a default
deny all [<subnet-addr>] : Deny NTP access to that subnet and all children
dump : Dump all measurements to save files
local off : Disable server capability for unsynchronised clock
local stratum <stratum> : Enable server capability for unsynchronised clock
makestep [<threshold> <updates>] : Correct clock by stepping
manual off|on|reset : Disable/enable/reset settime command and statistics
manual list : Show previous settime entries
maxdelay <address> <new-max-delay> : Modify maximum round-trip valid sample delay for source
maxdelayratio <address> <new-max-ratio> : Modify max round-trip delay ratio for source
maxdelaydevratio <address> <new-max-ratio> : Modify max round-trip delay dev ratio for source
maxpoll <address> <new-maxpoll> : Modify maximum polling interval of source
maxupdateskew <new-max-skew> : Modify maximum skew for a clock frequency update to be made
minpoll <address> <new-minpoll> : Modify minimum polling interval of source
minstratum <address> <new-min-stratum> : Modify minimum stratum of source
offline [<mask>/<masked-address>] : Set sources in subnet to offline status
online [<mask>/<masked-address>] : Set sources in subnet to online status
password [<new-password>] : Set command authentication password
polltarget <address> <new-poll-target> : Modify poll target of source
reselect : Reselect synchronisation source
rtcdata : Print current RTC performance parameters
settime <date/time (e.g. Nov 21, 1997 16:30:05 or 16:30:05)> : Manually set the daemon time
smoothing : Display current time smoothing state
smoothtime reset|activate : Reset/activate time smoothing
sources [-v] : Display information about current sources
sourcestats [-v] : Display estimation information about current sources
tracking : Display system time information
trimrtc : Correct RTC relative to system clock
waitsync [max-tries [max-correction [max-skew]]] : Wait until synchronised
writertc : Save RTC parameters to file

authhash <name>: Set command authentication hash function
dns -n|+n : Disable/enable resolving IP addresses to hostnames
dns -4|-6|-46 : Resolve hostnames only to IPv4/IPv6/both addresses
timeout <milliseconds> : Set initial response timeout
retries <n> : Set maximum number of retries
exit|quit : Leave the program
help : Generate this help

とりあえず使えそうなものをいくつか

上位NTPサーバとの同期状態を確認する。

同期状態を確認するためのコマンドとしては、

#chronyc sources
#chronyc sourcestats
#chronyc tracking

あたり。

-vをつけると、各項目の説明も表示される。

  • S列
    [*]表示となっているサーバが、現在同期しているサーバ。
    これが出ていれば同期できている。
    [-]は同期可能だが、使用していないサーバ
    [?]は切断されたサーバ

  • Pool列
    ポーリング間隔。10の場合、1024秒間隔で同期する。

  • Reach列
    最近8回の同期可否を8進数で表現している。成功した場合1、失敗した場合は0
    8回連続で成功している場合は377(1111 1111)

  • LastRx列
    最後に同期してからの経過時間(秒)を表示する。

  • Last sample列
    最後に同期した際の時刻のズレを表示する。
    []カッコ内の表示が実際のズレで、同期先サーバから見て遅れている(-)か、進んでいる(+)かわかる。

[root@hserver ~]# chronyc sources -v
210 Number of sources = 3

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^+ ntp1.jst.mfeed.ad.jp          2   6   377    56  -3868us[-3868us] +/-   98ms
^* ntp2.jst.mfeed.ad.jp          2   6   377    57   -118us[+1540us] +/-  109ms
^+ ntp3.jst.mfeed.ad.jp          2   6   377    57  -2908us[-2908us] +/-  147ms


[root@server ~]# chronyc sourcestats -v
210 Number of sources = 3
                             .- Number of sample points in measurement set.
                            /    .- Number of residual runs with same sign.
                           |    /    .- Length of measurement set (time).
                           |   |    /      .- Est. clock freq error (ppm).
                           |   |   |      /           .- Est. error in freq.
                           |   |   |     |           /         .- Est. offset.
                           |   |   |     |          |          |   On the -.
                           |   |   |     |          |          |   samples. \
                           |   |   |     |          |          |             |
Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
==============================================================================
ntp1.jst.mfeed.ad.jp       10   6   395    +11.713     39.434   +636us  2994us
ntp2.jst.mfeed.ad.jp       10   6   394    +13.079     23.023   +822us  2001us
ntp3.jst.mfeed.ad.jp       10   7   394     +1.576     24.893   -798us  2215us

[root@server ~]$ chronyc tracking
Reference ID    : 210.173.160.57 (ntp2.jst.mfeed.ad.jp)
Stratum         : 3
Ref time (UTC)  : Sat May 20 10:06:32 2017
System time     : 0.000845202 seconds fast of NTP time
Last offset     : +0.000433457 seconds
RMS offset      : 0.000963310 seconds
Frequency       : 12.189 ppm slow
Residual freq   : +0.008 ppm
Skew            : 0.252 ppm
Root delay      : 0.063902 seconds
Root dispersion : 0.049442 seconds
Update interval : 1027.2 seconds
Leap status     : Normal

クライアントの情報を確認する。

ちなみに、chronyc -a clientsでも可

chronyc> clients
Hostname                   Client    Peer CmdAuth CmdNorm  CmdBad  LstN  LstC
=========================  ======  ======  ======  ======  ======  ====  ====
localhost                       0       0       6      30       0   47y     0
192.168.10.xxx                887       0       0       0       0    60   47y
192.168.15.xxx                103       0       0       0       0   316   47y
192.168.10.xxx                 66       0       0       0       0   188   47y
gateway                       735       0       0       0       0    21   47y
192.168.50.xx                  65       0       0       0       0   511   47y

アクセス許可の確認をする

chronyc> accheck 192.168.1.1
208 Access allowed
chronyc> accheck 1.1.1.1
209 Access denied

一時的な設定変更をサービス再起動無しにおこなう。

試しにserverを削除・追加する。

chronyc> sources
210 Number of sources = 3
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^+ ntp1.jst.mfeed.ad.jp          2  10   377   150  +5444us[+5444us] +/-  119ms
^* ntp2.jst.mfeed.ad.jp          2  10   337   258  +4111us[+5821us] +/-   96ms
^- ntp3.jst.mfeed.ad.jp          2  10   377   607  +8519us[  +10ms] +/-  135ms
chronyc>
chronyc> delete ntp3.jst.mfeed.ad.jp
200 OK
chronyc> sources
210 Number of sources = 2
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^+ ntp1.jst.mfeed.ad.jp          2  10   377   165  +5444us[+5444us] +/-  119ms
^* ntp2.jst.mfeed.ad.jp          2  10   337   272  +4111us[+5821us] +/-   96ms

ただじchrony.confには残ったままのため、chronydを再起動すると元に戻る。

[root@horizon ~]# cat /etc/chrony.conf | grep server
server ntp1.jst.mfeed.ad.jp iburst
server ntp2.jst.mfeed.ad.jp iburst
server ntp3.jst.mfeed.ad.jp iburst

chronydでIPv6を無効化する。

概要

chrony.confでIPv6関係の記述を無効にしているが、UDP323がIPv6で有効になっている。
(UDP323はchronycとの通信に使用)

/etc/chrony.conf

# Allow NTP client access from local network.
allow 192.168/16
allow 172.16/12
#allow 10/8
bindcmdaddress 127.0.0.1
#bindcmdaddress ::1
[root@horizon ~]# ss -natu
Netid  State      Recv-Q Send-Q Local Address:Port               Peer Address:Port
udp    UNCONN     0      0      127.0.0.1:323                   *:*             
udp    UNCONN     0      0         *:123                   *:*
udp    UNCONN     0      0       ::1:323                  :::*

ループバックアドレスなので問題はないけれど気持ち悪いので、無効化する。

IPv6を無効化する

ExecStart-4オプションを追加する。

[root@horizon ~]# vi /usr/lib/systemd/system/chronyd.service

[Service]
Type=forking
PIDFile=/var/run/chronyd.pid
EnvironmentFile=-/etc/sysconfig/chronyd
ExecStart=/usr/sbin/chronyd -4 $OPTIONS
ExecStartPost=/usr/libexec/chrony-helper update-daemon
[root@server ~]# systemctl daemon-reload
[root@server ~]# systemctl restart chronyd

[root@horizon ~]# ss -natu
Netid State      Recv-Q Send-Q                       Local Address:Port                                      Peer Address:Port
udp   UNCONN     0      0                                127.0.0.1:323                                                  *:*
udp   UNCONN     0      0                                        *:123                                                  *:*

ちなみに、これで無効化しても、AllowにIPv6アドレス入れていると123をリッスンするみたい。
この方法で無効化するのはUDP323のみ?

chrony.confの各パラメータを見る

CentOS7.3でNTPサーバを構築する。(chronyd)で基本的な動作での構築は行ったので、詳細に各パラメータを掘ってみる

server

書式 : server <サーバ名> [iburst]
初期設定 : なし

NTP同期先のサーバを指定する。
複数指定可能
[iburst]を指定することで初回同期を高速化できる。
通常であれば複数回同期を実施して妥当性を確認してから同期状態に遷移する。
初回起動時または、応答ありから応答なし(reach 0)になった場合に一度だけ行われる。
iburstでの同期は1回扱いとなるため、chronyc sourcesのrearchは1回分しか増えない。

rtcsync

書式 : rtcsymc
初期設定 : rtcsync

NTPで取得した時刻情報をRTCへも反映させる。(11分毎に更新を実行する。)
hwclock -wをcronする代わりに使える。

makestep

書式 : makestep <閾値> <回数>

chronyd起動後に、<閾値>に設定した秒数以上ずれている場合、指定した<回数>までstepモードでの時刻同期を行う。
それ以外は、slewモードでの同期をおこなう。

allow/deny

書式 : allow <ホスト名|ネットワークアドレス>
書式 : deny <ホスト名|ネットワークアドレス>
初期設定 : なし
ホスト名、ネットワークアドレス下記のように指定する
192.168/16
192.168.0.0/16
192.168
2001:db8::/32

NTPサーバへの問い合わせを許可するネットワークを指定する。
上に書いたものが優先的に処理されるため、広めにallowして一部のdenyも可

大体はプライベートアドレスを指定することになると思う。
アドレスを指定せず、allowのみの設定にした場合、すべてのIPアドレスから許可する。

ssコマンド上では、全アドレスに対して解放している

[root@server ~]# ss -natu | grep 123
udp    UNCONN     0      0         *:123                   *:*

bindcmdaddress

書式 : bindcmdaddress <アドレス>
初期設定 : bindcmdaddress 127.0.0.1
         : bindcmdaddress ::1

chronyc制御用ポート(323/UDP)の接続を許可するアドレスを指定する。

local

書式 : local stratum <stratum>
初期設定 : local stratum 10

同期先サーバが1つもない場合の自身のstratumを指定する。
設定せず通信断により上位DNSサーバと同期できなくなった場合、
自身のstratumが0になるため、クライアントが信頼できるNTPサーバと認識しなくなり同期できなくなる。

設定されている場合、クライアントからstratum10のサーバに見えるため同期できる。

[root@server ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^? 192.168.0.100                 0   6     0   10y     +0ns[   +0ns] +/-    0ns ←宛先をでたらめにした
[root@server ~]# chronyc tracking | grep Stratum
Stratum         : 10 ←stratumが設定値になる

[root@client ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* 192.168.0.11                10   6    17    44  -5541ns[  -19us] +/-   61us
[root@client ~]# chronyc tracking | grep Stratum
Stratum         : 11

設定しない場合、NTPサーバのstratumが0となるため、クライアントと同期されない。

[root@server ~]# chronyc tracking | grep Stratum
Stratum         : 0
[root@client ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^? 192.168.00.11                 0  10     0   10y     +0ns[   +0ns] +/-    0ns


logdir

初期設定

logdir /var/log/chrony

ログを保存するディレクトリを指定する。
が、初期設定ではログ設定がコメントアウトされているため、
ディレクトリ作成のみとなる

log

初期設定

#log measurements statistics tracking

保存するログの内容を指定する。記述しない場合はログが生成されない。

  • measurements
    生の NTP 測定と関連情報を measurements.log と呼ばれるファイルにログ記録する。

  • statistics
    回帰処理についての情報を statistics.log と呼ばれるファイルにログ記録する。

  • tracking
    システムが進むまたは遅れるレートの予測に対する変更、およびなされたスルーを tracking.log と呼ばれるファイルにログ記録する。
  • rtc
    システムのリアルタイムクロックについての情報をログ記録する。
  • refclocks
    生およびフィルター処理された参照クロックの測定を refclocks.log と呼ばれるファイルにログ記録する。
  • tempcomp
    温度測定とシステムレートの補正を tempcomp.log と呼ばれるファイルにログ記録する。
[root@server ~]# cat /var/log/chrony/measurements.log
========================================================================================================================
   Date (UTC) Time     IP Address   L St 123 567 ABCD  LP RP Score    Offset  Peer del. Peer disp.  Root del. Root disp.
========================================================================================================================
2017-05-20 06:45:54 210.173.160.57  N  2 111 111 1111   6  6 0.00  1.401e-03  1.822e-02  3.758e-05  4.672e-02  6.059e-02
2017-05-20 06:45:54 210.173.160.27  N  2 111 111 1111   6  6 0.00 -2.866e-03  2.788e-02  5.687e-05  5.164e-02  4.814e-02
2017-05-20 06:45:54 210.173.160.87  N  2 111 111 1111   6  6 0.00 -7.980e-04  1.349e-02  2.808e-05  8.569e-02  7.080e-02
2017-05-20 06:45:56 210.173.160.57  N  2 111 111 1111   6  6 0.00 -1.418e-03  1.596e-02  3.303e-05  4.672e-02  6.062e-02
2017-05-20 06:45:56 210.173.160.27  N  2 111 111 1111   6  6 0.00 -5.700e-04  1.669e-02  3.449e-05  5.164e-02  4.817e-02
[root@server ~]# cat /var/log/chrony/statistics.log
==============================================================================================================
   Date (UTC) Time     IP Address    Std dev'n Est offset  Offset sd  Diff freq   Est skew  Stress  Ns  Bs  Nr
==============================================================================================================
2017-05-20 06:45:58 210.173.160.57   2.308e-03 -1.035e-03  2.594e-03 -8.356e-04  8.113e-01 4.2e-01   3   0   3
2017-05-20 06:45:58 210.173.160.27   2.603e-04 -1.158e-03  3.041e-04 -8.932e-04  9.296e-02 4.5e-01   3   0   3
2017-05-20 06:45:58 210.173.160.87   4.117e-04  2.109e-03  6.883e-04  3.071e-04  1.244e-01 1.5e-01   3   0   3
2017-05-20 06:46:00 210.173.160.57   1.511e-03 -4.481e-04  9.260e-04 -3.644e-05  1.163e-02 9.9e-04   4   0   4
2017-05-20 06:46:00 210.173.160.27   2.409e-03  1.423e-03  3.021e-03  2.092e-04  2.490e-02 1.2e-02   4   0   3
[root@server ~]# cat /var/log/chrony/tracking.log
==================================================================================================
   Date (UTC) Time     IP Address   St   Freq ppm   Skew ppm     Offset L Co  Offset sd Rem. corr.
==================================================================================================
2017-05-20 06:45:53 0.0.0.0          0    -11.480      3.832  0.000e+00 ?  0  0.000e+00  8.200e-17
2017-05-20 06:45:58 210.173.160.27   3    -11.480      3.832  2.118e-04 N  2  2.217e-03  3.204e-11
2017-05-20 06:46:00 210.173.160.27   3    -11.480      3.832  5.103e-04 N  2  2.612e-03  3.841e-08
2017-05-20 06:47:05 210.173.160.57   3    -11.474      4.565  3.858e-03 N  1  3.633e-03  5.046e-07
2017-05-20 06:48:09 210.173.160.57   3    -11.357      6.867  1.490e-03 N  3  6.443e-03 -1.122e-03

dateコマンドで時刻表示、時刻設定をする。(CentOS)

dateコマンドで時刻表示、時刻設定をする。(CentOS)

dateコマンドを調べてみた。

時刻を設定する。

書式 : date -s "<時刻>"

指定する時刻はそれっぽいフォーマットなら大体入る。
また、日付のみの指定や、時間のみの指定も可能。

[root@localhost ~]# date
2017年  5月 20日 土曜日 16:47:40 JST
[root@localhost ~]# date -s "2001/1/1 12:34:56"
2001年  1月  1日 月曜日 12:34:56 JST
[root@localhost ~]# date -s "12:34:56 2001/1/2"
2001年  1月  2日 火曜日 12:34:56 JST
[root@localhost ~]# date -s "2001/1/1"
2001年  1月  1日 月曜日 00:00:00 JST
[root@localhost ~]# date -s "2001/1"
date: `2001/1' は無効な日付です

時刻を表示する。

サーバのロケールで時刻を表示する。

[root@localhost root]# date
2017年  5月 20日 土曜日 16:28:08 JST
[root@localhost root]#

デフォルトの表示は環境変数LANGに依存する。

UTCで時刻を表示する。

[root@localhost ~]# date -u
2017年  5月 20日 土曜日 07:29:59 UTC

フォーマット指定で時刻を表示する。

[root@localhost ~]# date +"%Y/%m/%d %H:%M:%S"
2017/05/20 16:36:16
  • %Y : 西暦(4桁)
  • %y : 西暦(2桁)
  • %m : 月(2桁)
  • %d : 日(2桁)
  • %H : 時間(2桁24h表記)
  • %I : 時間(2桁12h表記)
  • %M : 分(2桁)
  • %S : 秒(2桁)
  • %p : AMまたはPM(ロケール依存)(日本語の場合は「午前/午後」)
  • %F : %Y-%m-%dに相当
  • %T : %H:%M:%S に相当
  • %A : 曜日(未省略)(ロケール依存)
  • %a : 曜日(省略)(ロケール依存)
  • %w : 曜日(数字表記)
  • %j : 年内通算日数
  • __- __ : 2桁表記を1桁にする(%-m等)

一定期間後の時刻を表示する。

何時間後は何日、などの簡単な計算としても使える。

書式 : date -d "[絶対指定時刻] <相対指定時刻> [ago] [<相対指定時刻>[ago]]..."

相対時刻として指定できるものは下記があり、前に値を記載して相対時刻を設定する。
day
week
month
year
hour
minute
second

〇日後を表示

日数およびdayまたはdaysを指定する

[root@localhost ~]# date
2017年  5月 20日 土曜日 17:01:15 JST
[root@localhost ~]# date -d "2 days"
2017年  5月 22日 月曜日 17:01:34 JST
〇日前を表示

agoを付与、または数値を負数にする。

[root@localhost ~]# date
2017年  5月 20日 土曜日 17:02:38 JST
[root@localhost ~]# date -d "2 days ago"
2017年  5月 18日 木曜日 17:02:45 JST
[root@localhost ~]# date -d "-2 days"
2017年  5月 18日 木曜日 17:03:34 JST

指定日からの一定期間後の時刻を表示する。

[root@localhost ~]# date -d “2016/2/28 1 day”
2016年 2月 29日 月曜日 00:00:00 JST

CentOS7.3でNTPサーバを構築する。(chronyd)

CentOS7.3でNTPサーバを構築する。

NTPサーバを構築します。
CentOS7ではchrondyとntpdの選択肢がありますが、
今回はchronydを使います

インストール

Cent7のminimalでインストールされていたため、
おそらくインストール不要。
無ければ
yum install chronyd で。

設定ファイルを編集する

# vi /etc/chrony.conf

上位のNTPサーバを指定します。
このあたりを参考にNTPサーバを指定する。
http://wiki.nothing.sh/page/NTP/%BF%E4%BE%A9%B8%F8%B3%AB%A5%B5%A1%BC%A5%D0

#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

server ntp1.jst.mfeed.ad.jp iburst
server ntp2.jst.mfeed.ad.jp iburst
server ntp3.jst.mfeed.ad.jp iburst

また、CentOS8.0からはデフォルトのchronyc.confでは、serverコマンドではなく、poolコマンドが使用されるようになりました。
pool 2.centos.pool.ntp.org iburst

poolはDNSによる名前解決時に複数のIPアドレスを返してくれる場合に、
まとめて同期先サーバとして指定してくれます。
ですので、上記でserverコマンドを3行並べていましたが、
これらは「ntp.jst.mfeed.ad.jp」の正引きでそれぞれのIPアドレスを返してくれるので、
下記に置き換えできます。
pool ntp.jst.mfeed.ad.jp iburst

CentOS8においても従来通りserverコマンドで指定もできますし、pool/serverコマンドの併用も可能です。

アクセス許可

allowエントリーでアクセス制御設定をします。

今回はプライベートアドレスからの時刻問い合わせを許可します。

allow 192.168/16
allow 172.16/12
allow 10/8

firewalld設定

ntp(udp:123)を開放します。

# firewall-cmd --permanent --zone=public --add-port=123/udp
success

ntpdの起動

# systemctl start chronyd
# systemctl enable chronyd

動作確認

# chronyc sources
210 Number of sources = 3
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* ntp1.jst.mfeed.ad.jp          2  10   377  1008   +967us[ +480us] +/-   99ms
^+ ntp2.jst.mfeed.ad.jp          2  10   377   985  -1598us[-1598us] +/-   92ms
^+ ntp3.jst.mfeed.ad.jp          2  10   377   300   +731us[ +731us] +/-  115ms

RouterBOARD hAP AC初期セットアップ

RouterBOARD hAP AC初期セットアップ

ずいぶん前に購入して放置していたため設定してみます。

設定内容

  • ルータのIPアドレスを変更する。
  • 無線を使うための最低限の設定をする。

管理画面(Webコンソール)を開く

工場出荷状態ではLocal Networkとして「192.168.88.1/24」が設定されています。
PCに「192.168.88.2/24」あたりのIPアドレスを設定し、ブラウザでアクセスするとwebコンソールが表示されます。

IPアドレスを変更

左メニューの「IP」->「Addresses」を選択し、「bridge」インターフェースを選択します。

  • [address] : IPアドレスを入力。 / 192.168.100.30/24
  • [Network] : ネットワークアドレスを入力。 / 192.168.100.0

入力出来たら「OK」をクリックして反映します。
即時IPアドレスが変更されるため、PCのアドレスを「192.168.100.2/24」などにして再度アクセスします。

管理者用パスワード設定

デフォルトでは設定されていないため、パスワードを設定します。
左メニュー「System」→「Password」

  • [Old Password] : 空欄
  • [New Password] : 新規パスワード
  • [Confirm Password] : 新規パスワード(再入力)

一度ログアウトしてログイン可能か確認する。

無線設定を行う

デフォルトでwlan1とwlan2が既に設定されており、それぞれ2.4GHz、5GHz用となります。

  1. 日本で利用するためには下記設定(必須)
    左メニュー「Wireless」->「wlan1」「wlan2」それぞれに設定
    上部「Advanced Mode」を選択する。
  • [Frequency Mode] : regulatory-domain
  • [Country] : japan
  1. 認証方式を設定
    左メニュー「Wireless」-> 「Security Profile」タブを選択
  • [Name] : 適切な名前を設定。
  • [Mode] : 認証方式を設定。 / dynamic keys
  • [Authentication Type] : 認証に使用する暗号形式を選択。 / WPA PSK
  • [WPA Pre-Shared Key] : 認証に使用するパスワードを入力する。
    「OK」をクリックして設定する。
  1. 無線インターフェース個別設定を実施する。
    左メニュー「Wireless」-> 「Interface」タブ->設定するインターフェースを選択(wlan1 or wlan2)
  • [Name] : 必要であれば変更する。
  • [Mode] : ap bridge
  • [Band] : 必要であれば変更する。 / 2GHz-B/G/N
  • [SSID] : 適切な名前を設定
  • [Security Profile] : 2.で作成したプロファイルを選択

これで無線APとしての基本動作はできるようになります。