NAT環境での監視について

お世話になります。

「2011-9-27 8:46  NAT越え環境のエージェント利用監視について」
を確認させて頂きましたが、私にはちょっと理解できませんでしたので
新規で質問させて頂きます。

<環境>
 OS  :CentOS5.5
 Zabbix:1.8.4

+--------------+   +--NAT-------------+    +------------------+
|Zabbixサーバ   | → |   → 192.168.0.19| → |Zabbixエージェント  |
|(192.168.0.11) |   |               |    |(10.224.102.194) |
|PORT:10051   | ← |10.224.101.35 ←  | ←  |PORT:10050     |
+--------------+   +------------------+     +------------------+

<質問内容>

 上記の通りサーバ、エージェント間でNATしている場合ですが
 「2011-9-27 8:46  NAT越え環境のエージェント利用監視について」の
 (1)(2)両方に合致していると思われ、エージェントを使用した監視は何もできない
 ように思えるのですが認識はあっていますでしょうか。

  >>(1.) 監視サーバがNAT越しでプライベートIP、監視対象がパブリックIPをもつ
  >>(2.) 監視サーバがパブリックIP、監視対象がNAT越しでプライベートIPをもつ

 当方で実施したい内容は以下です。(エージェント不要のタイプの含みますが)
 ・シンプルチェック →PING、ポート監視など
 ・計算       →CPU、メモリ使用率など
 ・外部チェック   →スクリプト起動による監視
 ・Zabbixトラッパー →スクリプト起動による監視
 ・Zabbixエージェント(アクティブ)→リソース監視、ログ監視

  ※Zabbixエージェントも使用したいところですが、
   最悪はZabbixエージェント(アクティブ)が使えれば良いと思っています。

 この監視を実現するためには、どのように対応すべきでしょうか。
 「conf記述のお作法」や「NAT設定のあり方」などにつきまして
 ご教授頂けると幸いです。

コメント表示オプション

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

<質問内容>
 上記の通りサーバ、エージェント間でNATしている場合ですが
 「2011-9-27 8:46  NAT越え環境のエージェント利用監視について」の
 (1)(2)両方に合致していると思われ、エージェントを使用した監視は何もできない
 ように思えるのですが認識はあっていますでしょうか。

単にIPが書かれているだけで、どのような設定をされているかがわ
かりませんが、設定によっては監視できる場合があります。

 当方で実施したい内容は以下です。(エージェント不要のタイプの含みますが)
 ・シンプルチェック →PING、ポート監視など
 ・計算       →CPU、メモリ使用率など
 ・外部チェック   →スクリプト起動による監視
 ・Zabbixトラッパー →スクリプト起動による監視
 ・Zabbixエージェント(アクティブ)→リソース監視、ログ監視

  ※Zabbixエージェントも使用したいところですが、
   最悪はZabbixエージェント(アクティブ)が使えれば良いと思っています。

シンプルチェックに関しては、実際にZabbixサーバからZabbixエー
ジェントを動かしている監視対象に対してpingを実行してレスポン
スが得られるような環境であれば、まず問題なく監視できると思い
ます。

計算アイテムは、計算する元のデータ(アイテム)が無ければ利用で
きません。
ですので、CPUの負荷状況やメモリの利用状況を取得されたいので
あれば、Zabbixエージェントを導入して機能させるか、その他の何
らかの手段を利用して値を取得してくることが必要です。

外部チェックは、具体的にどのようなことをされたいのかがわかり
ませんので、できるかどうかは判断できません。

Zabbixトラッパーは、zabbix_senderなどを実行する環境から、
Zabbixサーバに対してTCP/IPのポート番号10051で接続できればよ
いのですが、ご提示頂いている情報では判断できないので、実際に
やってみて頂くのが確実だと思います。

Zabbixエージェント(アクティブ)に関しても、そのエージェントを
導入したサーバからZabbixサーバに対してTCP/IPのポート番号10051
で接続できればOKです。

 この監視を実現するためには、どのように対応すべきでしょうか。
 「conf記述のお作法」や「NAT設定のあり方」などにつきまして
 ご教授頂けると幸いです。

Zabbixサーバ側の設定としては、外部機器からの接続を許可するた
めに、zabbix_server.conf内のListenIPの値を、デフォルトの値で
ある0.0.0.0のままか、以下のようにZabbixサーバ自体に設定して
いるIPアドレスに指定します。
<code>
ListenIP=192.168.0.11
</code>

Zabbixエージェント側の設定としては、zabbix_agentd.conf内の
Serverの値に注意が必要です。
ここには、ZabbixサーバがZabbixエージェントにアクセスしてくる
ときのIPアドレスを設定することが必要ですが、NAT機器をはさん
でいるので、パブリック側のIPアドレスになります。
ですので、ご提示いただいた絵の理解に誤りがなければ、恐らく、
10.224.105.35を指定することになるのではないでしょうか。

一番問題になるのは、NAT機器の設定です。
Zabbixエージェントを導入したサーバから、Zabbixサーバへ接続で
きるように、例えば、NAT機器のパブリック側のポート番号10051に
接続してきたら、Zabbixサーバの192.168.0.11のポート番号10051
に転送するというような設定が必要になります。

実際に環境を構築して再確認は行っていませんので、何箇所か訂正
が必要となるかもしれませんが、概念的には上記のような感じにな
ると思います。

ユーザー kodai の写真

NATの設定にもよりますが、一般的な「複数の機器のIPを1つに変換して外部との通信を行う」タイプのNATで、NATの内側にZabbixサーバがあることを想定して話をします。

Zabbixの通信は特に特殊なものではなく、他のTCP通信と同様に考えて大丈夫です。Zabbixエージェント、シンプルチェックなどは

- Zabbixサーバ : クライアントPC
- Zabbixエージェント(もしくは監視対象サーバ) : Webサーバ

と同じです。NATの内側のIPのanyポートから、NATの外側のサーバの特定ポートにリクエストが飛びます。NATの内側からインターネットのwebサーバにアクセスできることを考えれば、動作することが分かりやすいと思います。

逆に、Zabbixエージェント(アクティブ)の場合は、エージェントからサーバにTCP通信が行われるので、上記の例でいうとWebサーバからクライアントPC(外部から内部)にアクセスする形になり、NATに特別な設定がないと通信はできないです。

この監視を実現するためには、どのように対応すべきでしょうか。「conf記述のお作法」や「NAT設定のあり方」などにつきましてご教授頂けると幸いです。

少なくとも、NATの設定や「どのように設定すべきか」というのは環境によるため回答は難しいと思います。的確な回答を得られたいのでしたら、現在のNATの状況や、実際に試されてうまくいかなかった点などを書かれるのが良いと思います。