5 コンテナからのインストール
概要
このセクションでは、Docker または Docker Compose を使用して Zabbix をデプロイする方法について説明します。
Zabbix は公式に以下を提供しています。
- 各 Zabbix コンポーネントごとに個別の Docker イメージ。これにより、ポータブルで自己完結型のコンテナとして実行できます。
- Docker で複数コンテナの Zabbix コンポーネントを定義および実行するための Compose ファイル。
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' を実行してください。
または、この変数を設定ファイルで設定することもできます。
ソースファイル
Dockerファイルのソースは、GitHub上のZabbixの公式リポジトリに保存されており、そこで最新のファイル変更を追跡したり、プロジェクトをフォークして独自のイメージを作成したりできます。
Docker
Zabbix は、さまざまな OS ベースイメージに基づくイメージを提供しています。 特定の Zabbix コンポーネントでサポートされているベースオペレーティングシステムイメージの一覧を取得するには、Docker Hub にある各コンポーネントの説明を参照してください。 すべての Zabbix イメージは、ベースイメージが更新された場合に最新イメージを再ビルドするよう設定されています。
インストール
Zabbix コンポーネントのイメージを取得するには、次を実行します。
docker pull zabbix/zabbix-server-mysql
zabbix/zabbix-server-mysql を必要な Docker リポジトリ名に置き換えてください。
このコマンドは、Alpine Linux OS ベースの最新の安定版 Zabbix コンポーネントバージョンを取得します。 別のオペレーティングシステムをベースにしたイメージ、または特定の Zabbix メジャー/マイナーバージョンのイメージを取得するには、リポジトリ名に tags を追加できます。
Docker Hub では、次のリポジトリを利用できます。
| Component | Docker repository | |
|---|---|---|
| Zabbix エージェント | zabbix/zabbix-agent | |
| Zabbix サーバー | ||
| MySQL サポート付き | zabbix/zabbix-server-mysql | |
| PostgreSQL サポート付き | zabbix/zabbix-server-pgsql | |
| Zabbix Webインターフェース | ||
| MySQL サポート付き Apache2 Web サーバーベース | zabbix/zabbix-web-apache-mysql | |
| PostgreSQL サポート付き Apache2 Web サーバーベース | zabbix/zabbix-web-apache-pgsql | |
| MySQL サポート付き Nginx Web サーバーベース | zabbix/zabbix-web-nginx-mysql | |
| PostgreSQL サポート付き Nginx Web サーバーベース | zabbix/zabbix-web-nginx-pgsql | |
| Zabbix プロキシ | ||
| SQLite3 サポート付き | zabbix/zabbix-proxy-sqlite3 | |
| MySQL サポート付き | zabbix/zabbix-proxy-mysql | |
| Zabbix Javaゲートウェイ | zabbix/zabbix-java-gateway | |
SNMP トラップのサポートは、別リポジトリ zabbix/zabbix-snmptraps で提供されています。 これは Zabbix サーバーおよび Zabbix プロキシとリンクできます。
タグ
公式のZabbixコンポーネントイメージには、以下のタグを含めることができます。
| Tag | Description | Example |
|---|---|---|
| latest | Alpine LinuxイメージをベースにしたZabbixコンポーネントの最新の安定版。 | zabbix-agent:latest |
| <OS>-trunk | 特定のオペレーティングシステム上で現在開発中のZabbixバージョンの最新ナイトリービルド。 <OS> - ベースとなるオペレーティングシステム。サポートされる値: alpine - Alpine Linux; ltsc2019 - Windows 10 LTSC 2019(エージェントのみ); ol - Oracle Linux; ltsc2022 - Windows 11 LTSC 2022(エージェントのみ); ubuntu - Ubuntu |
zabbix-agent:ubuntu-trunk |
| <OS>-latest | 特定のオペレーティングシステム上のZabbixコンポーネントの最新の安定版。 <OS> - ベースとなるオペレーティングシステム。サポートされる値: alpine - Alpine Linux; ltsc2019 - Windows 10 LTSC 2019(エージェントのみ); ol - Oracle Linux; ltsc2022 - Windows 11 LTSC 2022(エージェントのみ); ubuntu - Ubuntu |
zabbix-agent:ol-latest |
| <OS>-X.X-latest | 特定のメジャーバージョンおよびオペレーティングシステム向けZabbixコンポーネントの最新マイナーバージョン。 <OS> - ベースとなるオペレーティングシステム。サポートされる値: alpine - Alpine Linux; ltsc2019 - Windows 10 LTSC 2019(エージェントのみ); ol - Oracle Linux; ltsc2022 - Windows 11 LTSC 2022(エージェントのみ); ubuntu - Ubuntu X.X - Zabbixのメジャーバージョン(例: 6.0、7.0、7.4)。 |
zabbix-agent:alpine-7.4-latest |
| <OS>-X.X.* | 特定のメジャーバージョンおよびオペレーティングシステム向けZabbixコンポーネントの特定のマイナーバージョン。 <OS> - ベースとなるオペレーティングシステム。サポートされる値: alpine - Alpine Linux; ltsc2019 - Windows 10 LTSC 2019(エージェントのみ); ol - Oracle Linux; ltsc2022 - Windows 11 LTSC 2022(エージェントのみ); ubuntu - Ubuntu X.X - Zabbixのメジャーバージョン(例: 6.0、7.0、7.4)。 * - Zabbixのマイナーバージョン |
zabbix-agent:alpine-7.4.1 |
Docker Compose
または、ZabbixはDocker Composeプラグインを使用してインストールすることもできます。 複数コンテナのZabbixコンポーネントを定義して実行するためのComposeファイルは、GitHub上の公式のZabbix Dockerリポジトリで利用できます。
公式のZabbix composeファイルは、Docker Composeのバージョン3をサポートしています。
これらのcomposeファイルは例として追加されていますが、多くの構成が含まれています。 たとえば、MySQLとSQLite3の両方をサポートするプロキシが含まれています。
Zabbixが提供するDocker composeファイルを取得するには、リポジトリをクローンします。
git clone https://github.com/zabbix/zabbix-docker.git
必要なバージョンに切り替えます。
git checkout 7.4
Compose設定ファイルを使用してコンテナを作成し、起動します。
docker compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up
上記のコマンド内のdocker-compose_v3_alpine_mysql_latest.yamlを、必要な設定ファイルに置き換えてください。
利用可能なオプションは次のとおりです。
| File name | Description |
|---|---|
docker-compose_v3_alpine_mysql_latest.yaml |
このcomposeファイルは、Alpine Linux上でMySQLデータベースをサポートする最新バージョンのZabbix 7.4コンポーネントを実行します。 |
docker-compose_v3_alpine_mysql_local.yaml |
このcomposeファイルは、最新バージョンのZabbix 7.4をローカルでビルドし、Alpine Linux上でMySQLデータベースをサポートするZabbixコンポーネントを実行します。 |
docker-compose_v3_alpine_pgsql_latest.yaml |
このcomposeファイルは、Alpine Linux上でPostgreSQLデータベースをサポートする最新バージョンのZabbix 7.4コンポーネントを実行します。 |
docker-compose_v3_alpine_pgsql_local.yaml |
このcomposeファイルは、最新バージョンのZabbix 7.4をローカルでビルドし、Alpine Linux上でPostgreSQLデータベースをサポートするZabbixコンポーネントを実行します。 |
docker-compose_v3_ol_mysql_latest.yaml |
このcomposeファイルは、Oracle Linux上でMySQLデータベースをサポートする最新バージョンのZabbix 7.4コンポーネントを実行します。 |
docker-compose_v3_ol_mysql_local.yaml |
このcomposeファイルは、最新バージョンのZabbix 7.4をローカルでビルドし、Oracle Linux上でMySQLデータベースをサポートするZabbixコンポーネントを実行します。 |
docker-compose_v3_ol_pgsql_latest.yaml |
このcomposeファイルは、Oracle Linux上でPostgreSQLデータベースをサポートする最新バージョンのZabbix 7.4コンポーネントを実行します。 |
docker-compose_v3_ol_pgsql_local.yaml |
このcomposeファイルは、最新バージョンのZabbix 7.4をローカルでビルドし、Oracle Linux上でPostgreSQLデータベースをサポートするZabbixコンポーネントを実行します。 |
docker-compose_v3_ubuntu_mysql_latest.yaml |
このcomposeファイルは、Ubuntu 24.04 (noble)上でMySQLデータベースをサポートする最新バージョンのZabbix 7.4コンポーネントを実行します。 |
docker-compose_v3_ubuntu_mysql_local.yaml |
このcomposeファイルは、最新バージョンのZabbix 7.4をローカルでビルドし、Ubuntu 24.04 (noble)上でMySQLデータベースをサポートするZabbixコンポーネントを実行します。 |
docker-compose_v3_ubuntu_pgsql_latest.yaml |
このcomposeファイルは、Ubuntu 24.04 (noble)上でPostgreSQLデータベースをサポートする最新バージョンのZabbix 7.4コンポーネントを実行します。 |
docker-compose_v3_ubuntu_pgsql_local.yaml |
このcomposeファイルは、最新バージョンのZabbix 7.4をローカルでビルドし、Ubuntu 24.04 (noble)上でPostgreSQLデータベースをサポートするZabbixコンポーネントを実行します。 |
環境変数
すべてのZabbixコンポーネントイメージは、設定を制御するための環境変数を提供しています。 サポートされている環境変数は、コンポーネントリポジトリに一覧表示されています。
これらの環境変数はZabbix設定ファイルのオプションに対応していますが、命名方法が異なります。
例えば、ZBX_LOGSLOWQUERIES は、Zabbix サーバー または Zabbix プロキシ 設定ファイル内の LogSlowQueries に相当します。
一部の設定オプション(例: PIDFile および LogType)は変更できません。
以下の環境変数はDockerコンポーネント固有のものであり、Zabbix設定ファイルには存在しません。
| Variable | Components | Default value | Description |
|---|---|---|---|
DB_SERVER_HOST |
サーバー プロキシ Webインターフェース |
MYSQL の場合は mysql-server PostgreSQL の場合は postgres-server |
MySQL または PostgreSQL サーバーのIPアドレスまたはDNS名。 |
DB_SERVER_PORT |
サーバー プロキシ Webインターフェース |
MYSQL の場合は 3306 PostgreSQL の場合は 5432 |
MySQL または PostgreSQL サーバーのポート。 |
MYSQL_USER |
サーバー プロキシ Webインターフェース |
zabbix |
MySQLデータベースユーザー。 |
MYSQL_PASSWORD |
サーバー プロキシ Webインターフェース |
zabbix |
MySQLデータベースパスワード。 |
MYSQL_DATABASE |
サーバー プロキシ Webインターフェース |
Zabbixサーバーの場合は zabbix Zabbixプロキシの場合は zabbix_proxy |
Zabbixデータベース名。 |
POSTGRES_USER |
サーバー Webインターフェース |
zabbix |
PostgreSQLデータベースユーザー。 |
POSTGRES_PASSWORD |
サーバー Webインターフェース |
zabbix |
PostgreSQLデータベースパスワード。 |
POSTGRES_DB |
サーバー Webインターフェース |
Zabbixサーバーの場合は zabbix Zabbixプロキシの場合は zabbix_proxy |
Zabbixデータベース名。 |
PHP_TZ |
Webインターフェース | Europe/Riga |
PHP形式のタイムゾーン。サポートされているタイムゾーンの完全な一覧は php.net で確認できます。 |
ZBX_SERVER_NAME |
Webインターフェース | Zabbix Docker |
Webインターフェースの縦型メニューで、Zabbixロゴの下に表示されるZabbixインストール名。 |
ZBX_JAVAGATEWAY_ENABLE |
サーバー プロキシ |
false |
Java関連のチェックを収集するために、Zabbix Javaゲートウェイとの通信を有効にします。 |
ZBX_ENABLE_SNMP_TRAPS |
サーバー プロキシ |
false |
SNMPトラップ機能を有効にします。これには zabbix-snmptraps インスタンスと、共有ボリューム /var/lib/zabbix/snmptraps をZabbixサーバーまたはZabbixプロキシに設定する必要があります。 |
ボリューム
イメージでは、以下のマウントポイントを使用してボリュームをマウントできます。
| ボリューム | 説明 | |
|---|---|---|
| Zabbix エージェント | ||
| /etc/zabbix/zabbix_agentd.d | このボリュームを使用すると、*.conf ファイルを追加でき、UserParameter 機能を使用して Zabbix エージェントを拡張できます |
|
| /var/lib/zabbix/modules | このボリュームを使用すると、追加モジュールをロードでき、LoadModule 機能を使用して Zabbix エージェントを拡張できます | |
| /var/lib/zabbix/enc | このボリュームは TLS 関連ファイルの保存に使用されます。これらのファイル名は、環境変数 ZBX_TLSCAFILE、ZBX_TLSCRLFILE、ZBX_TLSKEY_FILE、ZBX_TLSPSKFILE を使用して指定します |
|
| Zabbix サーバー | ||
| /usr/lib/zabbix/alertscripts | このボリュームはカスタムアラートスクリプトに使用されます。zabbix_server.conf の AlertScriptsPath パラメータです |
|
| /usr/lib/zabbix/externalscripts | このボリュームは 外部チェック で使用されます。zabbix_server.conf の ExternalScripts パラメータです |
|
| /var/lib/zabbix/modules | このボリュームを使用すると、追加モジュールをロードでき、LoadModule 機能を使用して Zabbix サーバーを拡張できます | |
| /var/lib/zabbix/enc | このボリュームは TLS 関連ファイルの保存に使用されます。これらのファイル名は、環境変数 ZBX_TLSCAFILE、ZBX_TLSCRLFILE、ZBX_TLSKEY_FILE、ZBX_TLSPSKFILE を使用して指定します |
|
| /var/lib/zabbix/ssl/certs | このボリュームは、クライアント認証用の SSL クライアント証明書ファイルの保存場所として使用されます。zabbix_server.conf の SSLCertLocation パラメータです |
|
| /var/lib/zabbix/ssl/keys | このボリュームは、クライアント認証用の SSL 秘密鍵ファイルの保存場所として使用されます。zabbix_server.conf の SSLKeyLocation パラメータです |
|
| /var/lib/zabbix/ssl/ssl_ca | このボリュームは、SSL サーバー証明書検証用の認証局 (CA) ファイルの保存場所として使用されます。zabbix_server.conf の SSLCALocation パラメータです |
|
| /var/lib/zabbix/snmptraps | このボリュームは snmptraps.log ファイルの保存場所として使用されます。このボリュームは zabbix-snmptraps コンテナと共有でき、新しい Zabbix サーバーインスタンスの作成時に Docker の volumes_from オプションを使用して継承できます。SNMP トラップ処理機能は、共有ボリュームを使用し、環境変数 ZBX_ENABLE_SNMP_TRAPS を 'true' に切り替えることで有効にできます |
|
| /var/lib/zabbix/mibs | このボリュームを使用すると、新しい MIB ファイルを追加できます。サブディレクトリはサポートされていないため、すべての MIB は /var/lib/zabbix/mibs に配置する必要があります |
|
| Zabbix プロキシ | ||
| /usr/lib/zabbix/externalscripts | このボリュームは 外部チェック で使用されます。zabbix_proxy.conf の ExternalScripts パラメータです |
|
| /var/lib/zabbix/db_data/ | このボリュームを使用すると、データベースファイルを外部デバイスに保存できます。SQLite3 を使用する Zabbix プロキシでのみサポートされます | |
| /var/lib/zabbix/modules | このボリュームを使用すると、追加モジュールをロードでき、LoadModule 機能を使用して Zabbix サーバーを拡張できます | |
| /var/lib/zabbix/enc | このボリュームは TLS 関連ファイルの保存に使用されます。これらのファイル名は、環境変数 ZBX_TLSCAFILE、ZBX_TLSCRLFILE、ZBX_TLSKEY_FILE、ZBX_TLSPSKFILE を使用して指定します |
|
| /var/lib/zabbix/ssl/certs | このボリュームは、クライアント認証用の SSL クライアント証明書ファイルの保存場所として使用されます。zabbix_proxy.conf の SSLCertLocation パラメータです |
|
| /var/lib/zabbix/ssl/keys | このボリュームは、クライアント認証用の SSL 秘密鍵ファイルの保存場所として使用されます。zabbix_proxy.conf の SSLKeyLocation パラメータです |
|
| /var/lib/zabbix/ssl/ssl_ca | このボリュームは、SSL サーバー証明書検証用の認証局 (CA) ファイルの保存場所として使用されます。zabbix_proxy.conf の SSLCALocation パラメータです |
|
| /var/lib/zabbix/snmptraps | このボリュームは snmptraps.log ファイルの保存場所として使用されます。このボリュームは zabbix-snmptraps コンテナと共有でき、新しい Zabbix サーバーインスタンスの作成時に Docker の volumes_from オプションを使用して継承できます。SNMP トラップ処理機能は、共有ボリュームを使用し、環境変数 ZBX_ENABLE_SNMP_TRAPS を 'true' に切り替えることで有効にできます |
|
| /var/lib/zabbix/mibs | このボリュームを使用すると、新しい MIB ファイルを追加できます。サブディレクトリはサポートされていないため、すべての MIB は /var/lib/zabbix/mibs に配置する必要があります |
|
| Apache2 Web サーバーをベースとした Zabbix Webインターフェース | ||
| /etc/ssl/apache2 | このボリュームを使用すると、Zabbix Webインターフェースで HTTPS を有効にできます。このボリュームには、Apache2 の SSL 接続用に準備された ssl.crt と ssl.key の 2 つのファイルが含まれている必要があります |
|
| Nginx Web サーバーをベースとした Zabbix Webインターフェース | ||
| /etc/ssl/nginx | このボリュームを使用すると、Zabbix Webインターフェースで HTTPS を有効にできます。このボリュームには、Nginx の SSL 接続用に準備された ssl.crt、ssl.key、dhparam.pem が含まれている必要があります |
|
| Zabbix snmptraps | ||
| /var/lib/zabbix/snmptraps | このボリュームには、受信した SNMP トラップを記録した snmptraps.log ログファイルが含まれます |
|
| /var/lib/zabbix/mibs | このボリュームを使用すると、新しい MIB ファイルを追加できます。サブディレクトリはサポートされていないため、すべての MIB は /var/lib/zabbix/mibs に配置する必要があります |
|
追加情報については、Docker Hub の Zabbix 公式リポジトリを参照してください。
Makefile
The Zabbix Dockerfiles repository also provides a Makefile as a shortcut for common Docker Compose tasks.
Instead of using the full docker compose command, you can use shorter make commands (run make help to see the available options):
# Default deployment (Zabbix server, web interface, MySQL, all on Alpine Linux)
make up
# Custom deployment (Zabbix server, web interface with custom Nginx ports, PostgreSQL, all on Ubuntu)
make up \
OS=ubuntu \
DB=pgsql \
ZABBIX_WEB_NGINX_HTTP_PORT=8282 \
ZABBIX_WEB_NGINX_HTTPS_PORT=8443
When stopping or removing containers, always specify the same database type that was deployed (e.g., make down DB=pgsql).
By default, make up starts only a minimal set of services (Zabbix server, web interface, and database).
This keeps the setup lightweight and avoids starting components that may not be needed.
To include additional components, you can use the following Compose profiles:
# Default deployment + Zabbix agent, Java gateway, web service, and SNMP traps:
make up COMPOSE_PROFILES=full
# COMPOSE_PROFILES=full + Zabbix proxy (MySQL and SQLite3):
make up COMPOSE_PROFILES=all
初期設定
イメージをダウンロードした後、docker run コマンドを実行し、必要な環境変数やマウントポイントを指定する追加引数を続けて、コンテナを起動します。
いくつかの設定例を以下に示します。
Zabbixコンポーネント間の通信を有効にするため、Zabbixサーバー(trapper)用の10051/TCP、Zabbixエージェント用の10050/TCP、SNMPトラップ用の162/UDP、Zabbix Webインターフェース用の80/TCPなどの一部のポートがホストマシンに公開されます。 Zabbixコンポーネントで使用されるデフォルトポートの完全な一覧は、Requirementsページで確認できます。 Zabbixサーバーおよびエージェントでは、デフォルトポートは ZBX_LISTENPORT 環境変数 を設定することで変更できます。
例
例 1
この例では、MySQLデータベース対応のZabbixサーバー、Nginx WebサーバーベースのZabbix Webインターフェース、およびZabbix Javaゲートウェイを実行する方法を示します。
1. Zabbixコンポーネントコンテナ専用のネットワークを作成します。
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
2. 空のMySQLサーバーインスタンスを起動します。
MySQL 8.4以降では、mysql_native_password の代わりに caching_sha2_password を使用する必要があります。
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.0-oracle \
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=mysql_native_password
3. Zabbix Javaゲートウェイインスタンスを起動します。
docker run --name zabbix-java-gateway -t \
--network=zabbix-net \
--restart unless-stopped \
-d zabbix/zabbix-java-gateway:alpine-7.4-latest
4. Zabbixサーバーインスタンスを起動し、作成した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 MYSQL_ROOT_PASSWORD="root_pwd" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
--network=zabbix-net \
-p 10051:10051 \
--restart unless-stopped \
-d zabbix/zabbix-server-mysql:alpine-7.4-latest
5. Zabbix Webインターフェースを起動し、作成したMySQLサーバーインスタンスおよびZabbixサーバーインスタンスにリンクします。
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 MYSQL_ROOT_PASSWORD="root_pwd" \
--network=zabbix-net \
-p 80:8080 \
--restart unless-stopped \
-d zabbix/zabbix-web-nginx-mysql:alpine-7.4-latest
例 2
この例では、PostgreSQLデータベース対応のZabbixサーバー、Nginx WebサーバーベースのZabbix Webインターフェース、およびSNMPトラップ機能を実行する方法を示します。
1. Zabbixコンポーネントコンテナ専用のネットワークを作成します。
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
2. 空のPostgreSQLサーバーインスタンスを起動します。
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 snmptrapsインスタンスを起動します。
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-7.4-latest
4. Zabbixサーバーインスタンスを起動し、作成したPostgreSQLサーバーインスタンスにリンクします。
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 \
-d zabbix/zabbix-server-pgsql:alpine-7.4-latest
5. Zabbix Webインターフェースを起動し、作成したPostgreSQLサーバーインスタンスおよびZabbixサーバーインスタンスにリンクします。
docker run --name zabbix-web-nginx-pgsql -t \
-e ZBX_SERVER_HOST="zabbix-server-pgsql" \
-e DB_SERVER_HOST="postgres-server" \
-e POSTGRES_USER="zabbix" \
-e POSTGRES_PASSWORD="zabbix_pwd" \
-e POSTGRES_DB="zabbix" \
--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-7.4-latest
例 3
この例では、Red Hat 8 上で podman を使用して、MySQLデータベース対応のZabbixサーバー、Nginx WebサーバーベースのZabbix Webインターフェース、およびZabbix Javaゲートウェイを実行する方法を示します。
1. zabbix という名前の新しいpodを作成し、ポート(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-74:latest
3. ホスト上に ./mysql/ ディレクトリを作成し、Oracle MySQLサーバー 8.0 を起動します。
MySQL 8.4以降では、mysql_native_password の代わりに caching_sha2_password を使用する必要があります。
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.0 \
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=mysql_native_password
4. Zabbixサーバーコンテナを起動します。
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 MYSQL_ROOT_PASSWORD="root_pwd" \
-e ZBX_JAVAGATEWAY="127.0.0.1" \
--restart=always \
--pod=zabbix \
-d registry.connect.redhat.com/zabbix/zabbix-server-mysql-74
5. Zabbix Java Gatewayコンテナを起動します。
podman run --name zabbix-java-gateway -t \
--restart=always \
--pod=zabbix \
-d registry.connect.redhat.com/zabbix/zabbix-java-gateway-74
6. Zabbix Webインターフェースコンテナを起動します。
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 MYSQL_ROOT_PASSWORD="root_pwd" \
--restart=always \
--pod=zabbix \
-d registry.connect.redhat.com/zabbix/zabbix-web-mysql-74
Pod zabbix は、zabbix-web-mysql コンテナの 8080/TCP からホストマシンに 80/TCP ポート(HTTP)を公開します。