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-libs
とmysql-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にバージョンアップする手順は完了となる。
0 件のコメント:
コメントを投稿