コンテナからのアップグレード

概要

このセクションでは、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ブランチに切り替えます。

ローカルリポジトリ内の .envcompose.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