3 コンテナからのアップグレード
概要
このセクションでは、Zabbix 7.0 のコンテナへ正常にアップグレードするために必要な手順について説明します。
以下の手順が別々に用意されています。
アップグレードを行う前に、関連するアップグレードノートを必ずお読みください。
アップグレードを開始する前に、アップグレードのためにユーザーがデータベースに対して必要な権限を持っていることを確認してください。
Zabbix 6.0 以前からアップグレードする場合、アップグレード中に決定論的トリガーを作成する必要があります。
MySQL/MariaDB でバイナリログが有効になっている場合、これにはスーパーユーザー権限、または変数/設定パラメータ log_bin_trust_function_creators = 1 の設定が必要です。
変数の設定方法については、データベース作成スクリプトを参照してください。
コンソールから実行する場合、この変数は一時的にのみ設定され、Docker が再起動されると解除されることに注意してください。
この場合は SQL サービスは稼働させたままにし、docker compose down zabbix-server を実行して zabbix-server サービスのみを停止し、その後 docker compose up -d zabbix-server を実行してください。
または、この変数を設定ファイルに設定することもできます。
データベースのサイズによっては、バージョン 7.0 へのデータベースアップグレードに長時間かかる場合があります。
Zabbixコンポーネントイメージのアップグレード
この手順では、Zabbixコンポーネントのコンテナのベースとして使用している Docker イメージをアップグレードします。
以下の手順では、Zabbixプロキシを例として使用します。
zabbix-proxy-sqlite3 を、対象コンポーネントのコンテナ名に置き換えてください。
1. すべてのコンテナを確認して、名前と現在のイメージバージョンを特定します:
docker ps -a
# CONTAINER ID IMAGE (...) NAMES
# 5a0c2e3d02b4 zabbix/zabbix-proxy-sqlite3:alpine-6.4-latest (...) zabbix-proxy-sqlite3
2. 新しいイメージバージョンを取得します:
docker pull zabbix/zabbix-proxy-sqlite3:alpine-7.0-latest
3. Zabbixコンポーネントのコンテナを停止します:
docker stop zabbix-proxy-sqlite3
4. Zabbixコンポーネントのコンテナを削除します:
続行する前に、元の docker run コマンドで使用したすべての設定フラグとボリュームマウントを必ず控えておいてください。コンテナを再作成する際に必要になります。
docker rm zabbix-proxy-sqlite3
5. 更新されたイメージを使用して新しいコンテナを起動します:
docker run --name zabbix-proxy-sqlite3 \
-e ZBX_SERVER_HOST=192.0.2.1 \
-e ZBX_PROXYMODE=0 \
-e ZBX_HOSTNAME=zabbix-proxy-sqlite3 \
-v zabbix-proxy-data:/var/lib/zabbix/db_data \
--init \
-d \
zabbix/zabbix-proxy-sqlite3:alpine-7.0-latest
Zabbixコンテナの実行方法の詳細については、Docker (manual deployment) を参照してください。
6. コンテナログを確認して、アップグレードが成功したことを検証します:
docker logs -f zabbix-proxy-sqlite3
Docker Composeファイルのアップグレード
この手順では、Zabbixコンポーネントのデプロイに使用する Docker Compose ファイルをアップグレードします。
Zabbix を Docker Compose を使用してインストールした場合は、この手順に従ってください。
1. すべてのコンテナを確認し、それぞれの名前と現在のイメージバージョンを特定します。
docker ps -a
# CONTAINER ID IMAGE (...) NAMES
# d095f486deef zabbix/zabbix-server-mysql:alpine-6.4-latest (...) zabbix-docker-zabbix-server-1
# 70627d833da0 zabbix/zabbix-web-nginx-mysql:alpine-6.4-latest (...) zabbix-docker-zabbix-web-nginx-mysql-1
# aaaa664cc185 zabbix/zabbix-server-mysql:alpine-6.4-latest (...) zabbix-docker-server-db-init-1
# 9ab3e77492ff mysql:8.0-oracle (...) zabbix-docker-mysql-server-1
2. 以前にクローンした Zabbix Docker リポジトリに移動し、最新の更新を取得して、7.0 ブランチに切り替えます。
ローカルリポジトリ内の .env、compose.yaml、またはその他のファイルを変更している場合、git pull によってそれらが上書きされる可能性があります。
この手順を実行する前に、ローカルの変更をバックアップしてください。
cd zabbix-docker
git pull
git checkout 7.0
3. 更新された Docker Compose ファイルを使用して Zabbix コンポーネントをデプロイします。
# データベースとして MySQL を使用する場合:
docker compose -f ./compose.yaml up -d
# データベースとして PostgreSQL を使用する場合:
docker compose -f ./compose_pgsql.yaml up -d
すべてのコンテナが再作成されて起動した後、データ収集が再開されるまで 1〜3 分かかる場合があります。
Zabbix コンテナの実行に関する詳細は、Docker Compose を参照してください。
4. コンテナログを確認して、アップグレードが成功したことを検証します(zabbix-docker-zabbix-server-1 は対象コンポーネントのコンテナ名に置き換えてください)。
docker logs -f zabbix-docker-zabbix-server-1