はじめに
本記事は、Qiita Advent Calendar 2025の25日目(12/25 クリスマス)の記事です。
コンテナ版Zabbixを使ってみようと思ったきっかけ
11/6~7に開催されたZabbix Conference Japan 2025にて、コンテナイメージのメンテナンスをされている方と会い、話す機会があったことがきっかけです。

Zabbix環境の構成
特にコンテナ環境に限ったことではないですが、以下の組み合わせで構成されます。
・DB(MySQL/PostgreSQLなど)
・Zabbix-Server
・フロントエンドのWebサーバ(nginx/apacheなど)
その為、コンテナ環境でもそれぞれのコンテナを起動し、連携させます。
Zabbix8.0の開発状況
Zabbix8.0ですが、2026 Q2リリースを目標に、絶賛開発が進められており、
OpenTelemetry対応が大きなトピックとなっております。
https://www.zabbix.com/roadmap

Zabbixコンテナ環境の構築 step1
今回はDocker(Windows11のDockerデスクトップ)上に構築します。
※以下より自身の環境にあった方法でインストールを予めしておいてください。
https://www.docker.com/
まずは、DBとしてMySQLをデプロイします。
使用したコンテナイメージは、以下です、
https://hub.docker.com/_/mysql
-------
PS C:\Users\matt> docker run --name mysql-server -t -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix" -e MYSQL_ROOT_PASSWORD="zabbix" -d mysql:latest
Unable to find image 'mysql:latest' locally
latest: Pulling from library/mysql
3cd9dbd900b6: Pull complete
5b7494a5617c: Pull complete
26040ca4b0ff: Pull complete
4739ccce10fe: Pull complete
c977bb812578: Pull complete
fe33d02f9e9d: Pull complete
bc357b5ee6d2: Pull complete
94829adeb7d5: Pull complete
32ade1562315: Pull complete
518fdee9efbe: Pull complete
4fdb57154777: Download complete
64911a6c79e2: Download complete
Digest: sha256:5ca0a273ed28c73acaef91da8bf1eca3711bee94bce4c378d42846375e645a72
Status: Downloaded newer image for mysql:latest
23bbba93c6f4e9718a1d49ceb5d00ade649e124b2b78ecb9ddf638b114987c23
PS C:\Users\matt> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
23bbba93c6f4 mysql:latest "docker-entrypoint.s…" 33 seconds ago Up 30 seconds 3306/tcp, 33060/tcp mysql-server
Zabbixコンテナ環境の構築 step2
続いて、Zabbix-Serverをデプロイします。
使用したコンテナイメージは、以下です。
-------
PS C:\Users\matt> 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" -e MYSQL_ROOT_PASSWORD="zabbix" --link mysql-server:mysql -p 10051:10051 -d zabbix/zabbix-server-mysql:ubuntu-trunk
792177ce5ce97f44101dd10ca4fedf3c272e19796da0cc521b358ac049a5d747
PS C:\Users\matt> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
792177ce5ce9 zabbix/zabbix-server-mysql:ubuntu-trunk "/usr/bin/docker-ent…" 4 seconds ago Up 2 seconds 0.0.0.0:10051->10051/tcp, [::]:10051->10051/tcp zabbix-server-mysql
23bbba93c6f4 mysql:latest "docker-entrypoint.s…" 12 minutes ago Up 12 minutes 3306/tcp, 33060/tcp mysql-server
Zabbixコンテナ環境の構築 step3
最後にフロントエンドのWebサーバ(nginx)をデプロイします。
使用したコンテナイメージは、以下です。
-------
PS C:\Users\matt> docker run --name zabbix-web-nginx-mysql -t -e DB_SERVER_HOST="mysql-server" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix" -e MYSQL_ROOT_PASSWORD="zabbix" -e ZBX_SERVER_HOST="zabbix-server" -e PHP_TZ="Asia/Tokyo" --link mysql-server:mysql --link zabbix-server-mysql:zabbix-server -p 8080:8080 -p 443:8443 -d zabbix/zabbix-web-nginx-mysql:ubuntu-trunk
5091e3f86d3476206a421b28d20e8ffa04cd68c6dfbcd9d26e97bb2e84b7cc69
PS C:\Users\matt> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5091e3f86d34 zabbix/zabbix-web-nginx-mysql:ubuntu-trunk "docker-entrypoint.sh" 3 seconds ago Up 2 seconds (health: starting) 0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp, 0.0.0.0:443->8443/tcp, [::]:443->8443/tcp zabbix-web-nginx-mysql
792177ce5ce9 zabbix/zabbix-server-mysql:ubuntu-trunk "/usr/bin/docker-ent…" 23 minutes ago Up 22 minutes 0.0.0.0:10051->10051/tcp, [::]:10051->10051/tcp zabbix-server-mysql
23bbba93c6f4 mysql:latest "docker-entrypoint.s…" 35 minutes ago Up 35 minutes 3306/tcp, 33060/tcp mysql-server
構築したZabbixコンテナへのアクセス
トップ画面が表示されたら、Username:Admin、Password:zabbixでサインインします。

サインインすると、以下のようにダッシュボードが表示されます。
"Zabbixサーバーのバージョン"という欄をみると、"8.0.0alpha2"となっていることが分かります。
デフォルトのUIは見慣れたものとあまり変わらないので、安心しました。

以下は、作業完了後のDockerデスクトップの管理画面です。

おわりに
今回は、MySQL(DB) + Zabbix-Server + nginx(Webフロントエンド)という環境にしましたが、公開されているコンテナイメージを変える事でDBにPostgresqlやApacheにすることも出来ます。
また、Zabbix8.0をまず触ってい見たいという場合には、気軽に構築できコンテナという選択肢は最適なのかなとやってみて感じました。
コンテナの良さである、軽量・すぐ起動出来るなどのメリットが受けられるからです。
なお、今回はDocker上で起動しましたが、同様のコンテナプラットフォーム(Kubernetesなど)でも可能です。