ZBX 5.0から6.0へアップグレードするさいのDBの移行について
MIRACLE ZBX 6.0ではデータベース(DB)のバージョンに制約があります。MIRACLE ZBX 5.0からの移行にさいしDBサーバのバージョンアップデートも必要になる場合があります。本稿ではMIRACLE ZBX 5.0からの移行時に必要となるDBのバージョンアップデート方法について説明します。DBのバージョンの制約については弊社ブログ『MIRACLE ZBX 6.0 からデータベースのバージョンに制約があります』を参照してください。
- 本稿の内容に関するサポートとコンサルティングについて
- SELinuxを有効にしている場合
- RHEL8系OS(MIRACLE LINUX 8系)
- RHEL7系OS(MIRACLE LINUX 7系)
- Amazon Linux 2
- 注意事項
- 更新履歴
本稿の内容に関するサポートとコンサルティングについて
本稿の内容やパッケージのバージョンアップグレード手順に関するお問い合わせやサポートは受け付けておりません。本稿の手順はお客さまご自身の責任にて実施していただきます。あらかじめご容赦ください。
また本稿はMIRACLE ZBXパッケージのアップグレード手順の案内を目的とした文書ではありません。したがってMIRACLE ZBX 6.0へのアップグレードに求められる望ましい手順(ユーザ環境に応じた検証環境での事前検証や設定の互換チェックなど)はすべて網羅されていません。
弊社ではMIRACLE ZBXパッケージのバージョンアップグレードに対する支援としてコンサルティングサービスを提供しています。詳細は弊社担当営業までお問い合わせいただくか、以下URLからお問い合わせください。
https://www.cybertrust.co.jp/contact/linux-oss.html
SELinuxを有効にしている場合
SELinuxを有効にした環境でDBのアップグレードをおこなう場合は、miracle-zbx-selinux
パッケージのアップグレードを先におこなってください。
# dnf remove miracle-zbx-release
# dnf install https://ftp.miraclelinux.com/pub/zbx/6.0/miracle-zbx-release-6.0-1.noarch.rpm
# dnf update miracle-zbx-selinux
RHEL8系OS(MIRACLE LINUX 8系)
PostgreSQL
アップグレード対象のMIRACLE ZBXサービスを停止します。
MIRACLE ZBXサーバ:
# systemctl stop zabbix-server
MIRACLE ZBXプロキシ:
# systemctl stop zabbix-proxy
dnf moduleコマンドからPostgreSQL 12.xを有効にし、最新の12系へ更新します。
# dnf module reset postgresql
# dnf module enable postgresql:12
# dnf update postgresql-server
PostgreSQLアップデートのためにpostgresql-upgrade
パッケージをインストールし、postgresql-setup
コマンドで更新処理を実行します。
# dnf install postgresql-upgrade
# postgresql-setup --upgrade
アップデート後はpg_hba.conf
がリセットされます。お使いのサービスに応じて/var/lib/pgsql/data/pg_hba.conf
を編集してください。その後、PostgreSQLサービスを再起動します。
#systemctl restart postgresql
DB再起動後はMIRACLE ZBXサーバ/プロキシパッケージを更新します。
# dnf remove miracle-zbx-release
# dnf install https://ftp.miraclelinux.com/pub/zbx/6.0/miracle-zbx-release-6.0-1.noarch.rpm
# dnf update
サービスを起動します。
MIRACLE ZBXサーバ:
# zabbix_server -U
# systemctl start zabbix-server
MIRACLE ZBXプロキシ:
# zabbix_proxy -U
# systemctl start zabbix-proxy
RHEL7系OS(MIRACLE LINUX 7系)
MariaDB
MIRACLE ZBXプロキシサービスとデータベースサービスを停止します。古いMariaDBサービスの自動起動を無効にします。
# systemctl stop zabbix-proxy mariadb
# systemctl disable mariadb
Software Collections(SCL)で提供されているMariadb10.3へ更新します。
# yum install rh-mariadb103-mariadb-server
古いMariaDBデータディレクトリを新しいMariaDBのデータディレクトリへコピーし、オーナーとSELinuxコンテキストを設定します。その後、新しいMariaDBサービスを起動し、自動起動設定を有効にします。
# rm -rf /var/opt/rh/rh-mariadb103/lib/mysql/
# cp -r /var/lib/mysql/ /var/opt/rh/rh-mariadb103/lib/
# chown -R mysql:mysql /var/opt/rh/rh-mariadb103/lib/mysql/
# restorecon -R /var/opt/rh/rh-mariadb103/lib/mysql/
# systemctl enable --now rh-mariadb103-mariadb
MariaDBアップデートのためにrh-mariadb103-mariadb-server-utils
パッケージをインストールし、mysql_upgrade
コマンドで更新処理を実行します。
# yum install rh-mariadb103-mariadb-server-utils
# scl enable rh-mariadb103 'mysql_upgrade -u root'
更新処理の完了後にMariaDBサービスを再起動します。
# systemctl restart rh-mariadb103-mariadb
移行したzabbix_proxy
用のデータベースに含まれるすべての行をDynamic形式に変換します。次のようにスクリプトを生成、実行します。なお、指定するデータベース名はお使いの環境に応じて読み替えてください。
# /opt/rh/rh-mariadb103/root/bin/mysql -uzabbix -p zabbix_proxy -s -N -e "SELECT CONCAT('ALTER TABLE ',table_name, ' ROW_FORMAT=DYNAMIC;') FROM information_schema.tables where TABLE_SCHEMA='zabbix_proxy';" > ./convert_row_format_dynamic.sql
# /opt/rh/rh-mariadb103/root/bin/mysql -uzabbix -p zabbix_proxy < ./convert_row_format_dynamic.sql
MIRACLE ZBXプロキシを更新し、サービスを起動します。
# yum remove miracle-zbx-release
# yum install https://ftp.miraclelinux.com/pub/zbx/6.0/miracle-zbx-release-6.0-1.noarch.rpm
# yum update
# zabbix_proxy -U
# systemctl start zabbix-proxy
PostgreSQL
MIRACLE ZBXプロキシサービスとデータベースサービスを停止します。古いPostgreSQLサービスの自動起動を無効にします。
# systemctl stop zabbix-proxy postgresql
# systemctl disable postgresql
Software Collections(SCL)で提供されているPostgreSQL12へ更新します。
# yum install rh-postgresql12-postgresql-server
古いPostgreSQLのデータディレクトリが存在することを確認します。
# file /var/lib/pgsql/data/
PostgreSQL12のデータディレクトリが存在しないことを確認します。このディレクトリが存在する場合は、バックアップ等を実施した後ディレクトリを削除してください。
# file /var/opt/rh/rh-postgresql12/lib/pgsql/data/
postgresql-setup
コマンドで更新処理を実行します。
# scl enable rh-postgresql12 -- postgresql-setup --upgrade
お使いのサービスに応じて/var/opt/rh/rh-postgresql12/lib/pgsql/data/pg_hba.conf
を編集してください。その後、新しいPostgreSQLサービスを起動し、自動起動設定を有効にします。
# systemctl enable --now rh-postgresql12-postgresql
postgresql-setup
コマンドによる更新処理では、オプティマイザーの統計情報は転送されません。お使いのサービスに応じて次のコマンドの実行を検討してください。
# su - postgres -c 'scl enable rh-postgresql12 ~/analyze_new_cluster.sh'
MIRACLE ZBXプロキシを更新し、サービスを起動します。
# yum remove miracle-zbx-release
# yum install https://ftp.miraclelinux.com/pub/zbx/6.0/miracle-zbx-release-6.0-1.noarch.rpm
# yum update
# zabbix_proxy -U
# systemctl start zabbix-proxy
Amazon Linux 2
MariaDB
MIRACLE ZBXプロキシサービスを停止します。
# systemctl stop zabbix-proxy
amazon-linux-extras
コマンドからMariaDB10.5を有効にし、パッケージを更新します。
# amazon-linux-extras enable mariadb10.5
# yum clean metadata
# yum update mariadb-server
mariadb-upgrade
コマンドでMariaDBの更新処理を実行し、サービスを再起動します。
# mariadb-upgrade
# systemctl restart mariadb
移行したzabbix_proxy
用のデータベースに含まれるすべての行をDynamic形式に変換します。次のようにスクリプトを生成、実行します。なお、指定するデータベース名はお使いの環境に応じて読み替えてください。
# mysql -uzabbix -p zabbix_proxy -s -N -e "SELECT CONCAT('ALTER TABLE ',table_name, ' ROW_FORMAT=DYNAMIC;') FROM information_schema.tables where TABLE_SCHEMA='zabbix_proxy';" > ./convert_row_format_dynamic.sql
# mysql zabbix_proxy -uzabbix -p < ./convert_row_format_dynamic.sql
MIRACLE ZBXプロキシを更新し、サービスを起動します。
# yum remove miracle-zbx-release
# yum install https://ftp.miraclelinux.com/pub/zbx/6.0/miracle-zbx-release-6.0-1.noarch.rpm
# yum update
# zabbix_proxy -U
# systemctl start zabbix-proxy
注意事項
本ドキュメントの内容は、予告なしに変更される場合があります。
本ドキュメントは、限られた評価環境における検証結果をもとに作成しており、 全ての環境での動作を保証するものではありません。
本ドキュメントの内容に基づき、導入、設定、運用を行なったことにより損害が 生じた場合でも、弊社はその損害についての責任を負いません。あくまでお客様のご判断にてご使用ください。
更新履歴
2022年3月15日 新規作成