Top / Zabbix / DockerでZabbixサーバ構築

Dockerで Zabbixサーバ環境を構築したメモ。

サーバの構築

ほぼ、意外と知られていないzabbix公式コンテナイメージ - Qiita この情報ですが、zabbix-java-gateway が抜けてるっぽいので追加してます。

# 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:5.7
# docker run --name zabbix-java-gateway -d zabbix/zabbix-java-gateway:latest
# 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 \
     --link zabbix-java-gateway:zabbix-java-gateway \
     -p 10051:10051 \
     -d zabbix/zabbix-server-mysql:latest
# 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 80:80 \
     -d zabbix/zabbix-web-nginx-mysql:latest

で、http://[Dockerサーバ自体のIP]/ にブラウザでアクセスすればOK。

つづいてエージェント

Dockerのサーバ自体を監視するため、エージェントもインストールしときます。

zabbix-agentのDockerでやるばあい

docker run --name zabbix-agent \
           --link zabbix-server-mysql:zabbix-server \
           -d zabbix/zabbix-agent:latest

ところでこのエージェントは、このDockerサーバ自体を監視したいので入れてるのですが、このエージェントは個別にIPを持ってて、127.0.0.1:10050じゃ繋がらないorz。

# docker exec -it [agentのContainer ID] /bin/bash
bash-4.3# ifconfig

で IPをしらべて、WEB画面のIPアドレス設定を変更しないとダメっぽいですね

Dockerサーバ自体に直接エージェントを入れる場合

もしくは、直接DockerサーバにAgentをインストールします。手順は Zabbix/Zabbix Agentをセットアップする にもありますが、基本、

# wget http://repo.zabbix.com/zabbix/3.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.4-1+xenial_all.deb
# sudo dpkg -i zabbix-release_3.4-1+xenial_all.deb
# sudo apt update
# sudo apt install zabbix-agent

で、OK。

設定は、Zabbix Serverが Docker上のネットワークで起動している事を注意しながら、つまりDockerの動いてるOS上で

# ifconfig
docker0   Link encap:Ethernet  HWaddr 02:42:58:f8:3a:90
          inet addr:172.17.0.1  Bcast:172.17.255.255  Mask:255.255.0.0

とネットワークアドレスを確認しつつ

# cat /etc/zabbix/zabbix_agentd.conf
Server=127.0.0.1,172.17.0.0/16 ← Dockerのネットを指定(3.xからネットワーク指定が可能になった。それ以前はサーバのIPを指定する)
ServerActive=127.0.0.1 ← 変更なし
ListenIP=0.0.0.0 ←いらないかも。
Hostname=Zabbix server

とかでしょうか。動いた実績の最小構成は、

vagrant@ubuntu-xenial:~$ diff /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.20180425
97c97
< Server=127.0.0.1,172.17.0.0/16
---
> Server=127.0.0.1

でした。

最後にZabbixの WEB画面の Zabbix server の設定も、IPを172.17.0.1:10050 にしておけばOKです。127.0.0.1のままだとダメでした。。


この記事は

選択肢 投票
おもしろかった 6  
そうでもない 2  
  • うーん、Photon OSにはAgentいれられないのかなorz..ってことでDockerのAgentをいれるか。 -- きの? 2018-04-24 (火) 14:09:19
  • 6.0-latestではzabbix-web-nginx-mysqlのポートバインドが"-p 80:8080 -p 443:8443"に代わっています -- kin? 2022-05-30 (月) 14:58:15
  • 6.0-latestではzabbix-web-nginx-mysqlのポートバインドが"-p 80:8080 -p 443:8443"に代わっています -- kin? 2022-05-30 (月) 14:58:19
  • 6.0-latestではzabbix-web-nginx-mysqlのポートバインドが"-p 80:8080 -p 443:8443"に代わっています -- kin? 2022-05-30 (月) 14:58:23
  • 6.0-latestではzabbix-web-nginx-mysqlのポートバインドが"-p 80:8080 -p 4

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-04-12 (水) 22:38:07 (606d)