zabbix_getの返り値が空白

いつもお世話になっております。

検証環境ではzabbixの監視が行えるよう構築できたのですが、本番環境に適用したところ、
zabbixの監視がうまくいかない(エージェントの状態が緑にならない)状態です。
お力添え頂けませんでしょうか。

■環境
--------------------
zabbix-1.8.10、Firewallの設定なし、ip6tables/iptables/selinux/IPv6は無効化
zabbixサーバ(RHEL6.2):172.31.70.xxx/24
zabbixクライアント(RHEL6.2):172.31.61.xxx/24
--------------------

Web画面のホストタブのエージェントの状態は、サーバは緑色、クライアントは赤色で監視できていません。
(Got empty string from [ホスト名]. Assuming that agent dropped connection because of access permissions)

また、zabbix_agentd.confのHost=とWeb画面のホスト名を統一しているのですが
zabbix_agentd.logに「No active checks on server: host [ホスト名] not monitored」
が出力され続けています。

■実施した切り分け
zabbixサーバで以下を実行
--------------------
# zabbix_get -s 172.31.70.xxx -k agent.version
1.8.10
# zabbix_get -s 172.31.61.xxx -k agent.version
←返り値が空白
# traceroute 172.31.61.xxx
traceroute to 172.31.61.xxx (172.31.61.xxx), 30 hops max, 60 byte packets
1 172.31.70.1 (172.31.70.1) 1.032 ms 1.993 ms 2.046 ms
2 zabbixクライアントのFQDN (172.31.61.xxx) 9.991 ms 10.171 ms 10.383 ms
# zabbix_agentd -t system.cpu.load[,avg1]
system.cpu.load[,avg1] [d|0.000000]
--------------------

zabbixクライアントで以下を実行
--------------------
# zabbix_sender -z 172.31.70.xxx -s ホスト名 -k agent.version -vv
zabbix_sender [8335]: Warning: Key value required
sent: 0; skipped: 1; total: 1
# zabbix_sender -z 172.31.70.xxx -s ホスト名 -k net.tcp.port[,80] -vv
zabbix_sender [9258]: Warning: Key value required
sent: 0; skipped: 1; total: 1
# traceroute 172.31.70.67
traceroute to 172.31.70.xxx (172.31.70.xxx), 30 hops max, 60 byte packets
1 172.31.61.1 (172.31.61.1) 0.530 ms 0.654 ms 0.941 ms
2 172.31.61.2 (172.31.61.2) 4.999 ms 5.002 ms 5.026 ms
3 zabbixサーバのFQDN (172.31.70.xxx) 11.608 ms 11.687 ms 11.895 ms
# zabbix_agentd -t system.cpu.load[,avg1]
system.cpu.load[,avg1] [d|0.030000]
--------------------

zabbix_getの返り値が空白な理由が分からず、切分けに困っております。
何が原因で監視が行えないのか、ご教示頂けませんでしょうか。

以上、よろしくお願い致します。

コメント表示オプション

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

/etc/zabbix/zabbix_agentd.conf内のServerの値が、Zabbix
サーバのIPアドレスになっていますか?

/etc/zabbix/zabbix_agentd.conf内のListenIPの値が、
コメントアウトしてデフォルトの0.0.0.0を利用するように
なっているか、それとも、172.31.61.xxxのように、外部
のネットワークから接続可能なIPアドレスを指定されていま
すか?

ユーザー hirofumi の写真

いつもお世話になっております。
早々のご回答ありがとうございます。

はい。zabbix_agentd.confのServerの値はZabbixサーバのIPアドレスを設定しています。
また、LitenIPの値はデフォルトの0.0.0.0を利用するようにしています。

以上、よろしくお願い致します。

ユーザー TNK の写真

やはり、zabbix_agentd.conf内のServerの値が不適切な設定である
可能性が高いと思われます。
一時的に、zabbix_agentd.conf内のDebugLevelの値を4にして、
zabbix_agentdを再起動してからzabbix_getで値を取得しようとし
てみてください。

/var/log/zabbix/zabbix_agentd.logに何らかのエラーメッセージ
が出力されていませんか?
例えば、以下のようなエラーログです。
<code>
11115:20120116:171407.425 Listener error: Connection from [192.168.2.1] rejected. Allowed server is [192.168.1.1]
</code>

ご確認ください。

ユーザー hirofumi の写真

いつもお世話になっております。
ご回答ありがとうございます。

DebugLevelの値を4にし、コマンドを実行したところ、まさに仰る通りのエラーが出力されました。

---------------------------------------------
14719:20120116:192611.024 Processing request.
14719:20120116:192611.024 Listener error: Connection from [172.31.61.xxx] rejected. Allowed server is [172.31.70.xxx]
---------------------------------------------

/etc/zabbxi/zabbix_agentd.confの設定詳細は以下の通りです。
=================
Server=172.31.70.xxx
Hostname=zabbixクライアントのホスト名(Webインターフェースのホスト名と同一)
ListenIP=0.0.0.0
=================
その他の値は変更しておりません。

また、切分けとして、Serverの値を
・zabbixサーバのホスト名(/etc/hostsに記述したホスト名と同一)
・IPv6「::ffff:172.31.70.xxxx」
としてもzabbix_getの値は空白のままでした。

1点申し忘れておりました。
関係あるか分かりませんが、zabbixサーバ、クライアント共に複数のIPアドレスを所持しています。
------------------
zabbixサーバ
eth0:172.31.70.xxx
eth1:192.168.50.xxx
------------------
zabbixクライアント
eth0:172.31.61.xxx
eth1:192.168.50.yyy
------------------
eth1のネットワークはUPS専用となり、192.168.50.間でも疎通が取れないように設定しています。

以上、よろしくお願い致します。

ユーザー hirofumi の写真

いつもお世話になっております。
現象について改善が見られたので報告します。

経路を見直すことで、Webインターフェースでエージェントの状態が赤になっていた件について、緑になりました。

NGの経路
zabbixサーバ → Firewall(1) → → → → → → zabbixクライアント
zabbixサーバ ← Firewall(1) ← Firewall(2) ← zabbixクライアント

OKの経路
zabbixサーバ → Firewall(1) → zabbixクライアント
zabbixサーバ ← Firewall(1) ← zabbixクライアント

Firewall(1)、(2)ともに10050、10051ポートは開放していたのですが。。。

また、今回の経路変更でzabbix_getの出力結果が変わりました。

====================
# zabbix_get -s 172.31.60.xxx -k agent.version
zabbix_get [19568]: Get value error: *** Cannot connect to [[172.31.60.xxx]:10050]: [110] Connection timed out
====================

返り値が空白ではなくなりましたが、タイムアウトになっております。
ping等のコマンドでは正常にアクセスが行えているのですが、何が問題でしょうか。

以上、よろしくお願い致します。

ユーザー TNK の写真

まず、先に頂いた以下のログについてです。
<code>
14719:20120116:192611.024 Listener error: Connection from [172.31.61.xxx] rejected. Allowed server is [172.31.70.xxx]
</code>
このようなログが出るということは、Serverの設定が不足していま
す。
Zabbixサーバからzabbix_getを利用してこのログが出たということ
は、Firewallでアドレス変換などを行われていたのではないでしょ
うか?
zabbix_agentd.confのServerには、Zabbixサーバに通知するための
IPアドレスと、Zabbixサーバやzabbix_getからの要求を許可するIP
アドレスを指定する必要があります。

この状態の時点であれば、先のログに出力された情報を利用して、
zabbix_agentd.confのServerの値を以下のように設定することで解
決したと思われます。
<code>
Server=172.31.70.xxx,172.31.61.xxx
</code>
注:「172.31.61.xxx」はログに出力されリジェクトされたIPアド
  レスを利用すること

その後、Firewallなどネットワーク関連の設定を変更されたようで
すので、新たに発生した状況の対応策にはならないかもしれません。

次に、
<code>
zabbix_get [19568]: Get value error: *** Cannot connect to [[172.31.60.xxx]:10050]: [110] Connection timed out
</code>
となるということは、Firewallの設定の問題である可能性が非常に
高いと思われます。
Zabbixとは直接関係ないでしょう。

ZabbixサーバからZabbixのクライアントに対して、ポート番号
10050で接続できるよう、設定をご確認下さい。

ユーザー hirofumi の写真

いつもお世話になっております。
ご丁寧なご回答、誠にありがとうございます。

zabbixクライアントのServerの値を172.31.70.xxx,172.31.61.xxxとしたところ、
Firewallの設定は何も変えておりませんが、zabbix_getの値を得ることが出来ました。

おかげさまで、監視が行えるようになりました。
ご助力頂き、ありがとうございます。

以上、よろしくお願い致します。