Docker ComposeでZABBIX7.0 LTSを建てる

Docker, Docker Compose

Docker, Docker Composeは動いているものとします。

docker -v
Docker version 27.3.1, build ce12230
docker-compose -v
Docker Compose version v2.6.1

M1 MacBook AirにRocky LinuxをUTMを使用して建てる方法はこちらから

M1 MacBook Air: UTMを使ってCentOS Stream 9を動かす事を試みた件 ー ARM64なら動く※x86-64でも動いた
CentOSからCentOS Streamへの大きな変化が有ったCentOS Project. 同じ様にMacもIntelからARMベースのMチップに移行しました。 仮想化に関してUTMを使って動作を確認する。

DockerでZABBIX Serverを建てる

git clone https://github.com/zabbix/zabbix-docker.git
cd zabbix-docker
git checkout 7.0

以前はgit cloneすると、OSとDBの組み合わせ毎にdocker compose用のymlファイルが有りました。
2026/5 現在はDBやコンポーネント別にcompose.ymlが有りますが、エラーが多く複雑なので今回はAlpine/MySQL/Nginx/agent2構成のdocker-compose.ymlを記述して使用します。

mkdir my-zabbix
cd my-zabbix
vi docker-compose.yml
services:
  zabbix-db:
    image: mariadb:10.11
    container_name: zabbix-db
    volumes:
      - ./zbx_db_data:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=zabbix
      - MYSQL_DATABASE=zabbix
      - MYSQL_USER=zabbix
      - MYSQL_PASSWORD=zabbix
    restart: always

zabbix-server:
    image: zabbix/zabbix-server-mysql:alpine-7.0-latest
    container_name: zabbix-server
    ports:
      - "10051:10051"
    environment:
      - DB_SERVER_HOST=zabbix-db
      - MYSQL_DATABASE=zabbix
      - MYSQL_USER=zabbix
      - MYSQL_PASSWORD=zabbix
      - MYSQL_ROOT_PASSWORD=zabbix
    depends_on:
      - zabbix-db
    restart: always

zabbix-web:
    image: zabbix/zabbix-web-nginx-mysql:alpine-7.0-latest
    container_name: zabbix-web
    ports:
      - "8080:8080"
    environment:
      - DB_SERVER_HOST=zabbix-db
      - MYSQL_DATABASE=zabbix
      - MYSQL_USER=zabbix
      - MYSQL_PASSWORD=zabbix
      - PHP_TZ=Asia/Tokyo
    depends_on:
      - zabbix-db
    restart: always

zabbix-agent:
    image: zabbix/zabbix-agent2:alpine-7.0-latest
    container_name: zabbix-agent
    ports:
      - "10050:10050"
    environment:
      - ZBX_HOSTNAME=Zabbix server
      - ZBX_SERVER_HOST=zabbix-server
    restart: always
docker compose up -d

docker composeコマンドが終わるとコンテナが起動している事が確認出来ます。

docker ps
CONTAINER ID   IMAGE                                             COMMAND                  CREATED        STATUS                  PORTS                                                        NAMES
1305742128d0   zabbix/zabbix-agent2:alpine-7.0-latest            “/usr/bin/docker-ent…”   7 hours ago    Up 7 hours              0.0.0.0:10050->10050/tcp, [::]:10050->10050/tcp, 31999/tcp   zabbix-agent
ddf8df6507eb   zabbix/zabbix-server-mysql:alpine-7.0-latest      “/usr/bin/docker-ent…”   11 hours ago   Up 11 hours             0.0.0.0:10051->10051/tcp, [::]:10051->10051/tcp              zabbix-server
dcc423de21e8   zabbix/zabbix-web-nginx-mysql:alpine-7.0-latest   “docker-entrypoint.sh”   11 hours ago   Up 11 hours (healthy)   0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp, 8443/tcp        zabbix-web
393b99c26763   mariadb:10.11                                     “docker-entrypoint.s…”   11 hours ago   Up 11 hours             3306/tcp                                                     zabbix-db

コンテナが起動してもまだZABBIXにWebからアクセス出来ません。
裏側でDB作成が進行している為です。
進行状況の確認はdocker logsコマンドから

docker logs zabbix-server

DB作成が終わるとブラウザから<IPアドレス>:8080でアクセス可能になります。

Admin/zabbixでログイン出来ます。

Agentを使える様にする

コンテナのネットワーク内ではコンテナ名で名前解決できます。
zabbix-serverがzabbix-agentを見に行く際に、DNSで接続する様に設定を変更します。

ステータスがグリーンになります。

Dockerを使ってZABBIX環境を建てる

今回Dockerを使ってZABBIX環境を建ててみましたが検証用途には十分だと感じます。
Dockerを使えば任意のバージョンの環境が簡単に建てられます。
Dockerを使ってサクッとZABBIX検証環境を建てましょう!

TwitterFacebookLinkedInHatenaPocketCopy Link