コンテナからのアップグレード
概要
このセクションでは、Zabbix 8.0.x コンテナへの正常なアップグレードに必要な手順について説明します。
以下については、それぞれ個別の手順が用意されています。
アップグレードを行う前に、関連するアップグレードに関する注意事項を必ず確認してください。
アップグレードを開始する前に、アップグレード作業のために、ユーザーがデータベースに対する必要な権限を持っていることを確認してください。
Zabbix 6.0 以前からアップグレードする場合、アップグレード中に deterministic trigger を作成する必要があります。
MySQL/MariaDB でバイナリログが有効になっている場合、これにはスーパーユーザー権限、または変数/設定パラメータ log_bin_trust_function_creators = 1 の設定が必要です。
変数の設定方法については、データベース作成スクリプトを参照してください。
コンソールから実行した場合、この変数は一時的にのみ設定され、Docker が再起動されると失われることに注意してください。
この場合は、SQLサービスは実行したままにし、docker compose down zabbix-server を実行して zabbix-server サービスのみを停止し、その後 docker compose up -d zabbix-server を実行してください。
または、この変数を設定ファイルで設定することもできます。
データベースのサイズによっては、バージョン 8.0 へのデータベースアップグレードに長時間かかる場合があります。
Zabbixコンポーネントイメージのアップグレード
この手順では、Zabbixコンポーネントのコンテナのベースとして使用している Docker イメージをアップグレードします。
以下の手順では、Zabbix プロキシを例として使用します。
zabbix-proxy-sqlite3 を、対象コンポーネントのコンテナ名に置き換えてください。
1. すべてのコンテナを確認して、名前と現在のイメージバージョンを特定します:
docker ps -a
# CONTAINER ID IMAGE (...) NAMES
# 5a0c2e3d02b4 zabbix/zabbix-proxy-sqlite3:alpine-7.4-latest (...) zabbix-proxy-sqlite3
2. 新しいイメージバージョンを取得します:
docker pull zabbix/zabbix-proxy-sqlite3:alpine-8.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-8.0-latest
Zabbix コンテナの実行方法の詳細については、Docker (manual deployment) を参照してください。
6. コンテナログを確認して、アップグレードが成功したことを検証します:
docker logs -f zabbix-proxy-sqlite3
Docker Composeファイルのアップグレード
これらの手順では、Zabbixコンポーネントのデプロイに使用されるDocker Composeファイルをアップグレードします。
Docker Compose を使用してZabbixをインストールした場合は、これらの手順に従ってください。
1. すべてのコンテナを確認し、それぞれの名前と現在のイメージバージョンを特定します。
docker ps -a
# CONTAINER ID IMAGE (...) NAMES
# d095f486deef zabbix/zabbix-server-mysql:alpine-7.4-latest (...) zabbix-docker-zabbix-server-1
# 70627d833da0 zabbix/zabbix-web-nginx-mysql:alpine-7.4-latest (...) zabbix-docker-zabbix-web-nginx-mysql-1
# aaaa664cc185 zabbix/zabbix-server-mysql:alpine-7.4-latest (...) zabbix-docker-server-db-init-1
# 9ab3e77492ff mysql:8.0-oracle (...) zabbix-docker-mysql-server-1
2. 以前にクローンしたZabbix Dockerリポジトリに移動し、最新の更新を取得して、8.0ブランチに切り替えます。
ローカルリポジトリ内の .env、compose.yaml、またはその他のファイルを変更している場合、git pull によってそれらが上書きされる可能性があります。
この手順を実行する前に、ローカルでの変更をバックアップしてください。
cd zabbix-docker
git pull
git checkout 8.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