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 - 投稿数: 4740
/etc/zabbix/zabbix_agentd.conf内のServerの値が、Zabbix
サーバのIPアドレスになっていますか?
/etc/zabbix/zabbix_agentd.conf内のListenIPの値が、
コメントアウトしてデフォルトの0.0.0.0を利用するように
なっているか、それとも、172.31.61.xxxのように、外部
のネットワークから接続可能なIPアドレスを指定されていま
すか?
hirofumi - 投稿数: 43
いつもお世話になっております。
早々のご回答ありがとうございます。
はい。zabbix_agentd.confのServerの値はZabbixサーバのIPアドレスを設定しています。
また、LitenIPの値はデフォルトの0.0.0.0を利用するようにしています。
以上、よろしくお願い致します。
TNK - 投稿数: 4740
やはり、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 - 投稿数: 43
いつもお世話になっております。
ご回答ありがとうございます。
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 - 投稿数: 43
いつもお世話になっております。
現象について改善が見られたので報告します。
経路を見直すことで、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 - 投稿数: 4740
まず、先に頂いた以下のログについてです。
<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 - 投稿数: 43
いつもお世話になっております。
ご丁寧なご回答、誠にありがとうございます。
zabbixクライアントのServerの値を172.31.70.xxx,172.31.61.xxxとしたところ、
Firewallの設定は何も変えておりませんが、zabbix_getの値を得ることが出来ました。
おかげさまで、監視が行えるようになりました。
ご助力頂き、ありがとうございます。
以上、よろしくお願い致します。