コンテナからのインストール

概要

このページでは、Docker または Docker Compose を使用して Zabbix をデプロイする方法について説明します。

Docker Compose は、Zabbix をデプロイする最も簡単な方法です。 設定ファイルを読み込み、完全な Zabbix 環境を構成するすべてのコンテナを、正しい順序で自動的に起動します。

Docker(手動デプロイ) では、各コンポーネントを段階的にデプロイすることで、同じ結果を実現します。

前提条件

開始する前に、システムにDocker(1.12.0以降)がインストールされていることを確認してください。 インストールされていない場合は、Docker installation guide に従ってください。 Docker Composeによるデプロイでは、Docker Compose(2.24.0以降)も必要です。

一部のZabbixコンポーネントでは、Dockerを実行しているホスト上で特定のポートが開放されている必要があります(例:Zabbixサーバーでは10051/TCP、SNMPトラップでは162/UDP)。 Zabbixコンポーネントで使用されるポートの完全な一覧については、Requirements を参照してください。 Zabbixサーバーおよびエージェントでは、それぞれのコンテナで環境変数 ZBX_LISTENPORT を設定することで、デフォルトのポートを変更できます。

利用可能なDockerイメージ

Zabbixは各Zabbixコンポーネント向けのDockerイメージを提供しており、すべてDocker Hubで公開されています。 各イメージは、そのコンポーネントを実行するコンテナの作成に使用されます。

Zabbixコンポーネント Dockerイメージ
エージェント zabbix/zabbix-agent
エージェント 2 zabbix/zabbix-agent2
サーバー (MySQL) zabbix/zabbix-server-mysql
サーバー (PostgreSQL) zabbix/zabbix-server-pgsql
Webインターフェース (Apache + MySQL) zabbix/zabbix-web-apache-mysql
Webインターフェース (Apache + PostgreSQL) zabbix/zabbix-web-apache-pgsql
Webインターフェース (Nginx + MySQL) zabbix/zabbix-web-nginx-mysql
Webインターフェース (Nginx + PostgreSQL) zabbix/zabbix-web-nginx-pgsql
プロキシ (SQLite3) zabbix/zabbix-proxy-sqlite3
プロキシ (MySQL) zabbix/zabbix-proxy-mysql
Javaゲートウェイ zabbix/zabbix-java-gateway
Webサービス zabbix/zabbix-web-service
SNMPトラップ zabbix/zabbix-snmptraps

SNMPトラップを使用するには、SNMPトラップコンテナがZabbixサーバーまたはプロキシコンテナとボリュームを共有している必要があります(Docker Hubのこのイメージの使用方法および以下のを参照してください)。

Docker Hub上のすべてのZabbixコンポーネントイメージは、サポート対象のオペレーティングシステムの最新メジャーバージョンをベースにしています。 これらのイメージは、基盤となるOSイメージが更新されると自動的に再ビルドされます。

イメージタグ

各イメージは、ベースとなるオペレーティングシステムとZabbixバージョンを選択するためのタグをサポートしています。

zabbix/<image>:<os>-<version>

サポートされている <os> の値:

  • alpine - Alpine Linux
  • ubuntu - Ubuntu
  • centos - CentOS Stream
  • ol - Oracle Linux
  • ltsc2022 - Windows 11 LTSC 2022(Zabbix エージェントのみ)

サポートされている <version> の値:

  • latest - Alpine Linux上の最新の安定版Zabbixバージョン
  • <os>-latest - 選択したOS上の最新の安定版Zabbixバージョン
  • <os>-trunk - 選択したOS上の最新の開発版(nightly)ビルド
  • <os>-X.X-latest - 選択したOS上の特定のZabbixメジャーバージョンにおける最新のZabbixマイナーリリース
  • <os>-X.X.* - 選択したOS上の特定のZabbixマイナーリリース

例:

# Alpine Linux上の最新の安定版Zabbix プロキシ(SQLite3):
docker pull zabbix/zabbix-proxy-sqlite3:latest

# Ubuntu上の最新の安定版Zabbix プロキシ(SQLite3):
docker pull zabbix/zabbix-proxy-sqlite3:ubuntu-latest

# Ubuntu上のZabbix サーバー(MySQL)の最新の開発版(nightly)ビルド:
docker pull zabbix/zabbix-server-mysql:ubuntu-trunk

# Alpine Linux上のZabbix サーバー(MySQL)の最新の8.0マイナーリリース:
docker pull zabbix/zabbix-server-mysql:alpine-8.0-latest

# Alpine Linux上のZabbix サーバー(MySQL)バージョン8.0.1:
docker pull zabbix/zabbix-server-mysql:alpine-8.0.1

Docker Compose

Docker Compose は、Zabbix を最も手早くデプロイする方法です。 これは設定ファイル(Compose file)を読み込み、Docker イメージの取得、コンテナ間の内部ネットワークの作成、ストレージの設定、データベースの初期化、そしてすべてを正しい順序で起動する、といったセットアップ全体を処理します。

公式 Zabbix Dockerfiles リポジトリには、すぐに使える Docker Compose ファイルと、さまざまなオペレーティングシステム、データベースバックエンド、Zabbix コンポーネント設定をサポートする .env ベースの設定システムが用意されています。

1. リポジトリをクローンし、そのディレクトリに移動して、8.0 に切り替えます。

git clone https://github.com/zabbix/zabbix-docker.git
cd zabbix-docker
git checkout 8.0

2. (任意)環境変数 を使用してデプロイをカスタマイズします。 デフォルト構成の場合、この手順は省略できます。

3. デフォルト構成をデプロイします。Zabbix サーバー、Webインターフェース(Nginx 上で動作)、およびデータベースバックエンド(MySQL または PostgreSQL)を、それぞれ Alpine Linux 上の個別のコンテナで実行します。

# データベースとして MySQL を使用する場合:
docker compose -f ./compose.yaml up -d

# データベースとして PostgreSQL を使用する場合:
docker compose -f ./compose_pgsql.yaml up -d

コンテナが起動して稼働状態になると(通常 1〜3 分以内)、Zabbix サーバーが起動し、Webインターフェースは http://localhost で利用できるようになります。

docker compose ps を使用してコンテナの状態を確認してください。 zabbix-docker-server-db-init-1 コンテナを除くすべてのコンテナは、Up 状態である必要があります。 Exited と表示されるものがある場合は、docker logs -f <container-name> でログを確認し、エラーを調べてください。

環境変数

Docker Compose の動作と Zabbix コンポーネントの設定は、どちらも環境変数を使用してカスタマイズできます。

Compose レベルの変数.env ファイルで定義)は、使用する Docker イメージ、ポート、およびネットワーク IP 範囲を制御します。
これらの変数は、docker compose コマンドの前にインラインで指定することも、.env ファイルを編集することもできます。

たとえば、次のコマンドは、Ubuntu ベースのイメージ(デフォルトの Alpine Linux の代わり)を使用し、Webインターフェースを Nginx 経由でカスタム HTTP(8282)および HTTPS(8443)ポートに公開する、完全なマルチコンテナ Zabbix 環境をデプロイします。

OS=ubuntu \
ZABBIX_WEB_NGINX_HTTP_PORT=8282 \
ZABBIX_WEB_NGINX_HTTPS_PORT=8443 \
docker compose -f ./compose.yaml up -d

コンポーネント レベルの変数env_vars/.env_<component> ファイルで定義)は、Zabbix コンポーネントの設定を制御します。
docker compose コマンドを実行する前に、該当する .env_<component> ファイルを編集してください。

たとえば、次の変数を編集することで、Zabbix サーバーの passive poller 数やキャッシュ設定を調整したり、Webインターフェースのタイムゾーンを設定したりできます。

# env_vars/.env_srv
ZBX_STARTPOLLERS=20
ZBX_CACHESIZE=64M
ZBX_HISTORYCACHESIZE=32M

# env_vars/.env_web
PHP_TZ=Europe/Paris

コンポーネント レベルの環境変数は、異なる命名規則を使用して Zabbix コンポーネントの設定パラメータに対応します(たとえば、ZBX_STARTPOLLERSStartPollers に対応します)。
一部の変数は Docker 固有であり、変更できない設定パラメータもあります(たとえば、PIDFileLogType)。
環境変数を使用する場合は、Docker Hub 上の各コンポーネントの Docker イメージ の説明にある Environment variables セクションを参照してください。

ボリューム

Docker Compose は、Compose ファイルと同じ場所に作成される zbx_env/ ディレクトリに永続データを保存します。
このディレクトリにより、コンテナの再起動や更新後もコンポーネントのデータが保持されます。

zbx_env/ の内容は、各コンポーネントのイメージごとに事前定義されています。例えば、次のとおりです。

各ボリュームの詳細については、Docker Hub にある各コンポーネントの Docker イメージ の説明内の Allowed volumes セクションを参照してください。

Makefile

Zabbix Dockerfilesリポジトリでは、一般的なDocker Composeタスクのショートカットとして Makefile も提供しています。 完全な docker compose コマンドを使用する代わりに、より短い make コマンドを使用できます(利用可能なオプションを確認するには make help を実行してください)。

# デフォルトのデプロイメント(Zabbixサーバー、Webインターフェース、MySQL、すべてAlpine Linux上)
make up

# カスタムデプロイメント(Zabbixサーバー、カスタムNginxポートを使用するWebインターフェース、PostgreSQL、すべてUbuntu上)
make up \
  OS=ubuntu \
  DB=pgsql \
  ZABBIX_WEB_NGINX_HTTP_PORT=8282 \
  ZABBIX_WEB_NGINX_HTTPS_PORT=8443

コンテナを停止または削除する際は、常にデプロイ時と同じデータベースタイプを指定してください(例: make down DB=pgsql)。

デフォルトでは、make up は最小限のサービスセット(Zabbixサーバー、Webインターフェース、データベース)のみを起動します。 これにより、セットアップを軽量に保ち、不要なコンポーネントの起動を回避できます。 追加のコンポーネントを含めるには、次の Compose profiles を使用できます。

# デフォルトのデプロイメント + Zabbixエージェント、Javaゲートウェイ、webサービス、SNMPトラップ:
make up COMPOSE_PROFILES=full

# COMPOSE_PROFILES=full + Zabbixプロキシ(MySQLおよびSQLite3):
make up COMPOSE_PROFILES=all

Docker (手動デプロイ)

Zabbix を段階的にデプロイし、個々のコンポーネントを実行し、既存の環境と統合する場合、または Podman などの代替コンテナランタイムを使用する場合は、手動デプロイを使用します。

たとえば、Zabbix プロキシをデプロイするには、次のコマンドを実行します。

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/zabbix-proxy-sqlite3:alpine-8.0-latest Docker イメージ を取得します。

  • Docker イメージを基に zabbix-proxy-sqlite3 コンテナを作成して起動します(--init および -d フラグを使用)。

  • ZBX_SERVER_HOST 環境変数を使用して、Zabbix プロキシの Server パラメーターを設定します。 このパラメーターは、プロキシが設定データを取得し、収集したデータを送信する Zabbix サーバーの IP アドレスを指定します。 アクティブプロキシの動作に必要な他の変数は既定値を使用するため、省略できます。

環境変数は、Zabbix コンポーネントの設定パラメーターに対して、異なる命名規則を使用して対応付けられます(例: ZBX_SERVER_HOSTServer に対応します)。 一部の変数は Docker 固有であり、また一部の設定パラメーターは変更できません(例: PIDFileLogType)。 環境変数を使用する場合は、Docker Hub 上の各コンポーネントの Docker イメージ 説明にある Environment variables セクションを参照してください。

  • Docker によって管理される保存場所(例: /var/lib/docker/volumes/zabbix-proxy-data/)をコンテナの /var/lib/zabbix ディレクトリに接続し、コンテナが削除されても Zabbix プロキシのデータが永続的に保存されるようにします。

各ボリュームの詳細については、Docker Hub 上の各コンポーネントの Docker イメージ 説明にある Allowed volumes セクションを参照してください。

Zabbix プロキシコンテナをデプロイした後は、Zabbix の Webインターフェースで プロキシを追加 し、このプロキシで監視する ホストを設定 できます。

以下の例では、さらに 3 つのデプロイシナリオを扱います。

  • Zabbix サーバー (MySQL) と Javaゲートウェイ
  • Zabbix サーバー (PostgreSQL) と SNMP トラップ
  • RHEL 8–10 上の Zabbix サーバー (MySQL) と Javaゲートウェイ

その他の例については、Docker Hub 上の各コンポーネントの Docker イメージ 説明を参照してください。

Javaゲートウェイを使用して Zabbix サーバー (MySQL) をデプロイする

この例では、MySQL バックエンド、JMX monitoring 用の Javaゲートウェイ、および Nginx ベースの Webインターフェースを備えた Zabbix サーバーをデプロイする方法を示します。

1. 専用の Docker ネットワークを作成します。これにより、すべての Zabbix コンポーネントコンテナがコンテナ名で相互に到達できるようになります。

docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net

2. 空の MySQL サーバーコンテナを実行します (zabbix_pwdroot_pwd は強力なパスワードに置き換え、以降の手順でその値を使用してください)。

docker run --name mysql-server -t \
  -e MYSQL_DATABASE="zabbix" \
  -e MYSQL_USER="zabbix" \
  -e MYSQL_PASSWORD="zabbix_pwd" \
  -e MYSQL_ROOT_PASSWORD="root_pwd" \
  --network=zabbix-net \
  --restart unless-stopped \
  -d mysql:8.4-oracle \
  --character-set-server=utf8mb4 --collation-server=utf8mb4_bin

3. MySQL のログを追跡し、MySQL が接続を受け付ける準備ができるまで待ちます (ログを終了するには Ctrl+C を使用します)。

docker logs -f mysql-server

# ... [Server] /usr/sbin/mysqld: ready for connections. ...

4. Zabbix Javaゲートウェイコンテナを実行します。

docker run --name zabbix-java-gateway -t \
  --network=zabbix-net \
  --restart unless-stopped \
  -d zabbix/zabbix-java-gateway:alpine-8.0-latest

5. MySQL サーバーコンテナで log_bin_trust_function_creators を有効にします。 これにより、ストアド関数に対するセキュリティ制限が一時的に緩和されます。この設定は後の手順で無効にします。 これにより、Zabbix データベースユーザーは SUPER 権限なしでストアド関数を作成できます。これは、binary logging が有効な場合に MySQL が要求する権限です (MySQL 8.0 以降の既定)。 次のコマンドを実行します。

docker exec -it mysql-server mysql -u root -p'root_pwd' \
  -e "SET GLOBAL log_bin_trust_function_creators = 1;"

6. Zabbix サーバーコンテナを実行し、Java Gateway および MySQL サーバーコンテナに接続します。

docker run --name zabbix-server-mysql -t \
  -e DB_SERVER_HOST="mysql-server" \
  -e MYSQL_DATABASE="zabbix" \
  -e MYSQL_USER="zabbix" \
  -e MYSQL_PASSWORD="zabbix_pwd" \
  -e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
  --network=zabbix-net \
  -p 10051:10051 \
  --restart unless-stopped \
  --init \
  -d zabbix/zabbix-server-mysql:alpine-8.0-latest

7. Zabbix サーバーのログを追跡し、Zabbix サーバーがデータベーススキーマの初期化を完了するまで待ちます (ログを終了するには Ctrl+C を使用します)。

docker logs -f zabbix-server-mysql

# ... [info]: ** Creating 'zabbix' schema in MySQL
# ... [info]: ** Database schema successfully created!

8. MySQL サーバーコンテナで log_bin_trust_function_creators を無効にします。 これにより、非 SUPER ユーザーによるストアド関数の作成を防ぐセキュリティ制限が再度有効になります。 次のコマンドを実行します。

docker exec -it mysql-server mysql -u root -p'root_pwd' \
  -e "SET GLOBAL log_bin_trust_function_creators = 0;"

9. Zabbix Webインターフェースコンテナを実行し、Zabbix サーバーおよび MySQL サーバーコンテナに接続します。

docker run --name zabbix-web-nginx-mysql -t \
  -e ZBX_SERVER_HOST="zabbix-server-mysql" \
  -e DB_SERVER_HOST="mysql-server" \
  -e MYSQL_DATABASE="zabbix" \
  -e MYSQL_USER="zabbix" \
  -e MYSQL_PASSWORD="zabbix_pwd" \
  -e PHP_TZ="Europe/Riga" \
  --network=zabbix-net \
  -p 80:8080 \
  --restart unless-stopped \
  -d zabbix/zabbix-web-nginx-mysql:alpine-8.0-latest

コンテナが起動して実行中になると、Zabbix サーバーが開始され、Webインターフェースは http://localhost で利用可能になります。

docker ps を使用してコンテナの状態を確認してください。 すべてのコンテナは Up 状態である必要があります。 Exited と表示されるものがある場合は、docker logs -f <container-name> でログを確認し、エラーを調べてください。

PostgreSQL と SNMP traps を使用して Zabbix サーバーをデプロイする

この例では、PostgreSQL バックエンド、SNMP traps、および Nginx ベースの Webインターフェースを備えた Zabbix サーバーをデプロイする方法を示します。

1. 専用の Docker ネットワークを作成します。これにより、すべての Zabbix コンポーネントコンテナがコンテナ名で相互に到達できるようになります。

docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net

2. 空の PostgreSQL サーバーコンテナを実行します (zabbix_pwd は強力なパスワードに置き換え、以降の手順でその値を使用してください)。

docker run --name postgres-server -t \
  -e POSTGRES_USER="zabbix" \
  -e POSTGRES_PASSWORD="zabbix_pwd" \
  -e POSTGRES_DB="zabbix" \
  --network=zabbix-net \
  --restart unless-stopped \
  -d postgres:latest

3. Zabbix SNMP traps コンテナを実行します。

docker run --name zabbix-snmptraps -t \
  -v /zbx_instance/snmptraps:/var/lib/zabbix/snmptraps:rw \
  -v /var/lib/zabbix/mibs:/usr/share/snmp/mibs:ro \
  --network=zabbix-net \
  -p 162:1162/udp \
  --restart unless-stopped \
  -d zabbix/zabbix-snmptraps:alpine-8.0-latest

4. Zabbix サーバーコンテナを実行し、PostgreSQL サーバーおよび SNMP traps コンテナに接続します。

docker run --name zabbix-server-pgsql -t \
  -e DB_SERVER_HOST="postgres-server" \
  -e POSTGRES_USER="zabbix" \
  -e POSTGRES_PASSWORD="zabbix_pwd" \
  -e POSTGRES_DB="zabbix" \
  -e ZBX_ENABLE_SNMP_TRAPS="true" \
  --network=zabbix-net \
  -p 10051:10051 \
  --volumes-from zabbix-snmptraps \
  --restart unless-stopped \
  --init \
  -d zabbix/zabbix-server-pgsql:alpine-8.0-latest

5. Zabbix サーバーのログを追跡し、Zabbix サーバーがデータベーススキーマの初期化を完了するまで待ちます (ログを終了するには Ctrl+C を使用します)。

docker logs -f zabbix-server-pgsql

# ... [info]: ** Creating 'zabbix' schema in PostgreSQL
# ... [info]: ** Database schema successfully created!

6. Zabbix Webインターフェースコンテナを実行し、Zabbix サーバーおよび PostgreSQL サーバーコンテナに接続します。

docker run --name zabbix-web-nginx-pgsql -t \
  -e ZBX_SERVER_HOST="zabbix-server-pgsql" \
  -e DB_SERVER_HOST="postgres-server" \
  -e POSTGRES_DB="zabbix" \
  -e POSTGRES_USER="zabbix" \
  -e POSTGRES_PASSWORD="zabbix_pwd" \
  -e PHP_TZ="Europe/Riga" \
  --network=zabbix-net \
  -p 443:8443 \
  -p 80:8080 \
  -v /etc/ssl/nginx:/etc/ssl/nginx:ro \
  --restart unless-stopped \
  -d zabbix/zabbix-web-nginx-pgsql:alpine-8.0-latest

コンテナが起動して実行中になると、Zabbix サーバーが開始され、Webインターフェースは http://localhost で利用可能になります。

docker ps を使用してコンテナの状態を確認してください。 すべてのコンテナは Up 状態である必要があります。 Exited と表示されるものがある場合は、docker logs -f <container-name> でログを確認し、エラーを調べてください。

RHEL 8–10 で Javaゲートウェイを使用して Zabbix サーバー (MySQL) をデプロイする

この例では、Red Hat Enterprise Linux 8、9、または 10 上で動作する、MySQL バックエンド、JMX monitoring 用の Javaゲートウェイ、および Nginx ベースの Webインターフェースを備えた Zabbix サーバーをデプロイする方法を示します。

Red Hat Enterprise Linux では、推奨されるコンテナランタイムは Docker ではなく Podman です。 Podman は Docker と同様に動作しますが、root として実行されるバックグラウンドサービスを必要としないため、Red Hat 環境により適しています。

1. zabbix という名前の新しい pod を作成し、Zabbix Webインターフェースと Zabbix サーバー trapper 用のポートを公開します。

podman pod create --name zabbix -p 80:8080 -p 10051:10051

2. (任意) zabbix pod 内で Zabbix エージェントコンテナを実行します。

podman run --name zabbix-agent \
  -e ZBX_SERVER_HOST="127.0.0.1,localhost" \
  --restart=always \
  --pod=zabbix \
  -d registry.connect.redhat.com/zabbix/zabbix-agent-80:latest

3. RHEL ホスト上に ./mysql/ ディレクトリを作成します。

mkdir -p ./mysql

4. 空の MySQL サーバーコンテナを実行します (zabbix_pwdroot_pwd は強力なパスワードに置き換え、以降の手順でその値を使用してください)。

podman run --name mysql-server -t \
  -e MYSQL_DATABASE="zabbix" \
  -e MYSQL_USER="zabbix" \
  -e MYSQL_PASSWORD="zabbix_pwd" \
  -e MYSQL_ROOT_PASSWORD="root_pwd" \
  -v ./mysql/:/var/lib/mysql/:Z \
  --restart=always \
  --pod=zabbix \
  -d mysql:8.4 \
  --character-set-server=utf8mb4 --collation-server=utf8mb4_bin

5. MySQL のログを追跡し、MySQL が接続を受け付ける準備ができるまで待ちます (ログを終了するには Ctrl+C を使用します)。

podman logs -f mysql-server

# ... [Server] /usr/sbin/mysqld: ready for connections. ...

6. Zabbix Javaゲートウェイコンテナを実行します。

podman run --name zabbix-java-gateway -t \
  --restart=always \
  --pod=zabbix \
  -d registry.connect.redhat.com/zabbix/zabbix-java-gateway-80

7. MySQL サーバーコンテナで log_bin_trust_function_creators を有効にします。 これにより、ストアド関数に対するセキュリティ制限が一時的に緩和されます。この設定は後の手順で無効にします。 これにより、Zabbix データベースユーザーは SUPER 権限なしでストアド関数を作成できます。これは、binary logging が有効な場合に MySQL が要求する権限です (MySQL 8.0 以降の既定)。 次のコマンドを実行します。

podman exec -it mysql-server mysql -u root -p'root_pwd' \
  -e "SET GLOBAL log_bin_trust_function_creators = 1;"

8. Zabbix サーバーコンテナを実行し、Java Gateway および MySQL サーバーコンテナに接続します。

podman run --name zabbix-server-mysql -t \
  -e DB_SERVER_HOST="127.0.0.1" \
  -e MYSQL_DATABASE="zabbix" \
  -e MYSQL_USER="zabbix" \
  -e MYSQL_PASSWORD="zabbix_pwd" \
  -e ZBX_JAVAGATEWAY="127.0.0.1" \
  --restart=always \
  --init \
  --pod=zabbix \
  -d registry.connect.redhat.com/zabbix/zabbix-server-mysql-80

9. Zabbix サーバーのログを追跡し、Zabbix サーバーがデータベーススキーマの初期化を完了するまで待ちます (ログを終了するには Ctrl+C を使用します)。

podman logs -f zabbix-server-mysql

# ... [info]: ** Creating 'zabbix' schema in MySQL
# ... [info]: ** Database schema successfully created!

10. MySQL サーバーコンテナで log_bin_trust_function_creators を無効にします。 これにより、非 SUPER ユーザーによるストアド関数の作成を防ぐセキュリティ制限が再度有効になります。 次のコマンドを実行します。

podman exec -it mysql-server mysql -u root -p'root_pwd' \
  -e "SET GLOBAL log_bin_trust_function_creators = 0;"

11. Zabbix Webインターフェースコンテナを実行し、Zabbix サーバーおよび MySQL サーバーコンテナに接続します。

podman run --name zabbix-web-mysql -t \
  -e ZBX_SERVER_HOST="127.0.0.1" \
  -e DB_SERVER_HOST="127.0.0.1" \
  -e MYSQL_DATABASE="zabbix" \
  -e MYSQL_USER="zabbix" \
  -e MYSQL_PASSWORD="zabbix_pwd" \
  -e PHP_TZ="Europe/Riga" \
  --restart=always \
  --pod=zabbix \
  -d registry.connect.redhat.com/zabbix/zabbix-web-mysql-80

pod zabbix は、zabbix-web-mysql コンテナの 8080/TCP からホストマシンへ 80/TCP ポート (HTTP) を公開します。

コンテナが起動して実行中になると、Zabbix サーバーが開始され、Webインターフェースは http://localhost で利用可能になります。

docker ps を使用してコンテナの状態を確認してください。 すべてのコンテナは Up 状態である必要があります。 Exited と表示されるものがある場合は、docker logs -f <container-name> でログを確認し、エラーを調べてください。