これは開発版のドキュメントを表示しています。内容が不完全な場合があります。
このページには自動翻訳されたコンテンツが含まれています。 誤りを見つけた場合は、その箇所を選択して Ctrl+Enter を押し、編集者に報告してください。

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

概要

このセクションでは、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メジャーまたはマイナーバージョンのイメージを取得できます。

Docker Hubで利用可能なリポジトリは以下の通りです。

コンポーネント Dockerリポジトリ
Zabbix agent zabbix/zabbix-agent
Zabbix server
MySQLサポート zabbix/zabbix-server-mysql
PostgreSQLサポート zabbix/zabbix-server-pgsql
Zabbix webインターフェース
Apache2 Webサーバー(MySQLサポート) zabbix/zabbix-web-apache-mysql
Apache2 Webサーバー(PostgreSQLサポート) zabbix/zabbix-web-apache-pgsql
Nginx Webサーバー(MySQLサポート) zabbix/zabbix-web-nginx-mysql
Nginx Webサーバー(PostgreSQLサポート) zabbix/zabbix-web-nginx-pgsql
Zabbix proxy
SQLite3サポート zabbix/zabbix-proxy-sqlite3
MySQLサポート zabbix/zabbix-proxy-mysql
Zabbix Java gateway zabbix/zabbix-java-gateway

SNMPトラップのサポートは、zabbix/zabbix-snmptrapsという別リポジトリで提供されています。これはZabbix serverやZabbix proxyと連携できます。

タグ

公式Zabbixコンポーネントイメージには、以下のタグが含まれる場合があります。

タグ 説明
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.4, 8.0)。
zabbix-agent:alpine-8.0-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.4, 8.0)。

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

初期設定

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

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ロゴ下に表示されるZabbixインストール名。
ZBX_JAVAGATEWAY_ENABLE サーバー
プロキシ
false Java関連のチェックを収集するためにZabbix Javaゲートウェイとの通信を有効にします。
ZBX_ENABLE_SNMP_TRAPS サーバー
プロキシ
false SNMPトラップ機能を有効にします。zabbix-snmptrapsインスタンスと、ZabbixサーバーまたはZabbixプロキシへの共有ボリューム/var/lib/zabbix/snmptrapsが必要です。
ボリューム

イメージでは、以下のマウントポイントを使用してボリュームをマウントできます。

ボリューム 説明
Zabbix agent
/etc/zabbix/zabbix_agentd.d このボリュームに *.conf ファイルを含めることで、UserParameter 機能を使ってZabbix agentを拡張できます
/var/lib/zabbix/modules このボリュームに追加モジュールを配置することで、LoadModule 機能を使ってZabbix agentを拡張できます
/var/lib/zabbix/enc このボリュームはTLS関連ファイルの保存に使用されます。ファイル名は ZBX_TLSCAFILEZBX_TLSCRLFILEZBX_TLSKEY_FILEZBX_TLSPSKFILE 環境変数で指定します
Zabbix server
/usr/lib/zabbix/alertscripts このボリュームはカスタムアラートスクリプト用です。zabbix_server.confAlertScriptsPath パラメータです
/usr/lib/zabbix/externalscripts このボリュームは外部チェックで使用されます。zabbix_server.confExternalScripts パラメータです
/var/lib/zabbix/modules このボリュームに追加モジュールを配置することで、LoadModule 機能を使ってZabbix serverを拡張できます
/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 serverの新しいインスタンス作成時にvolumes_from Dockerオプションで継承できます。共有ボリュームを使用し、ZBX_ENABLE_SNMP_TRAPS 環境変数を'true'に切り替えることでSNMPトラップ処理機能を有効化できます
/var/lib/zabbix/mibs このボリュームに新しいMIBファイルを追加できます。サブディレクトリはサポートされていません。すべてのMIBは /var/lib/zabbix/mibs に配置する必要があります
Zabbix proxy
/usr/lib/zabbix/externalscripts このボリュームは外部チェックで使用されます。zabbix_proxy.confExternalScripts パラメータです
/var/lib/zabbix/db_data/ このボリュームはデータベースファイルを外部デバイスに保存するためのものです。SQLite3を使用したZabbix proxyでのみサポートされます
/var/lib/zabbix/modules このボリュームに追加モジュールを配置することで、LoadModule 機能を使ってZabbix serverを拡張できます
/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 serverの新しいインスタンス作成時に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.crtssl.key の2つのファイルを含める必要があります
Nginx WebサーバーベースのZabbix Webインターフェース
/etc/ssl/nginx このボリュームにより、Zabbix WebインターフェースでHTTPSを有効化できます。NginxのSSL接続用に準備した ssl.crtssl.keydhparam.pem の3つのファイルを含める必要があります
Zabbix snmptraps
/var/lib/zabbix/snmptraps このボリュームには受信したSNMPトラップの snmptraps.log ログファイルが含まれます
/var/lib/zabbix/mibs このボリュームに新しいMIBファイルを追加できます。サブディレクトリはサポートされていません。すべてのMIBは /var/lib/zabbix/mibs に配置する必要があります

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

例1

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

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.4-oracle \
             --character-set-server=utf8 --collation-server=utf8_bin \
             --default-authentication-plugin=caching_sha2_password

3. Zabbix Javaゲートウェイインスタンスを起動します。

docker run --name zabbix-java-gateway -t \
             --network=zabbix-net \
             --restart unless-stopped \
             -d zabbix/zabbix-java-gateway:alpine-8.0-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-8.0-latest

5. Zabbixウェブインターフェースを起動し、作成した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-8.0-latest

例2

この例では、PostgreSQLデータベースサポート付きのZabbixサーバー、NginxウェブサーバーをベースにしたZabbixウェブインターフェース、および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-8.0-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-8.0-latest

5. Zabbixウェブインターフェースを起動し、作成した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-8.0-latest

例3

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

1. zabbixという名前の新しいpodを作成し、ポート(ウェブインターフェース、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-74:latest

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

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=utf8 --collation-server=utf8_bin \
             --default-authentication-plugin=caching_sha2_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ゲートウェイコンテナを起動します。

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

6. Zabbixウェブインターフェースコンテナを起動します。

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)を公開します。

Docker Compose

また、ZabbixはDocker Composeプラグインを使用してインストールすることもできます。 複数コンテナのZabbixコンポーネントを定義・実行するためのComposeファイルは、公式のZabbix Dockerリポジトリで提供されています。

公式のZabbix ComposeファイルはDocker Composeのバージョン3をサポートしています。

これらのComposeファイルは例として追加されています。内容は多岐にわたります。 例えば、MySQLとSQLite3の両方をサポートするプロキシが含まれています。

Zabbixが提供するDocker Composeファイルを取得するには、リポジトリをクローンします:

git clone https://github.com/zabbix/zabbix-docker.git

必要なバージョンに切り替えます:

git checkout 8.0

Compose設定ファイルを指定して、コンテナを作成・起動します:

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 このComposeファイルは、Alpine Linux上でMySQLデータベースをサポートするZabbix 8.0コンポーネントの最新バージョンを実行します。
docker-compose_v3_alpine_mysql_local.yaml このComposeファイルは、Alpine Linux上でMySQLデータベースをサポートするZabbix 8.0の最新バージョンをローカルでビルドし、Zabbixコンポーネントを実行します。
docker-compose_v3_alpine_pgsql_latest.yaml このComposeファイルは、Alpine Linux上でPostgreSQLデータベースをサポートするZabbix 8.0コンポーネントの最新バージョンを実行します。
docker-compose_v3_alpine_pgsql_local.yaml このComposeファイルは、Alpine Linux上でPostgreSQLデータベースをサポートするZabbix 8.0の最新バージョンをローカルでビルドし、Zabbixコンポーネントを実行します。
docker-compose_v3_ol_mysql_latest.yaml このComposeファイルは、Oracle Linux上でMySQLデータベースをサポートするZabbix 8.0コンポーネントの最新バージョンを実行します。
docker-compose_v3_ol_mysql_local.yaml このComposeファイルは、Oracle Linux上でMySQLデータベースをサポートするZabbix 8.0の最新バージョンをローカルでビルドし、Zabbixコンポーネントを実行します。
docker-compose_v3_ol_pgsql_latest.yaml このComposeファイルは、Oracle Linux上でPostgreSQLデータベースをサポートするZabbix 8.0コンポーネントの最新バージョンを実行します。
docker-compose_v3_ol_pgsql_local.yaml このComposeファイルは、Oracle Linux上でPostgreSQLデータベースをサポートするZabbix 8.0の最新バージョンをローカルでビルドし、Zabbixコンポーネントを実行します。
docker-compose_v3_ubuntu_mysql_latest.yaml このComposeファイルは、Ubuntu 22.04上でMySQLデータベースをサポートするZabbix 8.0コンポーネントの最新バージョンを実行します。
docker-compose_v3_ubuntu_mysql_local.yaml このComposeファイルは、Ubuntu 22.04上でMySQLデータベースをサポートするZabbix 8.0の最新バージョンをローカルでビルドし、Zabbixコンポーネントを実行します。
docker-compose_v3_ubuntu_pgsql_latest.yaml このComposeファイルは、Ubuntu 22.04上でPostgreSQLデータベースをサポートするZabbix 8.0コンポーネントの最新バージョンを実行します。
docker-compose_v3_ubuntu_pgsql_local.yaml このComposeファイルは、Ubuntu 22.04上でPostgreSQLデータベースをサポートするZabbix 8.0の最新バージョンをローカルでビルドし、Zabbixコンポーネントを実行します。

ストレージ

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

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

環境変数

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

例1

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

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

composeファイル付きのgithub.com公式Zabbixリポジトリから.env_<type of component>ファイルをダウンロードするのを忘れないでください。

例2

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

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