5 コンテナでのインストール

概要

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

Zabbixは公式に以下を提供しています。

  • Zabbixコンポーネントごとに個別のDockerイメージを作成し、ポータブルで自立したコンテナとして実行します。
  • DockerでマルチコンテナZabbixコンポーネントを定義して実行するためのファイルを作成します。

Zabbix 6.0以降、インストール中に決定論的トリガーを作成する必要があります。 MySQL/MariaDBでバイナリロギングが有効になっている場合、スーパーユーザー権限、または変数/構成パラメーターlog_bin_trust_function_creators = 1の設定が必要です。 変数の設定方法については、データベース作成スクリプトを参照してください。
コンソールから実行する場合、変数は一時的に設定されるだけで、Docker が再起動されると削除されることに注意してください。 この場合、SQLサービスを実行したままにし、'docker compose down zabbix-server'を実行してから'docker compose up -d zabbix-server'を実行して、zabbix-serverサービスのみを停止します。
あるいは、この変数を設定ファイルで設定することもできます。

Docker

ZabbixはさまざまなOS ベースイメージに基づいたイメージを提供します。 特定のZabbixコンポーネントでサポートされているベースオペレーティングシステムイメージのリストを取得するには、Docker Hubでコンポーネントの説明を参照してください。 すべてのZabbixイメージは、ベースイメージが更新された場合に最新のイメージにリビルドするように設定されています。

インストール

Zabbixコンポーネントイメージを取得するには、次を実行します。

docker pull zabbix/zabbix-server-mysql

zabbix/zabbix-server-mysqlを必要なDockerリポジトリの名前に置き換えます。

このコマンドは、Alpine Linux OSに基づいた最新の安定したZabbixコンポーネントバージョンをプルします。 リポジトリ名にタグを追加すると、別のオペレーティングシステムまたは特定のZabbixメジャーバージョンまたはマイナーバージョンに基づくイメージを取得できます。

Docker Hubでは次のリポジトリが利用可能です。

コンポーネント Dockerリポジトリ
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コンポーネントイメージには、次のタグが含まれる場合があります。

タグ 説明
latest Alpine Linuxイメージに基づくZabbixコンポーネントの最新安定バージョン。 zabbix-agent:latest
<OS>-trunk 特定のOS上で現在開発中の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 特定のOS上の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 特定のOS上および特定のメジャーバージョンのZabbixコンポーネントの最新マイナーバージョン。

<OS> - ベースオペレーティングシステム。サポートする値:
alpine - Alpine Linux
ltsc2019 - Windows 10 LTSC 2019 (エージェントのみ)
ol - Oracle Linux
ltsc2022 - Windows 11 LTSC 2022 (エージェントのみ)
ubuntu - Ubuntu

X.X - Zabbixのメジャーバージョン (例: 5.06.06.4)
zabbix-agent:alpine-6.4-latest
<OS>-X.X.* 特定のOS上および特定のメジャーバージョンのZabbixコンポーネントの最新マイナーバージョン。

<OS> - ベースオペレーティングシステム。サポートする値:
alpine - Alpine Linux
ltsc2019 - Windows 10 LTSC 2019 (エージェントのみ)
ol - Oracle Linux
ltsc2022 - Windows 11 LTSC 2022 (エージェントのみ)
ubuntu - Ubuntu

X.X - Zabbixのメジャーバージョン (例: 5.06.06.4)

* - Zabbixのマイナーバージョン
zabbix-agent:alpine-6.4.1

ソースファイル

Dockerファイルのソースは、GitHubのZabbix公式リポジトリに保存されており、最新のファイル変更を追跡したり、プロジェクトをフォークして独自のイメージを作成したりできます。

初期設定

イメージをダウンロードした後、docker runコマンドを実行してコンテナを起動し、その後に必要な環境変数マウントポイントを指定する追加の引数を指定します。 いくつかの設定例を以下に示します。

Zabbixは、コンテナー内のPID1または初期プロセスとして実行しないでください。

Zabbixコンポーネント間の通信を可能にするために、Zabbixサーバー (トラッパー)の10051/TCP、Zabbixエージェントの10050/TCP、SNMPトラップの162/UDP、Zabbix Webインターフェースの80/TCPなどの一部のポートがホストマシンに公開されます。 Zabbixコンポーネントで使用されるデフォルトポートの完全なリストは、要件ページで確認できます。 Zabbixサーバーおよびエージェントの場合、環境変数ZBX_LISTENPORTを設定することでデフォルトのポートを変更できます。

環境変数

すべてのZabbixコンポーネントイメージは、構成を制御するための環境変数を提供します。 サポートされている環境変数はコンポーネントリポジトリにリストされています。

これらの環境変数はZabbix設定ファイルのオプションでもありますが命名方法が異なります。 たとえば、ZBX_LOGSLOWQUERIESは、ZabbixサーバーまたはZabbixプロキシの設定ファイルのLogSlowQueriesと同じです。

一部の設定オプション(例: PIDFileLogType)は変更できません。

次の環境変数はDockerコンポーネント固有であり、Zabbix設定ファイルには存在しません。

変数 コンポーネント デフォルト値 説明
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インストール名。
ZBX_JAVAGATEWAY_ENABLE サーバー
プロキシ
false Zabbix Javaゲートウェイとの通信を有効にして、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_TLSCAFILEZBX_TLSCRLFILEZBX_TLSKEY_FILEZBX_TLSPSKFILE環境変数を使用して指定されます。
Zabbixサーバー
/usr/lib/zabbix/alertscripts カスタムアラートスクリプトに使用されます。 zabbix_server.confAlertScriptsPathパラメーターです。
/usr/lib/zabbix/externalscripts 外部チェックに使用されます。 zabbix_server.confExternalScriptsパラメーターです。
/var/lib/zabbix/modules LoadModule機能を使用して追加のモジュールをロードし、Zabbixサーバーを拡張できます。
/var/lib/zabbix/enc TLS関連のファイルを格納するために使用されます。これらのファイル名は、ZBX_TLSCAFILEZBX_TLSCRLFILEZBX_TLSKEY_FILEZBX_TLSPSKFILE環境変数を使用して指定されます。
/var/lib/zabbix/ssl/certs クライアント認証用のSSLクライアント証明書ファイルの格納場所として使用されます。zabbix_server.confのSSLCertLocationパラメーターです。
/var/lib/zabbix/ssl/keys クライアント認証用のSSL秘密鍵ファイルの格納場所として使用されます。 zabbix_server.confSSLKeyLocationパラメーターです。
/var/lib/zabbix/ssl/ssl_ca SSL サーバー証明書検証用の認証局(CA)ファイルの格納場所として使用されます。 zabbix_server.confSSLCALocationパラメーターです。
/var/lib/zabbix/snmptraps snmptraps.logファイルの場所として使用されます。 zabbix-snmptrapsコンテナによって共有され、Zabbixサーバーの新しいインスタンスを作成するときに、volumes_from Dockerオプションを使用して継承される可能性があります。共有ボリュームを使用し、ZBX_ENABLE_SNMP_TRAPS環境変数を'true'に切り替えることで、SNMPトラップ処理機能を有効にすることができます。
/var/lib/zabbix/mibs 新しいMIBファイルを追加できます。サブディレクトリはサポートしていません。すべてのMIBを/var/lib/zabbix/mibsに配置する必要があります。
Zabbixプロキシ
/usr/lib/zabbix/externalscripts 外部チェックによって使用されます。zabbix_proxy.confExternalScriptsパラメーターです。
/var/lib/zabbix/db_data/ 外部デバイスにデータベースファイルを保存できます。SQLite3を使用するZabbixプロキシでのみサポートしています。
/var/lib/zabbix/modules LoadModule機能を使用して追加のモジュールをロードし、Zabbixサーバーを拡張できます。
/var/lib/zabbix/enc TLS関連のファイルを格納するために使用されます。これらのファイル名は、ZBX_TLSCAFILEZBX_TLSCRLFILEZBX_TLSKEY_FILEZBX_TLSPSKFILE環境変数を使用して指定されます。
/var/lib/zabbix/ssl/certs クライアント認証用のSSLクライアント証明書ファイルの格納場所として使用されます。zabbix_proxy.confSSLCertLocationパラメーターです。
/var/lib/zabbix/ssl/keys クライアント認証用のSSL秘密鍵ファイルの格納場所として使用されます。zabbix_proxy.confSSLKeyLocationパラメーターです。
/var/lib/zabbix/ssl/ssl_ca SSLサーバー証明書検証用の認証局(CA)ファイルの格納場所として使用されます。zabbix_proxy.confSSLCALocationパラメーターです。
/var/lib/zabbix/snmptraps snmptraps.logファイルの場所として使用されます。zabbix-snmptrapsコンテナによって共有され、Zabbixサーバーの新しいインスタンスを作成するときに、volumes_from Dockerオプションを使用して継承される可能性があります。共有ボリュームを使用し、ZBX_ENABLE_SNMP_TRAPS環境変数を'true'に切り替えることで、SNMPトラップ処理機能を有効にすることができます。
/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.crtssl.keyおよびdhparam.pemが格納されている必要があります。
Zabbix snmpトラップ
/var/lib/zabbix/snmptraps 受信したSNMPトラップで名前が付けられたsnmptraps.logログファイルが格納されます。
/var/lib/zabbix/mibs 新しいMIBファイルを追加できます。サブディレクトリはサポートしていません。すべてのMIBを/var/lib/zabbix/mibsに配置する必要があります。

詳細については、Docker HubのZabbix公式リポジトリを参照してください。

例 1

この例では、MySQLデータベースのサポート、Nginx Webサーバーに基づくZabbix Webインターフェース、およびZabbix Javaゲートウェイを備えたZabbixサーバーを実行する方法を示します。

1. Zabbixコンポーネントコンテナ専用のネットワークを作成します。

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

2. 空のMySQLサーバーインスタンスを開始します。

# 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-6.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-6.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-6.4-latest

例 2

この例では、PostgreSQLデータベースのサポート、Nginx Webサーバーに基づくZabbix Webインターフェース、およびSNMPトラップ機能を備えたZabbixサーバーを実行する方法を示します。

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 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-6.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-6.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-6.4-latest

例 3

この例では、MySQLデータベースのサポート、Nginx Webサーバーに基づくZabbix Webインターフェース、およびRed Hat 8上のpodmanを使用したZabbix Javaゲートウェイを備えたZabbixサーバーを実行する方法を示します。

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

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-64:latest

3. ホスト上に./mysql/ディレクトリを作成し、Oracle MySQL Server 8.0を起動します。

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-64

5. Zabbix Javaゲートウェイコンテナを起動します。

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

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-64

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

Docker Compose

あるいは、Docker Composeプラグインを使用してZabbixをインストールすることもできます。 マルチコンテナ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 6.4

構成ファイルを作成し、コンテナを作成して起動します。

docker compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up

上記のコマンドのdocker-compose_v3_alpine_mysql_latest.yamlを必要な構成ファイルに置き換えます。

次のオプションが利用可能です。

ファイル名 説明
docker-compose_v3_alpine_mysql_latest.yaml MySQLデータベースをサポートするAlpine Linux上で最新バージョンのZabbix 6.4コンポーネントを実行します。
docker-compose_v3_alpine_mysql_local.yaml Zabbix 6.4の最新バージョンをローカルにビルドし、MySQLデータベースをサポートするAlpine Linux上でZabbixコンポーネントを実行します。
docker-compose_v3_alpine_pgsql_latest.yaml PostgreSQLデータベースをサポートするAlpine Linux上で最新バージョンのZabbix 6.4コンポーネントを実行します。
docker-compose_v3_alpine_pgsql_local.yaml Zabbix 6.4の最新バージョンをローカルにビルドし、PostgreSQLデータベースをサポートするAlpine Linux上でZabbixコンポーネントを実行します。
docker-compose_v3_ol_mysql_latest.yaml MySQLデータベースをサポートするOracle Linux上で最新バージョンのZabbix 6.4コンポーネントを実行します。
docker-compose_v3_ol_mysql_local.yaml Zabbix 6.4の最新バージョンをローカルにビルドし、MySQLデータベースをサポートするOracle Linux上でZabbixコンポーネントを実行します。
docker-compose_v3_ol_pgsql_latest.yaml PostgreSQLデータベースをサポートするOracle Linux上で最新バージョンのZabbix 6.4コンポーネントを実行します。
docker-compose_v3_ol_pgsql_local.yaml Zabbix 6.4の最新バージョンをローカルでビルドし、PostgreSQLデータベースをサポートするOracle Linux上でZabbixコンポーネントを実行します。
docker-compose_v3_ubuntu_mysql_latest.yaml MySQLデータベースをサポートするUbuntu 20.04上で 最新バージョンのZabbix 6.4コンポーネントを実行します。
docker-compose_v3_ubuntu_mysql_local.yaml Zabbix 6.4の最新バージョンをローカルにビルドし、MySQLデータベースをサポートするUbuntu 20.04上でZabbixコンポーネントを実行します。
docker-compose_v3_ubuntu_pgsql_latest.yaml PostgreSQLデータベースをサポートするUbuntu 20.04上で最新バージョンのZabbix 6.4コンポーネントを実行します。
docker-compose_v3_ubuntu_pgsql_local.yaml Zabbix 6.4の最新バージョンをローカルにビルドし、PostgreSQLデータベースをサポートするUbuntu 20.04上でZabbixコンポーネントを実行します。

ストレージ

Composeファイルは、ホストマシン上のローカルストレージをサポートするように構成されています。 Docker Composeは、Composeファイルを使用してZabbixコンポーネントを実行するときに、Composeファイルのあるフォルダーにzbx_envディレクトリを作成します。 このディレクトリには、ボリュームセクションで説明したものと同じ構造と、データベースストレージ用のディレクトリが含まれます。

/etc/localtimeおよび/etc/timezoneファイルに対して読み取り専用モードのボリュームもあります。

環境変数

変数ファイルは、.env_<コンポーネントの種類>という名前構造を持ち、env_varsディレクトリにあります。変数の名前と利用可能な選択の詳細については、環境変数を参照してください。

例 1

# git checkout 6.4
       # docker compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up -d

このコマンドは、各Zabbixコンポーネントの最新のZabbix 6.4イメージをダウンロードし、デタッチモードで実行します。

github.comの公式Zabbixリポジトリから.env_<コンポーネントの種類>ファイルをComposeファイルとともにダウンロードすることを忘れないでください。

例 2

# git checkout 6.4
       # docker compose -f ./docker-compose_v3_ubuntu_mysql_local.yaml up -d

このコマンドは、ベースイメージUbuntu 22.04 (jammy)をダウンロードし、Zabbix 6.4コンポーネントをローカルでビルドして、デタッチモードで実行します。