Zabbix Documentation 1.8

2.23.04.04.2 (current)In development:4.4 (devel)Unsupported:1.82.02.43.23.4

User Tools

Site Tools


Sidebar

jp:manual:distributed_monitoring

15 分散監視

Zabbix can be configured to support hierarchical distributed monitoring.

15.1 目標

分散監視には、様々な目標があります。

  • 単一または複数の拠点からの監視処理全体のコントロール:

Zabbix管理者は、単一拠点のZabbixウェブフロントエンドから全ノードの設定をコントロールできます。

  • 階層型監視:

複数階層から構成される複雑な環境の監視に使用します。

  • 複雑で大規模な環境の監視:

特に地理的に分散する複数の拠点を監視する場合に役に立ちます。

  • 負荷の高いZabbixサーバのオーバーヘッドの分散:

1台のZabbixサーバで数千台のホストを監視する必要がある場合でも対応できます。

2010/08/08 07:32

15.2 概要

Zabbixを使用すると、効果的かつ信頼できる方法で分散ITインフラストラクチャを監視できます。分散設定全体の設定は、単一拠点で共通のウェブインタフェースから実行できます。

Zabbixは、分散設定で最大1000個のノードをサポートします。各ノードは、その場所の監視を行います。ノードはローカルに設定したり、マスターノードから設定することができます。マスターノードには、全ての子ノードの設定データのコピーが置かれています。子ノードの設定は、オフラインモード、すなわちマスターノードと子ノードが接続されていない状態でも実行できます。

階層型分散監視を使用すると、ノードをツリー構造で構成できます。各ノードは、そのマスターノードにのみレポートします。

全てのノードは、通信障害が発生した後も動作可能であり、ヒストリ情報とイベントはローカルに保存されます。通信が復旧したときに子ノードがマスターノードにデータを送信するように設定できます。

Zabbix分散設定に新しいノードを接続したり、分散設定からノードを切断しても、分散設定の機能は一切損なわれることはなく、要求されるノードをリスタートする必要もありません。

各ノードは独自に設定することができ、通常のZabbixサーバとして動作します。

2010/08/08 07:32

15.3 設定

15.3.1 ノードの設定

ノードのパラメータを以下に示します。

パラメータ 説明
名前 一意なノード名。
Id 一意なノードID。
タイプ ローカルl – ローカルノード
リモート – リモートノード
タイムゾーン ノードのタイムゾーン。ノード間で時間関連のデータを転送する際に、タイムスタンプは自動的にローカルのタイムゾーンに変換されます。
IPアドレス ノードのIPアドレス。ZabbixトラッパーはこのIPアドレスで待ち受ける必要があります。
ポート ノードのポート番号。Zabbixトラッパーはこのポート番号で待ち受ける必要があります。デフォルトは10051です。
ヒストリの保存期間 (秒) ローカル以外のヒストリデータにのみ適用されます。ノードのヒストリを保存する期間(秒単位)を指定します。
トレンドの保存期間 (秒) ローカル以外のトレンドデータにのみ適用されます。ノードのトレンドを保存する期間(秒単位)を指定します。

15.3.2 単純な設定

ここでは、中央ノード(ノード名: Central Node)と子ノード(ノード名: Child Node)から構成される単純な設定を例として説明します。

中央ノードは子ノードの設定を完全にコントロールします。子ノードは中央ノードにイベント、ヒストリ、およびトレンドをレポートします。

中央ノードのNodeIDは1、子ノードのNodeIDは2です。

中央ノードのIPアドレス: 192.168.3.2, ポート番号: 10051
子ノードのIPアドレス: 192.168.3.5, ポート番号: 15052

中央ノードの設定

ステップ1 Zabbixのインストール。

標準のインストール手順に従ってデータベースを作成し、Zabbixのフロントエンドとバイナリをインストールします。

ステップ2 サーバの設定ファイルにNodeIDを設定。

zabbix_server.confファイルに次の行を設定します:

NodeID=1

ステップ3 データベースデータの変換。

Zabbixサーバのバイナリを実行して、最初のノードが使用できるように一意なIDを変換します。

cd bin 
./zabbix_server -n 1 -c /etc/zabbix/zabbix_server.conf 
Converting tables .................................................................. done.

変換完了です。

このコマンドは1回だけ実行する必要があります。ここで指定したオプションは、Zabbixサーバを起動する際に指定する必要はありません。

ステップ4 ノードパラメータの設定

ステップ5 子ノードの追加。

ステップ6 マスターノードの起動。

サーバのログファイルの起動メッセージに、設定したNodeIDが表示されることを確認します:

31754:20070629:150342 server #16 started [Node watcher. Node ID:1]
子ノードの設定

ステップ1 Zabbixのインストール。

標準のインストール手順に従ってデータベースを作成し、Zabbixのフロントエンドとバイナリをインストールします。

ステップ2 サーバの設定ファイルにNodeIDを設定。

zabbix_server.confファイルに次の行を設定します:

NodeID=2

ステップ3 データベースデータの変換。

Zabbixサーバのバイナリを実行して、最初のノードが使用できるように一意なIDを変換します。

cd bin 
./zabbix_server -n 2 -c /etc/zabbix/zabbix_server.conf 
Converting tables .................................................................. done.

変換完了です。

このコマンドは1回だけ実行する必要があります。ここで指定したオプションは、Zabbixサーバを起動する際に指定する必要はありません。

ステップ4 ノードパラメータの設定

ステップ5 マスターノードの追加。

ステップ6 子ノードの起動。

サーバのログファイルの起動メッセージに、設定したNodeIDが表示されることを確認します:

27524:20070629:150622 server #9 started [Node watcher. Node ID:2]
動作確認

ノードを定義すると、有効なノードの選択肢として自動的に表示されます。

子ノードを監視するためのホストを追加して、マスターノードにイベントが送信されることを確認します。

15.3.3 より複雑な設定

ここでは、7個のノードで構成される設定例について説明します。各ノードはローカル(ローカルのウェブインタフェースを使用)で、またはそのマスターノードから設定できます。

この例では、Rigaという名前のノード(ノード4)が全ての子ノードからイベントを収集します。さらに、各ノードのヒストリ情報も収集するように設定することもできます。

2010/08/08 07:33

15.4 プラットフォームの独立性

ノードは、他のノードと無関係に、独自のプラットフォーム(OS、ハードウェア)およびデータベースエンジンを使用できます。また、子ノードはZabbixフロントエンドを使用しなくてもインストールできます。

実用的には、SQLiteまたはMySQL MyISAMが動作するZabbixサーバには多少能力が劣るハードウェアを使用して、上位レベルのノードには高性能なハードウェアとMySQL InnoDB、Oracle、またはPostgreSQLのいずれかのバックエンドを組み合わせて使用する方法が考えられます。

2010/08/08 07:34

15.5 単一ノードの設定

分散環境では各ノードに一意なノードIDを割り当てる必要があります。そのための詳細なステップを以下に示します。

ステップ1

標準のインストール手順の実行

標準のインストール手順を実行します。ただし、Zabbixサーバは起動しないでください。続いてZabbixフロントエンドのインストールと設定を行い、Zabbixデータベースを作成してdata.sqlからデータを追加します。

ステップ2

zabbix_server.confの設定

NodeIDをZabbixサーバ設定ファイルに追加します。NodeIDは一意なノードIDである必要があります。

ステップ3

マスターノードと子ノードの設定

Zabbixフロントエンドを使用して、ステップ2で設定したノードと直接通信するノードの詳細を設定します。IPアドレスとポート番号が全て正確に設定されていることを確認します。

ステップ4

Zabbixノードの起動。

Zabbixサーバを起動します:

shell> ./zabbix_server

全て正しく設定されている場合、Zabbixノードは自動的に設定および分散設定内の全ノードとのデータ交換を開始します。サーバログファイルには、以下のようなメッセージが表示されます。

... 
11656:20061129:171614 NODE 2: Sending data of node 2 to node 1 datalen 3522738 
11656:20061129:171614 NODE 2: Sending data of node 2 to node 1 datalen 20624 
...
2010/08/08 07:35

15.6 ノードの切り替え

分散設定内のノードに接続する場合、GUIの右上隅にある接続可能な子ノードのリストを使用します。表示されているのは、現在のノードです。

GUIに表示される情報は全て、このリストで選択したノードの情報です。

2010/08/08 07:35

15.7 データフロー

15.7.1 子ノードからマスターノード

子ノードはそれぞれ、設定変更、ヒストリデータ、およびイベントをそのマスターノードに定期的に送信します。

データ 頻度
設定の変更 120秒ごと
イベント 10秒ごと。
ヒストリ 10秒ごと。

通信障害が発生した場合、子ノードはデータを再送信します。

トレンドは受信したヒストリデータに基づいてローカルに計算されます。

ノード間で運用データが送信されることはありません。たとえば、アイテム関連の情報(最終チェック、最新値など)はローカルにのみ存在します。

イベントとヒストリの送信をコントロールするには、設定パラメータNodeNoEventsNodeNoHistoryを使用します。

15.7.2 マスターノードから子ノード

マスターノード(少なくとも1つの子ノードを持つノード)はそれぞれ、設定変更を子ノードに(直接またはマスターノードに直接接続されている他の子ノードを経由して)定期的に送信します。

データ 頻度
設定の変更 120秒ごと

マスターノードの設定が子ノードに送信されることはありません。

15.7.3 ファイアーウォールの設定

ノード間通信で使用するのはTCPプロトコルだけです。

データフロー 送信元ポート 送信先ポート
子ノードからマスターノード 任意 10051
マスターノードから子ノード 任意 10051

これはZabbix trapperが使用するデフォルトポートです。

2010/08/08 07:36

15.8 パフォーマンスに関する検討事項

どのノードも分散設定では多めの処理リソースを必要とします。マスターノードには、十分な処理能力およびローカルデータと子ノードから受信した全データを保存できるだけの容量が必要です。また、ネットワーク通信には、新しいデータを遅延なく転送できるだけの速度が要求されます。

2010/08/08 07:36