1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

自宅Windows11にDockerでZabbixサーバを構築し、Cloudflare Tunnelで外部アクセス可能にする

Last updated at Posted at 2025-10-03

はじめに

会社PCからアクセスするために、自宅のWindows11環境に検証用ZabbixサーバをDockerで構築した際のメモです。
Zabbix公式のDocker Composeを参考にしつつ、PostgreSQLのバージョン指定やCloudflare Tunnelを使った外部アクセス設定を行いました。

環境

  • Windows 11
  • Docker Desktop
  • Zabbix 7.4
  • Cloudflare Tunnel (cloudflared)

構築手順

1. Dockerネットワークの作成

まず、Zabbixコンテナ間の通信用にDockerネットワークを作成します。

docker network create zabbix-net

2. PostgreSQLサーバーの起動

PostgreSQLは最新版(18)だとZabbixサーバー側が対応していないため、17を指定します。

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:17

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-7.4-latest

4. Zabbixサーバーの起動

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インターフェースの起動

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

6. Cloudflare Tunnelで外部アクセス設定

会社PCからアクセスするために、Cloudflare Tunnelを使用してクイックトンネルを作成します。

docker run --rm -it cloudflare/cloudflared:latest tunnel --url http://host.docker.internal:8080

このコマンドを実行すると、Cloudflareから提供されるURLが表示されます。
このURLにアクセスすることで、外部からZabbix Webインターフェースに接続できます。

アクセス方法

  1. Cloudflare Tunnelのコマンド実行後、表示されるURLにアクセス
  2. 初期ログイン情報:
    • ユーザー名: Admin
    • パスワード: zabbix

注意点

  • PostgreSQL 18はZabbixサーバーが対応していないため、17を指定
  • Windows環境ではhost.docker.internalを使用してDockerコンテナからホストのポートにアクセス
  • Cloudflare Tunnelは一時的なアクセス用なので、本格運用時は適切なトンネル設定を推奨

まとめ

Dockerを使用することで、Zabbixサーバーを簡単に構築できました。
Cloudflare Tunnelを活用することで、ファイアウォール設定なしに外部からアクセス可能になり、検証環境として活用できています。

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?