3 コンテナからのアップグレード
概要
このセクションでは、Zabbix 7.4 のコンテナへ正常にアップグレードするために必要な手順について説明します。
以下の手順は、それぞれ別に用意されています。
アップグレードを行う前に、関連するアップグレードノートを必ずお読みください。
アップグレードを開始する前に、アップグレード目的でデータベースに対する必要な権限がユーザーに付与されていることを確認してください。
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.4 へのデータベースアップグレードに長時間かかる場合があります。
Zabbixコンポーネントイメージのアップグレード
この手順では、Zabbixコンポーネントのコンテナのベースとして使用している Docker イメージをアップグレードします。
以下の手順では、例として Zabbix プロキシを使用します。
zabbix-proxy-sqlite3 を、対象コンポーネントのコンテナ名に置き換えてください。
1. すべてのコンテナを確認して、名前と現在のイメージバージョンを特定します:
docker ps -a
# CONTAINER ID IMAGE (...) NAMES
# 5a0c2e3d02b4 zabbix/zabbix-proxy-sqlite3:alpine-7.2-latest (...) zabbix-proxy-sqlite3
2. 新しいイメージバージョンを取得します:
docker pull zabbix/zabbix-proxy-sqlite3:alpine-7.4-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.4-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-7.2-latest (...) zabbix-docker-zabbix-server-1
# 70627d833da0 zabbix/zabbix-web-nginx-mysql:alpine-7.2-latest (...) zabbix-docker-zabbix-web-nginx-mysql-1
# aaaa664cc185 zabbix/zabbix-server-mysql:alpine-7.2-latest (...) zabbix-docker-server-db-init-1
# 9ab3e77492ff mysql:8.0-oracle (...) zabbix-docker-mysql-server-1
2. 以前にクローンした Zabbix Docker リポジトリに移動し、最新の更新を取得して、7.4 ブランチに切り替えます:
.env、compose.yaml、またはローカルリポジトリ内の他のファイルを変更している場合、git pull によってそれらが上書きされる可能性があります。
この手順を実行する前に、ローカルの変更をバックアップしてください。
cd zabbix-docker
git pull
git checkout 7.4
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