はじめに
こんにちは。あやかです。
最近、技術的な検証も兼ねて家庭内ネットワークの監視環境を整えようと思い立ちました。 せっかくSynology NASがあるので、Dockerを使ってZabbixを動かしてみることに。
DSMのContainer Managerを使えば、意外と簡単にZabbix環境が構築できたので、手順を共有したいと思います。
環境情報
今回使用した環境はこんな感じです。
- NAS: Synology DS923+
- DSM: 7.3.2-86009
- Zabbix: 7.4.6
- 構成: Zabbix Web + Zabbix Server + PostgreSQL
構築の流れ
Container Managerを使えば、docker-composeで一発起動できるので本当に楽です。 やることは大体こんな感じ。
- Container Managerをインストール
- docker-compose.ymlを作成
- プロジェクトとして起動
- ブラウザからアクセスして初期設定
docker-compose.ymlの準備
まずは、Zabbix環境を定義するdocker-compose.ymlを作成します。 私が使っている設定はこちら。
version: '3.8'
services:
postgres:
image: postgres:15-alpine
container_name: zabbix-postgres
environment:
POSTGRES_DB: zabbix
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: CHANGE_YOUR_PASSWORD
volumes:
- ./postgres-data:/var/lib/postgresql/data
networks:
- zabbix-net
restart: unless-stopped
zabbix-server:
image: zabbix/zabbix-server-pgsql:alpine-latest
container_name: zabbix-server
environment:
DB_SERVER_HOST: postgres
POSTGRES_DB: zabbix
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: CHANGE_YOUR_PASSWORD
ZBX_ENABLE_SNMP_TRAPS: "true"
ports:
- "10051:10051"
- "162:162/udp" # SNMPトラップ用
volumes:
- ./alertscripts:/usr/lib/zabbix/alertscripts
- ./externalscripts:/usr/lib/zabbix/externalscripts
depends_on:
- postgres
networks:
- zabbix-net
restart: unless-stopped
zabbix-web:
image: zabbix/zabbix-web-nginx-pgsql:alpine-latest
container_name: zabbix-web
environment:
DB_SERVER_HOST: postgres
POSTGRES_DB: zabbix
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: CHANGE_YOUR_PASSWORD
ZBX_SERVER_HOST: zabbix-server
PHP_TZ: Asia/Tokyo # タイムゾーン設定
ports:
- "8080:8080" # Web UIのポート
depends_on:
- postgres
- zabbix-server
networks:
- zabbix-net
restart: unless-stopped
networks:
zabbix-net:
driver: bridge
注意点:
POSTGRES_PASSWORDのCHANGE_YOUR_PASSWORDは必ず変更してくださいね- タイムゾーンを
Asia/Tokyoにしているので、ログの時刻が日本時間で表示されます - SNMPトラップを有効化しているので、ルーターからのトラップも受信できるようになっています
Container Managerでの起動
起動手順はとってもシンプル。
- DSMのパッケージセンターから「Container Manager」をインストール
- Container Managerを開いて「プロジェクト」タブを選択
- 「新規作成」をクリック
- プロジェクト名を入力(私は「zabbix」にしました)
- 「docker-compose.ymlをアップロード」を選んで、さっき作ったファイルをアップロード
- 「次へ」で設定を確認
- 「完了」でコンテナを起動
起動には数分かかりますが、コンテナの状態が「実行中」になれば準備完了です。
Webブラウザからアクセス
ブラウザからhttp://NASのIPアドレス:8080にアクセスすると、Zabbixのログイン画面が表示されます。
初期ログイン情報はこちら。
- Username: Admin
- Password: zabbix
ログインできたら、セキュリティのためにパスワードは変更しておきましょう。
監視対象の追加
Zabbixが起動できたら、あとは監視したい機器を追加していくだけ。 家庭内だとこんな機器が監視対象になるかなと思います。
- ルーター(SNMPで死活監視やトラフィック監視)
- NAS本体
- その他のサーバー
具体的な設定方法については、また別の記事で書きたいと思います。
まとめ
Synology NASのContainer Managerを使えば、docker-composeで本当に簡単にZabbix環境が構築できました。 難しい設定もなく、数クリックでちゃんとした監視環境が手に入るのは便利ですね。
技術検証としても、家庭内の機器監視としても使えるので、興味がある方はぜひ試してみてください。