Zabbix-Agent の Listen IP について

度々質問で失礼しております、kozu です。

Zabbix-Agent の設定について確認させて下さい。

Zabbix-Agent をインストールした監視対象が
2つのIPアドレスで TCP:10050 を Listen させる事は可能でしょうか?

○環境
私の監視対象ホストは、全て heartbeat が導入されていますので、
Real IP: 172.16.0.1 を持つ Server1 と、
Real IP: 172.16.0.2 を持つ Server2 が、
状況に合わせて Vertual IP: 10.0.0.1 を互いに持ち合っています。

従って、片方の Server1 が VIP を持ったときに、
172.16.0.1:10050 と、10.0.0.1:10050 で
Listen 出来るようにしたいと考えています。

その為に、zabbix-agent.conf 内で
ListenIP=172.16.0.1
ListenIP=10.0.0.1
と2つ記述してみたのですが、片方だけしか Listen させる事が出来ませんでした。

カンマ区切りでも試しましたが状況は変わらなかったので、
もしかしたら2つの IP で Listen させる事は難しいのかもしれませんが、
是非、こういった事が可能なのかどうかをお伺いしたく。

以上、度々質問ばかりで申し訳ございませんが、よろしくお願いします。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー kodai の写真

こんにちは。

カンマ区切りでも試しましたが状況は変わらなかったので、
もしかしたら2つの IP で Listen させる事は難しいのかもしれませんが、
是非、こういった事が可能なのかどうかをお伺いしたく。

カンマ区切りで2つのIPを指定できるはずなのですが、どのように設定されてダメだったのでしょう?
また、その際にエージェントのログに何か関連しそうな出力はなかったでしょうか?

ユーザー kozu の写真

kodai さん

kozu です。
毎々お世話になっております。

カンマ区切りで2つのIPを指定できるはずなのですが、どのように設定されてダメだったのでしょう?
また、その際にエージェントのログに何か関連しそうな出力はなかったでしょうか?

確かに、カンマ区切りで2つの IP アドレスを指定し、zabbix-agent が起動できる事を確認しました。
しかし実際には、指定した IP で Listen していなかったのです。
zabbix_agentd.log についても確認しましたが、エラーの記載はありませんでした。

以下、現象の詳細になります。

○環境情報
・OS
CentOS5.1

・Version
zabbix-web-1.4.5-1.el5
zabbix-1.4.5-1.el5
zabbix-agent-1.4.5-1.el5

○現象の詳細 (OKの例)
1) Server1 の zabbix_agentd.conf に以下の記述を追加
ListenPort=10050
ListenIP=172.16.0.1

2) Server1 の zabbix-agent を start し、Listen している事を確認
# /etc/rc.d/init.d/zabbix-agent start
Starting zabbix agent: [ OK ]
# netstat -na | grep LISTEN | grep 10050
tcp 0 0 172.16.0.1:10050 0.0.0.0:* LISTEN

3) Server2 の zabbix-server から接続できる事を確認
# telnet 172.16.0.1 10050
Trying 172.16.0.1...
Connected to server.domain.net (172.16.0.1).
Escape character is '^]'.

ZBXDZBX_NOTSUPPORTEDConnection closed by foreign host.

○現象の確認 (NGの例)
1) Server1 の zabbix_agentd.conf に以下の記述を追加
ListenPort=10050
ListenIP=172.16.0.1,10.0.0.1

2) Server1 の zabbix-agent を start し、Listen している事を確認
# /etc/rc.d/init.d/zabbix-agent start
Starting zabbix agent: [ OK ]
# netstat -na | grep LISTEN | grep 10050
tcp 0 0 255.255.255.255:10050 0.0.0.0:* LISTEN

3) Server2 の zabbix-server から接続出来ない事を確認
# telnet 172.16.0.1 10050
Trying 172.16.0.1...
telnet: connect to address 172.16.0.1: Connection refused
telnet: Unable to connect to remote host: Connection refused
# telnet 10.0.0.1 10050
Trying 10.0.0.1...
telnet: connect to address 10.0.0.1: Connection refused
telnet: Unable to connect to remote host: Connection refused

4) Server1 の zabbix-agent を start した時のログの抜粋
2383:20080615:202456 zabbix_agentd started. ZABBIX 1.4.5.
2385:20080615:202456 zabbix_agentd collector started
2386:20080615:202456 zabbix_agentd listener started
2387:20080615:202456 zabbix_agentd listener started
2388:20080615:202456 zabbix_agentd listener started
2389:20080615:202456 zabbix_agentd active check started [172.16.0.2:10051]

以上、長文失礼致します。

ユーザー kodai の写真

私が勘違いしていました。zabbix_agentd.confの設定でカンマ区切りでIPアドレスを指定できるのは「Server」の設定で、「ListenIP」は複数IPを設定することはできないようです。

複数IPでListenしたい場合は、単純に「ListenIP」の設定をコメントアウトすれば、すべてのインターフェースでListenするようになります。

ユーザー kozu の写真

なるほど!
確かにコメントアウトしたら 0.0.0.0:10050 で LISTEN するようになりました。

ありがとうございます、これで VIP に対しても死活監視が行えそうです :-)

これから色々と設定してみたいと思います。