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

概要

このページでは、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ファイル)を読み込み、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サーバー、NGINX上で実行されるWebインターフェース、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インターフェースでログインできるようになります。

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ファイルを編集して設定できます。

たとえば、次のコマンドは、デフォルトのAlpine LinuxではなくUbuntuベースのイメージを使用し、カスタムHTTP(8282)およびHTTPS(8443)ポートでNGINX経由のWebインターフェースを公開する、完全なマルチコンテナ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サーバーのパッシブポーラー数とキャッシュ設定を調整し、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固有のものであり、一部の設定パラメータは変更できません(例:PIDFileおよびLogType)。 環境変数を使用する場合は、Docker Hubにある各コンポーネントのDockerイメージの説明に記載された環境変数セクションを参照してください。

ボリューム

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プロファイル を使用できます。

# デフォルトのデプロイ + 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監視用の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を有効にします。 これにより、ストアドファンクションに対するセキュリティ制限が一時的に緩和されます。この設定は後の手順で無効にします。 MySQLでbinary loggingが有効な場合(MySQL 8.0以降のデフォルト)、ZabbixデータベースユーザーがSUPER権限なしでストアドファンクションを作成できるようになります。 次のコマンドを実行します。

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

6. Zabbixサーバーコンテナを起動し、Javaゲートウェイおよび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インターフェースからログインできるようになります。

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

SNMPトラップを使用したZabbixサーバー(PostgreSQL)のデプロイ

この例では、PostgreSQLバックエンド、SNMPトラップ、および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トラップコンテナを起動します。

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トラップコンテナに接続します。

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インターフェースからログインできるようになります。

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

RHEL 8~10でJavaゲートウェイを使用したZabbixサーバー(MySQL)のデプロイ

この例では、Red Hat Enterprise Linux 8、9、または10上で、MySQLバックエンド、JMX監視用のJavaゲートウェイ、およびNGINXベースのWebインターフェースを使用してZabbixサーバーをデプロイする方法を説明します。

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

1. zabbixという名前の新しいPodを作成し、Zabbix WebインターフェースおよびZabbixサーバーのトラッパー用にポートを公開します。

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を有効にします。 これにより、ストアドファンクションに対するセキュリティ制限が一時的に緩和されます。この設定は後の手順で無効にします。 MySQLでbinary loggingが有効な場合(MySQL 8.0以降のデフォルト)、ZabbixデータベースユーザーがSUPER権限なしでストアドファンクションを作成できるようになります。 次のコマンドを実行します。

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

8. Zabbixサーバーコンテナを起動し、Javaゲートウェイおよび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

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

コンテナが起動して実行状態になると、Zabbixサーバーが起動し、Webインターフェースからログインできるようになります。

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