質問: CentOS7を使用しています。 DockerでZabbix Serverをセットアップしました。 ``` sudo docker run -d --restart=always -e LANG=ja_JP.UTF-8 --privileged --name zabb ix -h zabbix -p 80:80 -p 10051:10051 docker.io/centos /sbin/init ``` セットアップ後、SNMPを使ったスイッチトラフィックなどは監視できています。 サーバホストにZabbix Agentをインストールしました。Dockerをセットアップした同一サーバです。 構成としては以下の通りです。 > > ・ホストサーバ IPアドレス: 192.168.1.130 > > ・Dockerコンテナ(Agent)の内部IPアドレス: 172.17.0.4 > > > ホスト側Agentの/etc/zabbix/zabbix_agentd.confの設定は、 ``` Server=192.168.1.130 ``` としています。 Server側ではホスト側Agentを監視するのに > > 192.168.1.130 port 10050 > > > の設定を行っています。 しかし、ホストのAgentは監視できなく、 /var/log/zabbix/zabbix_agentd.log では ``` 13935:20170415:153500.521 failed to accept an incoming connection: connection from "172.17.0.4" rejected, allowed hosts: "192.168.1.130" ``` のエラーが出ています。 どうやらzabbix_agentd.confのServerは許可IPのようですが、この許可IPはdockerを作り直すたびにIPアドレスが変化します。 > > [container: Zabbix Server] -> 192.168.1.130:port10050 -> [host: Zabbix Agent] > > ※ Zabbix AgentへのSource IPは192.168.1.130 or 127.0.01 > > > のイメージを持っていましたが、containerのlocal IPのようです。 こちらcontainerを作り直してもServerやzabbix_agentd.confを変えなくてもいいように設定するにはどうしたらいいのでしょうか? ご存知の方、ご教示お願いします。
回答: 私も同じ問題で悩んでいましたが、以下の方法で解決しました。 1.Dockerホスト上にブリッジネットワークを作成しする 2.Zabbix Serverコンテナを起動する時に1で作成したネットワークを利用しかつIPアドレスを固定する 3./etc/zabbix/zabbix_agentd.confのServerに2で指定したIPアドレスを記述する