ActiveCheckのみ(10051だけ穴開け)の監視は可能でしょうか?

以下の件を実現したいのですがうまく行きません…。
もし原因等わかればご教授いただけないでしょうか。

【要件】
◆「エージェント ⇒ マネージャ 10051ポート」の穴開けをし、ActiveCheckのみの監視を実施したい。
 ・マネージャからエージェントへは、pingも10050も穴を閉じている

【背景】
◆マネージャーとエージェントが別環境に存在する。なるべくセキュアにするため、FWで穴を空けるのは、
 エージェントからのoutgoingのみとしたい。

【Version】
◆マネージャー2.2.3
◆エージェント:2.2.6

【状況】
◆エージェントのログには以下が出力されております。
  active check configuration update from [zabbix-web-p-00:10051] started to fail (ZBX_TCP_READ() failed: [4] Interrupted system call)

◆tcpdumpを見てみると、エージェントからマネージャーへは通信できています。
 マネージャーからエージェントへackを送っているようなのですが、エージェント側で受信できていないように見えます。

◆zabbixのGUIでホストを見てみると、Zマークは灰色のままです。
 (ちなみにこのエージェントには、ActiveCheckのアイテムしか存在しません)

お手数ですがよろしくお願い致します。

コメント表示オプション

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

Zabbixサーバ側から接続できなくても構いませんが、TCP/IPの通信
のレスポンスまでFirewallで制限されているのかもしれません。

Firewallの設定として、Zabbixサーバ側からZabbixエージェント側
に流れるパケットもすべて止めてしまっていませんか?

Zマークは、Zabbixエージェントから値を受け取れた時に更新され
ると思います。

ユーザー KAZ の写真

tomozo6さん

ZマークはZabbix エージェント(アクティブ)だけだと灰色のままだったような…

active check configuration update from [zabbix-web-p-00:10051] started to fail (ZBX_TCP_READ() failed: [4] Interrupted system call)

システムコールに割り込みが発生してZabbixサーバから受信ができていないようです。
Zabbixエージェント再起動してもこのエラーが出るなら、FireWallの接待かもしれません。
何をどう設定しましたか?


◆zabbixのGUIでホストを見てみると、Zマークは灰色のままです。
 (ちなみにこのエージェントには、ActiveCheckのアイテムしか存在しません)

この状態では灰色ですね…A(^^;

ユーザー TNK の写真

試してみたら、アイテムがアクティブのみだとZマークは緑色にな
りませんでした。

ユーザー heya の写真

こんにちは。

> ・マネージャからエージェントへは、pingも10050も穴を閉じている
とのことなので、アイテムの情報をサーバーからエージェントに伝えられないのではないでしょうか。
Zabbixエージェント(アクティブ) でも、「何の値を何秒間隔で取得する」という情報はサーバーから伝える必要があるので、サーバー→エージェントの通信は拒否したらダメだったような。
#Zabbixトラッパーだとどうなんですかね?大丈夫そうな気もするのですが、未確認。

↑これだけだと微妙に外れているような気もするので、補足。
エージェントは、zabbix_agentd.confのRefreshActiveChecksで設定した時間間隔でサーバーにアイテムの情報を問い合わせに行きます。その返事が受け取れないとまずい、という話です。サーバーがエージェントに返す応答も止めてませんか?というのがお二人のおっしゃっていることだと思います。
少し古いですが、参考:http://www.zabbix.jp/node/523

ユーザー tomozo6 の写真

KAZさん TNKさん heyaさん

ご回答いただきありがとうございます。

> Zabbixエージェント再起動してもこのエラーが出るなら、FireWallの接待かもしれません。
> 何をどう設定しましたか?
はい。エージェントを再起動しても同じエラーが出力されます。
FireWallの設定は、外部クラウド環境なのでハイポートのoutgoing穴開けをGUIで設定しただけです…。

> Firewallの設定として、Zabbixサーバ側からZabbixエージェント側
> に流れるパケットもすべて止めてしまっていませんか?
ご指摘いただいた点、外部クラウド環境に問い合わせをしてみようと思います。
ちなみにエージェントからマネージャへの telnet 10051は通るのですが、これは関係ありますでしょうか?

> Zabbixエージェント(アクティブ) でも、「何の値を何秒間隔で取得する」という情報はサーバーから伝える必要があるので、
> サーバー→エージェントの通信は拒否したらダメだったような。
「何の値を何秒間隔で取得する」という情報は
エージェントからマネージャーへのTCP通信確立後、そのレスポンスで返しているのかと思っておりました。
heyaさんの言うとおりであった場合は、マネージャからエージェントへの10050も必須ということになりそうですね…。

ユーザー TNK の写真

「何の値を何秒間隔で取得する」という情報は
エージェントからマネージャーへのTCP通信確立後、そのレスポンスで返しているのかと思っておりました。
heyaさんの言うとおりであった場合は、マネージャからエージェントへの10050も必須ということになりそうですね…。

サーバ側からエージェント側への10050番を利用した接続は、アイ
テムが「Zabbixエージェント(アクティブ)」だけなのであれば必須
ではありません。

もしかして、zabbix_agentd.confのServerActiveの値は設定されま
したか?
設定されていないのであれば、ServerActiveの値として、Zabbixサ
ーバのIPを設定してZabbixエージェントを再起動してみてください。

ユーザー tomozo6 の写真

KAZさん TNKさん heyaさん

ご回答いただきありがとうございます。

無事ActiveCheckのみ(10051だけ穴開け)で監視することができました。
やはり原因は、外部クラウド環境のFWでした。
レスポンスも通すよう設定してもらったところ、無事アイテムを取得することができました。

いろいろ相談にのっていただきありがとうございました。