2022年3月26日土曜日

UPS「CyberPower CP750SWLT JP」を導入してQNAP NASで管理してみた

自宅では冬になると、エアコンやヒーターなどを使うことによって予期しないタイミングでブレーカーが落ちることが年数回発生しており、自宅サーバや自宅NASも全停止してしまっていた。これが本番環境なら大障害である。

そのたびに復旧作業として、サーバの起動を一から実施しなおして稼働確認を行い、NASに対してはファイルシステムチェックを実施するなど、非常に手間がかかっていた。また、サーバやNASが突然停止することで、データ破損の懸念もある。このような経緯から、停電対策としてUPS「CyberPower CP750SWLT JP」を導入することにした。

本記事では、UPS「CyberPower CP750SWLT JP」の簡単な説明と、QNAP NASへ接続して管理する方法について記載する。

導入したUPS

今回導入したUPSは、「CyberPower CP750SWLT JP」。出力電力は525Wとなる。UPSとして停電時も電源共有可能なコンセントが5つと、停電時は電源は共有されないが雷サージが可能なコンセントが5つついている。

なお、2018年に「CyberPower CPJ500」を購入していた(導入時の記事はこちら)。このUPSは出力電力が300Wしかないため、停電時の電源として動作しない状況となっていた。UPSは出力電力に余裕のある機器を選ぶように注意しよう。

QNAP NASに接続して管理

QNAP NASは、CyberPowerのUPSとUSBで接続することで、UPSの充電状況の確認や、電源断が発生した際に自動的にNASの停止を行うといった連動が可能となる。

実際の電源断発生時の動作確認

実際に入力電源を抜いて電源断を発生させた際のQNAP NASの状態を参考情報として記載する。

1. 通常状態

通常状態では、ステータスが「正常」となっている。

2. 電源断の状態

電源断の状態では、ステータスが「異常」となっている。

また、QNAP NAS自体もエラーとしてログに出力するため、メールやSNMP Trap通知の設定をしておけば異常検知することができる。
※もっとも、停電時はインターネット回線が使えなくなる可能性もあるので、メールでの通知を受け取ることは実際は難しいかもしれない。

以上。

2022年3月19日土曜日

【Zabbix/ESXi】snmptrapdにてSNMP v3のTrapを受信する

SNMPを使って監視をする場合、現在でもv1やv2cを使うことが多い。SNMP v1やv2cは、ほとんどの機器で対応がされていることや、コミュニティ名のみ設定が完了するといったシンプルな面で現在も根強く使われているものと想定される。

しかし、SNMP v2c以前のバージョンでは通信が暗号化されないなどの脆弱な要素もある。SNMP v3を使えば、ユーザ名、認証パスワード、暗号化パスワードを設定することができるようになっており、ユーザ単位での認証と通信暗号化ができるようになっている。
※なお、SNMP v3では通信暗号化の機能を「プライバシー」と呼ぶ。

今回、ZabbixのSNMP Trap受信時に使用する「snmptrapd」にて、SNMP v3のTrap受信設定を行うための手順を記載する。SNMP v3 Trap送信側としては、ESXiを利用することにする。

なお、Zabbixではsnmptrapdで受信したTrapをsnmpttにて変換を行い監視する仕組みとなるが、snmpttやZabbix本体の設定変更は特に不要であることを確認している。

環境

  • SNMP v3 Trap受信側: Zabbix 5.0 / snmptrapd
  • SNMP v3 Trap送信側 : ESXi 6,7

SNMP v3 Trap送信設定 (ESXi)

1. Engine IDの設定

SNMP v3を利用する場合、Trap送信元を一意に識別するためのEngine IDを指定する。機器によっては自動生成されるIDとなり、手動での設定は不要となる場合が多い。ESXiの場合も自動生成がされるが、私の環境ではEngine IDが重複したことから、手動で設定することにした。

ESXiのSNMP v3 Trapの設定は、すべてCLIにて行う。ESXiにSSHでログインしたのち、以下コマンドでEngine IDを設定する。Engine IDは5~32 文字の16進文字列であれば、任意で設定して問題ない。

# esxcli system snmp set --engineid 800000000000192168001001

2. SNMP v3の認証・暗号化プロトコルを指定

SNMP v3では認証に使用するプロトコルと、暗号化に使用するプロトコルをそれぞれ設定することができる。

認証プロトコルはMD5またはSHAを選択することができるが、具体的には以下プロトコルとなる。
RFC 3414RFC3826より確認。

  • HMAC-MD5-96
  • HMAC-SHA-96

暗号化プロトコルは当初CBC-DESのみ使用可能だったようだが、機能拡張がされており、AESによる暗号化にも対応している。

  • CBC-DES
  • CFB128-AES-128

なお、RFCとしては上記2種類がサポートされる状況はあるが、暗号化強度が弱いことから、独自にAES256などに対応するパターンもあるようだ。当然だが、SNMP v3 Trap送信側と受信側双方で同じ暗号化方式に対応している必要がある。

ESXiの場合は、RFC準拠のSHA1とAES128の一択となるため、以下の通り設定を行う。

# esxcli system snmp set --authentication SHA1
# esxcli system snmp set --privacy AES128

3. SNMP v3のユーザ、パスワード設定

認証パスワードと暗号化パスワードを以下の通り設定する。

  • 認証パスワード : v3authPass
  • 暗号化パスワード : v3privPass

ESXiの場合パスワードをそのまま指定ができないため、以下コマンドでハッシュ化した文字列を取得する。

# esxcli system snmp hash --auth-hash v3authPass --priv-hash v3privPass --raw-secret
   Authhash: af248a5ff20f816a70121031ba4e9fd69a44b6e5
   Privhash: fcec9a30a5454d50755efeee8f171cceaa9db702

ハッシュ値を確認したら、以下の構文で設定を行う。

esxcli system snmp set -u [ユーザ名]/[認証パスワードのハッシュ]/[暗号化パスワードのハッシュ]/priv

設定例は以下となる。

# esxcli system snmp set -u trapuser/ce534f0992ccea99c435360c52f25c3ea550a933/6fa4e7b290552b6c7c88112fdf3fc1e56e54948b/priv

4. SNMP v3 Trapの送信設定

Trap送信先を指定する。構文は以下の通り

esxcli system snmp set --v3targets [Trap送信先]@162/[ユーザ名]/priv/trap

設定例は以下となる。

# esxcli system snmp set --v3targets 192.168.1.2@162/trapuser/priv/trap

5. SNMP有効化と設定確認

最後にSNMP有効化と設定確認を行う。

# esxcli system snmp set --enable true

# esxcli system snmp get
   Authentication: SHA1
   Communities: public
   Enable: true ←★trueであること
   Engineid: 800000000000192168001001
   Hwsrc: indications
   Largestorage: true
   Loglevel: info
   Notraps: 
   Port: 161
   Privacy: AES128
   Remoteusers:
   Syscontact:
   Syslocation:
   Targets:
   Users: trapuser/ce534f0992ccea99c435360c52f25c3ea550a933/6fa4e7b290552b6c7c88112fdf3fc1e56e54948b/priv
   V3targets: 192.168.11.24@162 trapuser priv trap

以上でESXiにおけるSNMP v3 Trapの送信設定は完了となる。

SNMP v3 Trap受信設定 (snmptrapd)

1. snmptrapd.confを設定

snmptrapdの設定はSNMP v2と同様、/etc/snmp/snmptrapd.confに設定追加を行う。

createUser -e 0x[Engine ID] [ユーザ名] SHA [認証パスワード] AES [暗号化パスワード]
authUser log,execute,net [ユーザ名]

設定例は以下の通り。先ほど設定したESXiと同一のEngine ID、ユーザ名、認証パスワード、暗号化パスワードを設定する。

# cat /etc/snmp/snmptrapd.conf
/usr/bin/bin/my_great_script cold

createUser -e 0x800000000000192168001001 trapuser SHA v3authPass AES v3privPass

authUser log,execute,net trapuser
authCommunity   log,execute,net public
traphandle default /usr/sbin/snmptthandler

2. snmptrapdを再起動

設定反映のためsnmptrapdを再起動する。注意事項として、設定反映のためにはなぜか2回再起動が必要となるので注意する。

# systemctl restart snmptrapd
# systemctl restart snmptrapd

実際の設定は/var/lib/net-snmp/snmptrapd.confに記載される。念のため、設定が反映されていることを確認しておこう。usmUserから始まる行が追加されていれば問題ない。

# cat /var/lib/net-snmp/snmptrapd.conf | grep usmUser
usmUser 1 3 0x800000000000192168001001 "trapuser" "trapuser" NULL .1.3.6.1.6.3.10.1.1.3 0xaf248a5ff20f816a70121031ba4e9fd69a44b6e5 .1.3.6.1.6.3.10.1.2.4 0xfcec9a30a5454d50755efeee8f171cce 0x

3. SNMP v3 Trap受信確認

最後にSNMP v3 Trapを受信できることを確認する。ESXiからは以下コマンドにてテストTrapの送信が可能となる。

# esxcli system snmp test
   Comments: There is 1 target configured, send warmStart requested, test completed normally.

snmptrapdでログが受信したかどうかは/var/log/messagesを確認すればよい。

# tail -1 /var/log/messages
Sep  4 17:26:17 localhost snmptrapd[29984]: 2021-09-04 17:26:17 <UNKNOWN> [UDP: [192.168.1.1]:26522->[192.168.1.2]:162]:#012.1.3.6.1.2.1.1.3.0 = Timeticks: (120893100) 13 days, 23:48:51.00#011.1.3.6.1.6.3.1.1.4.1.0 = OID: .1.3.6.1.6.3.1.1.5.2

参考までにZabbixの管理画面でも監視状況を確認したところ、問題なくSNMP v3のテストTrapの監視ができていることが確認できた。

【参考】snmptrapdの設定削除

snmptrapdの設定追加後、不要になったTrap受信設定を削除したい場合、/etc/snmp/snmptrapd.confの設定を削除するだけでは、設定削除されない。したがって、直接/var/lib/net-snmp/snmptrapd.confから不要な設定を削除する。

なお、サービスを停止してから設定削除を行う必要があるので注意すること。もしサービス起動状態で設定削除を行っても、サービス再起動をすると設定が戻ってしまう。

# vi /etc/snmp/snmptrapd.conf ←★事前に設定を削除

# systemctl stop snmptrapd ←★サービスを停止
# sed -ie '/^usmUser.*/d' /var/lib/net-snmp/snmptrapd.conf ←★usmUserで始まる行をすべて削除

# systemctl start snmptrapd ←★サービス起動
# systemctl restart snmptrapd ←★設定反映のためサービス再起動

参考

2022年3月12日土曜日

Zabbix 6.0でサービスとSLAを設定する

Zabbix 6.0からWeb GUIのメニューに変更があり、「サービス」というメニューが追加された。メニューを展開すると、「サービス」と「SLA」というメニューが確認できる。

Zabbix 6.0より前においても、「サービス」の監視は実施することができたが、今回「SLA」が新たに追加されている。これらの設定することで、監視対象のサービスに定められたSLA (Service Level Agreement) の遵守状況を、実際のシステムの監視状況と紐づけて監視できる

本記事では、Zabbix 6.0にてサービスおよびSLAを設定する手順を記載する。

環境

環境は以下の通り。

  • OS : CentOS Stream 8
  • Zabbix : 6.0.0

手順

1. トリガーにタグを設定

まずはサービスの停止状態に関連する監視のトリガーに対してタグを設定する。

なお、Zabbix 6.0以前はサービスやSLAの設定は「タグ」ではなく「トリガー」で設定していたが、6.0になってから柔軟にサービスとSLAを設定できるように、タグを用いて設定する方式に変更となったようだ。

左メニューの「テンプレート」から対象となるテンプレートおよびトリガーを選択するが、今回は例としてテンプレート「Template Module ICMP Ping」のトリガー「Unavailable by ICMP ping」に対してタグを設定する。

トリガーを選択し「タグ」タブを選択する。タグは名前(Key)と値(Value)の組み合わせで設定する。今回は以下の通り設定した。

項目 設定項目
名前 Service
Down

2. サービスを作成

左メニューの「サービス」からサービスを作成するが、通常では右上ボタンが「ビュー」表示になっており作成や変更することができないため、右上ボタンを「変更」にしたうえで、「サービスの作成」を選択する。

サービスは、最低限名前と先ほどトリガーに設定したタグを指定すればよい。

項目 設定項目
名前 Service-Down
障害タグ Service等しいDown

このあとSLAの設定に必要となるため、サービスには以下の通りタグも設定しておく。

項目 設定項目
名前 Service
Service-Down

3. SLAを作成

左メニューの「SLA」からSLAを作成する。

SLAは以下の通り設定する。あくまで設定例となるため、環境や要件に合わせてSLOやレポート期間は適切に設定しよう。

項目 設定項目
名前 SLA-Down
SLO (Service Level Objective) 99.99%
レポート期間 毎月
発効日 デフォルトで作成日が設定されるため、そのままとする。
障害タグ Service等しいService-Down

4. 動作確認

それでは実際に監視対象ホストを停止した際に、SLAが低下することを確認しよう。

監視対象ホストを停止すると、トリガー「Unavailable by ICMP ping」がトリガーされていることがわかる

次に、左メニューの「SLA」から先ほど作成したSLA「SLA-Down」にある「SLAレポート」のリンクを選択する。

SLAレポート画面が表示され、SLAに対して実際の稼働率が下がっていることがわかる。

さらに各サービスを選択すると、実際のアップタイムおよびダウンタイムの詳細な時間を確認することができる。

また、ダッシュボードにも追加して表示させることができる。

以上で、Zabbix 6.0にてサービスおよびSLAを設定する手順は完了となる。

参考

2022年3月5日土曜日

Zabbix 5.0を6.0にバージョンアップする手順 (MariaDB利用)

2022年2月15日にZabbixの最新バージョンであるZabbix 6.0.0がリリースされており、以下記事にてZabbix 6.0を新規インストールする手順を記載した。

今回は新規インストールではなく、Zabbix 5.0から6.0にバージョンアップする手順を記載してみようと思う。ZabbixのMariaDBのバージョン互換性の関係から少々手順が長くなっているが、順番に実行していけば特に問題なくバージョンアップすることができる。

環境

バージョンアップ環境は以下の通り、CentOS Stream 8に導入したZabbix 5.0 + MariaDB環境となる。この環境をZabbix 6.0 + MariaDB環境へとバージョンアップする。

  • OS : CentOS Stream 8
  • Zabbixバージョン : 5.0.19から6.0.0へバージョンアップ
  • MariaDBバージョン : 10.3から10.6へバージョンアップ

注意する点として、CentOS Stream 8のMariaDBのバージョンは10.3となり、Zabbix 6.0がサポートするMariaDBのバージョンの10.5~10.6と互換性がない。そのため、MariaDBを一度アンインストールしたのち、10.6を再インストールする。

MariaDBの10.6をインストールする手順は、Zabbix 6.0のインストール手順の記事においても記載しているため、参照いただきたい。

Zabbixバージョンアップ手順

1. バックアップ取得

バージョンアップ後の起動時に、DBスキーマが自動でアップグレードされてしまうため、切り戻しはできないと考えたほうがよい。そのため、万が一問題発生時に備えてバックアップを取得しておこう。

DBの機能を用いたバックアップでもよいが、私の環境は仮想マシンでZabbixサーバを構築しているため、仮想マシンのクローンを取得し、さらにスナップショットによるバックアップを取得してからバージョンアップ作業に挑むことにした。

なお、本記事を書くにあたって実際に手順の流れを何度か確認しており、実際にスナップショットからのリストアも実施しているが、問題なくリストアできている。

2. Zabbixの停止

以下コマンドでZabbixを停止する。

# systemctl stop zabbix-server zabbix-agent httpd php-fpm

3. MariaDBの停止

以下コマンドでMariaDBを停止する。

# systemctl stop mariadb

4. MariaDBのアンインストール

アンインストール前にMariaDBのバージョンを確認しておく。10.3.28であることがわかる。

# mysql --version
mysql  Ver 15.1 Distrib 10.3.28-MariaDB, for Linux (x86_64) using readline 5.1

Zabbix 6.0ではMariaDB 10.5~10.6を利用する必要があるが、標準のリポジトリではインストールすることができないため、一度dnf removeを使ってMariaDBをアンインストールする。

# dnf remove mariadb mariadb-server
モジュラーの依存に関する問題:

 問題 1: 競合するリクエスト
  - module(perl:5.26) が提供されませんモジュール perl-DBD-MySQL:4.046:8030020200716171139:3a70019f.x86_64 に必要です
 問題 2: 競合するリクエスト
  - module(perl:5.26) が提供されませんモジュール perl-DBI:1.641:8030020200716150652:1e4bbb35.x86_64  に必要です
 問題 3: 競合するリクエスト
  - module(perl:5.26) が提供されませんモジュール perl-IO-Socket-SSL:2.066:8040020200924212038:1aedcbfe.x86_64 に必要です
 問題 4: 競合するリクエスト
  - module(perl:5.26) が提供されませんモジュール perl-libwww-perl:6.34:8040020211102170116:bf75fe78.x86_64 に必要です
依存関係が解決しました。
=====================================================================================================
 パッケージ               Arch      バージョン                                   リポジトリー  サイズ
=====================================================================================================
削除中:
 mariadb                  x86_64    3:10.3.28-1.module_el8.3.0+757+d382997d      @appstream     37 M
 mariadb-server           x86_64    3:10.3.28-1.module_el8.3.0+757+d382997d      @appstream     82 M
未使用の依存関係の削除:
 mariadb-backup           x86_64    3:10.3.28-1.module_el8.3.0+757+d382997d      @appstream     24 M
 mariadb-common           x86_64    3:10.3.28-1.module_el8.3.0+757+d382997d      @appstream    179 k
 mariadb-errmsg           x86_64    3:10.3.28-1.module_el8.3.0+757+d382997d      @appstream    2.3 M
 mariadb-gssapi-server    x86_64    3:10.3.28-1.module_el8.3.0+757+d382997d      @appstream     17 k
 mariadb-server-utils     x86_64    3:10.3.28-1.module_el8.3.0+757+d382997d      @appstream    7.1 M
 perl-DBD-MySQL           x86_64    4.046-3.module_el8.3.0+419+c2dec72b          @appstream    358 k
 perl-DBI                 x86_64    1.641-3.module_el8.3.0+413+9be2aeb5          @appstream    1.8 M

トランザクションの概要
=====================================================================================================
削除  9 パッケージ

解放された容量: 155 M
これでよろしいですか? [y/N]: y ←★「y」を入力

~(中略)~

削除しました:
  mariadb-3:10.3.28-1.module_el8.3.0+757+d382997d.x86_64
  mariadb-backup-3:10.3.28-1.module_el8.3.0+757+d382997d.x86_64
  mariadb-common-3:10.3.28-1.module_el8.3.0+757+d382997d.x86_64
  mariadb-errmsg-3:10.3.28-1.module_el8.3.0+757+d382997d.x86_64
  mariadb-gssapi-server-3:10.3.28-1.module_el8.3.0+757+d382997d.x86_64
  mariadb-server-3:10.3.28-1.module_el8.3.0+757+d382997d.x86_64
  mariadb-server-utils-3:10.3.28-1.module_el8.3.0+757+d382997d.x86_64
  perl-DBD-MySQL-4.046-3.module_el8.3.0+419+c2dec72b.x86_64
  perl-DBI-1.641-3.module_el8.3.0+413+9be2aeb5.x86_64

完了しました!

ここで一度パッケージのアンインストール状況を確認する。以下の通り、一部mysql関連のパッケージが残存しており、このうちmysql-libsmysql-commonがMariaDB 10.6インストール時に競合するため、個別にアンインストールを行う。

# rpm -qa | grep mysql
zabbix-server-mysql-6.0.0-1.el8.x86_64
zabbix-web-mysql-6.0.0-1.el8.noarch
mysql-libs-8.0.26-1.module_el8.4.0+915+de215114.x86_64
php-mysqlnd-7.2.24-1.module_el8.2.0+313+b04d0a66.x86_64
mysql-common-8.0.26-1.module_el8.4.0+915+de215114.x86_64

# rpm -e mysql-libs-8.0.26-1.module_el8.4.0+915+de215114.x86_64
# rpm -e mysql-common-8.0.26-1.module_el8.4.0+915+de215114.x86_64

5. MariaDB 10.6のインストール

MariaDBは本家MariaDBのリポジトリからインストールを行う。

まず、リポジトリをセットアップするためのスクリプトであるmariadb_repo_setupをダウンロードし実行する。

# curl -O https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
# bash mariadb_repo_setup --mariadb-server-version mariadb-10.6

リポジトリが設定されたら、MariaDBをインストールする。OS標準のリポジトリとパッケージ名が異なるので注意。

# dnf clean all
# dnf install MariaDB-server MariaDB-client -y
CentOS Stream 8 - AppStream                     2.4 MB/s |  20 MB     00:08
CentOS Stream 8 - BaseOS                         18 MB/s |  19 MB     00:01
CentOS Stream 8 - Extras                         14 kB/s |  18 kB     00:01
Extra Packages for Enterprise Linux 8 - x86_64  1.6 MB/s |  11 MB     00:06
Extra Packages for Enterprise Linux Modular 8 - 4.0 MB/s | 979 kB     00:00
Extra Packages for Enterprise Linux 8 - Next -  276 kB/s | 186 kB     00:00
MariaDB Server                                  516 kB/s | 584 kB     00:01
MariaDB MaxScale                                6.9 kB/s | 8.2 kB     00:01
MariaDB Tools                                   2.7 kB/s | 4.0 kB     00:01
Zabbix Official Repository - x86_64             295 kB/s | 229 kB     00:00
Zabbix Official Repository non-supported - x86_ 5.3 kB/s | 1.2 kB     00:00
依存関係が解決しました。
================================================================================
 パッケージ       Arch   バージョン                          リポジトリー サイズ
================================================================================
インストール:
 MariaDB-client   x86_64 10.6.7-1.el8                        mariadb-main  14 M
 MariaDB-server   x86_64 10.6.7-1.el8                        mariadb-main  25 M
依存関係のインストール:
 MariaDB-common   x86_64 10.6.7-1.el8                        mariadb-main  88 k
 MariaDB-shared   x86_64 10.6.7-1.el8                        mariadb-main 116 k
     置き換え  mariadb-connector-c.x86_64 3.1.11-2.el8_3
     置き換え  mariadb-connector-c-config.noarch 3.1.11-2.el8_3
 boost-program-options
                  x86_64 1.66.0-10.el8                       appstream    141 k
 galera-4         x86_64 26.4.11-1.el8                       mariadb-main  13 M
 libpmem          x86_64 1.6.1-1.el8                         appstream     79 k
 lsof             x86_64 4.93.2-1.el8                        baseos       253 k
 perl-DBI         x86_64 1.641-3.module_el8.3.0+413+9be2aeb5 appstream    740 k
 rsync            x86_64 3.1.3-14.el8                        baseos       405 k
 socat            x86_64 1.7.4.1-1.el8                       appstream    323 k

トランザクションの概要
================================================================================
インストール  11 パッケージ

ダウンロードサイズの合計: 55 M

~(中略)~

インストール済み:
  MariaDB-client-10.6.7-1.el8.x86_64
  MariaDB-common-10.6.7-1.el8.x86_64
  MariaDB-server-10.6.7-1.el8.x86_64
  MariaDB-shared-10.6.7-1.el8.x86_64
  boost-program-options-1.66.0-10.el8.x86_64
  galera-4-26.4.11-1.el8.x86_64
  libpmem-1.6.1-1.el8.x86_64
  lsof-4.93.2-1.el8.x86_64
  perl-DBI-1.641-3.module_el8.3.0+413+9be2aeb5.x86_64
  rsync-3.1.3-14.el8.x86_64
  socat-1.7.4.1-1.el8.x86_64

完了しました!

インストール後のバージョンを確認すると、10.6.7になっていることがわかる。

# mariadb --version
mariadb  Ver 15.1 Distrib 10.6.7-MariaDB, for Linux (x86_64) using readline 5.1

6. Zabbixのバージョンアップ

zabbix-release-6.0のパッケージをインストールする。

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

dnfにてZabbixのアップグレードを行う。参考URLに記載したサイトに合わせて、コマンドはdnf intallを使っているが、問題なくアップグレード処理が実行される。

# dnf clean all
79 ファイルが削除されました

# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent zabbix-web-japanese -y
CentOS Stream 8 - AppStream                     2.9 MB/s |  20 MB     00:06
CentOS Stream 8 - BaseOS                         21 MB/s |  19 MB     00:00
CentOS Stream 8 - Extras                         63 kB/s |  18 kB     00:00
Extra Packages for Enterprise Linux 8 - x86_64  3.8 MB/s |  11 MB     00:02
Extra Packages for Enterprise Linux Modular 8 - 1.1 MB/s | 979 kB     00:00
Extra Packages for Enterprise Linux 8 - Next -  227 kB/s | 186 kB     00:00
MariaDB Server                                  519 kB/s | 584 kB     00:01
MariaDB MaxScale                                7.6 kB/s | 8.2 kB     00:01
MariaDB Tools                                   2.6 kB/s | 4.0 kB     00:01
Zabbix Official Repository - x86_64              19 kB/s |  17 kB     00:00
Zabbix Official Repository non-supported - x86_ 1.3 kB/s | 1.2 kB     00:00
パッケージ zabbix-server-mysql-5.0.19-1.el8.x86_64 は既にインストールされていま す。
パッケージ zabbix-web-mysql-5.0.19-1.el8.noarch は既にインストールされています。
パッケージ zabbix-apache-conf-5.0.19-1.el8.noarch は既にインストールされています。
パッケージ zabbix-agent-5.0.19-1.el8.x86_64 は既にインストールされています。
パッケージ zabbix-web-japanese-5.0.19-1.el8.noarch は既にインストールされていま す。
依存関係が解決しました。
================================================================================
 パッケージ                Arch         バージョン           リポジトリー サイズ
================================================================================
アップグレード:
 zabbix-agent              x86_64       6.0.0-1.el8          zabbix       523 k
 zabbix-apache-conf        noarch       6.0.0-1.el8          zabbix        21 k
 zabbix-server-mysql       x86_64       6.0.0-1.el8          zabbix       1.6 M
 zabbix-web                noarch       6.0.0-1.el8          zabbix       7.8 M
 zabbix-web-deps           noarch       6.0.0-1.el8          zabbix        21 k
 zabbix-web-japanese       noarch       6.0.0-1.el8          zabbix        21 k
 zabbix-web-mysql          noarch       6.0.0-1.el8          zabbix        20 k

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

ダウンロードサイズの合計: 10 M

~(中略)~

アップグレード済み:
  zabbix-agent-6.0.0-1.el8.x86_64        zabbix-apache-conf-6.0.0-1.el8.noarch
  zabbix-server-mysql-6.0.0-1.el8.x86_64 zabbix-web-6.0.0-1.el8.noarch
  zabbix-web-deps-6.0.0-1.el8.noarch     zabbix-web-japanese-6.0.0-1.el8.noarch
  zabbix-web-mysql-6.0.0-1.el8.noarch

完了しました!

インストールされたパッケージを確認すると、zabbix-getのみアップグレードされていないため、個別にアップグレードを行う。

# rpm -qa | grep zabbix
zabbix-web-deps-6.0.0-1.el8.noarch
zabbix-get-5.0.19-1.el8.x86_64
zabbix-release-6.0-1.el8.noarch
zabbix-agent-6.0.0-1.el8.x86_64
zabbix-web-6.0.0-1.el8.noarch
zabbix-apache-conf-6.0.0-1.el8.noarch
zabbix-web-japanese-6.0.0-1.el8.noarch
zabbix-server-mysql-6.0.0-1.el8.x86_64
zabbix-web-mysql-6.0.0-1.el8.noarch

# dnf install zabbix-get -y
メタデータの期限切れの最終確認: 0:01:18 時間前の 2022年02月27日 18時53分04秒 に 実施しました。
パッケージ zabbix-get-5.0.19-1.el8.x86_64 は既にインストールされています。
依存関係が解決しました。
================================================================================
 パッケージ          Arch            バージョン           リポジトリー    サイズ
================================================================================
アップグレード:
 zabbix-get          x86_64          6.0.0-1.el8          zabbix          367 k

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

ダウンロードサイズの合計: 367 k

~(中略)~

アップグレード済み:
  zabbix-get-6.0.0-1.el8.x86_64

完了しました!

以上でZabbixのすべてのパッケージが6.0に統一された。

# rpm -qa | grep zabbix
zabbix-web-mysql-6.0.0-1.el8.noarch
zabbix-release-6.0-1.el8.noarch
zabbix-get-6.0.0-1.el8.x86_64
zabbix-web-6.0.0-1.el8.noarch
zabbix-web-japanese-6.0.0-1.el8.noarch
zabbix-web-deps-6.0.0-1.el8.noarch
zabbix-server-mysql-6.0.0-1.el8.x86_64
zabbix-agent-6.0.0-1.el8.x86_64
zabbix-apache-conf-6.0.0-1.el8.noarch

7. MariDB起動

以下コマンドでMariaDBを起動する。

# systemctl start mariadb
# systemctl enable mariadb

MariaDBを起動すると以下のようなエラーが出力される。

# tail -30 /var/log/messages | grep "ERROR"
Feb 27 20:35:52 t1024cent mariadbd[20784]: 2022-02-27 20:35:52 0 [ERROR] Incorrect definition of table mysql.event: expected column 'definer' at position 3 to have type varchar(, found type char(141).
Feb 27 20:35:52 t1024cent mariadbd[20784]: 2022-02-27 20:35:52 0 [ERROR] mariadbd: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler.

これは、MariaDBのDB自体のアップグレード処理が未処理のため発生するエラーとなり、mariadb-upgradeコマンドを実行することで解消する。私の環境の場合は、アップグレードプロセスは数秒で完了した。

# mariadb-upgrade
Major version upgrade detected from 10.3.17-MariaDB to 10.6.7-MariaDB. Check required!
Phase 1/7: Checking and upgrading mysql database
Processing databases
mysql
mysql.column_stats                                 OK
mysql.columns_priv                                 OK
mysql.db                                           OK
mysql.event                                        OK

~(中略)~

zabbix.valuemap                                    OK
zabbix.valuemap_mapping                            OK
zabbix.widget                                      OK
zabbix.widget_field                                OK
Phase 7/7: Running 'FLUSH PRIVILEGES'
OK

mariadb-upgrade実行後、念のためMariaDBを再起動し、エラーログが出力されていないことを確認しておこう。

# systemctl restart mariadb
# tail -30 /var/log/messages | grep "ERROR"

8. Zabbix起動

以下コマンドでZabbixを起動する。

# systemctl start zabbix-server zabbix-agent httpd php-fpm
# systemctl enable zabbix-server zabbix-agent httpd php-fpm

起動時のzabbix_server.logを見ると、DBのバージョンを確認し、自動的にアップグレードプロセスを開始していることがわかる。私の環境の場合は、アップグレードプロセスは数秒で完了した。

# tail -f /var/log/zabbix/zabbix_server.log
 17068:20220227:185536.941 Starting Zabbix Server. Zabbix 6.0.0 (revision 5203d2ea7d).
 17068:20220227:185536.941 ****** Enabled features ******
 17068:20220227:185536.941 SNMP monitoring:           YES
 17068:20220227:185536.941 IPMI monitoring:           YES
 17068:20220227:185536.941 Web monitoring:            YES
 17068:20220227:185536.941 VMware monitoring:         YES
 17068:20220227:185536.941 SMTP authentication:       YES
 17068:20220227:185536.941 ODBC:                      YES
 17068:20220227:185536.941 SSH support:               YES
 17068:20220227:185536.941 IPv6 support:              YES
 17068:20220227:185536.941 TLS support:               YES
 17068:20220227:185536.941 ******************************
 17068:20220227:185536.941 using configuration file: /etc/zabbix/zabbix_server.conf
 17068:20220227:185537.002 current database version (mandatory/optional): 05000000/05000005
 17068:20220227:185537.002 required mandatory version: 06000000
 17068:20220227:185537.002 starting automatic database upgrade
 17068:20220227:185537.007 completed 0% of database upgrade
 17068:20220227:185537.011 completed 1% of database upgrade
 17068:20220227:185537.074 completed 2% of database upgrade
 17068:20220227:185537.083 completed 3% of database upgrade

~(中略)~

 17068:20220227:185540.010 completed 98% of database upgrade
 17068:20220227:185540.013 completed 99% of database upgrade
 17068:20220227:185540.014 completed 100% of database upgrade
 17068:20220227:185540.014 database upgrade fully completed
 17068:20220227:185540.015 database could be upgraded to use primary keys in history tables
 17322:20220227:185540.022 starting HA manager
 17322:20220227:185540.024 HA manager started in active mode
 17068:20220227:185540.025 server #0 started [main process]
 17324:20220227:185540.026 server #2 started [configuration syncer #1]
 17323:20220227:185540.026 server #1 started [service manager #1]

~(以下略)~

9. Zabbixへのログイン確認

バージョンアップ後のZabbixへログインすると、問題なくGUI画面が表示された。いくつか監視動作の確認をしたところ、特に問題なく監視やメール通知ができており、現状問題なく動作している。

以上で、Zabbix 5.0から6.0にバージョンアップする手順は完了となる。

参考

人気の投稿