Pandora:Documentation ja:Remote Monitoring

From Pandora FMS Wiki

Jump to: navigation, search

Pandora FMS ドキュメント一覧に戻る

リモートモニタリング

概要

Pandora FMS ネットワークサーバは、集中的にリモートからテストを実行することができる重要な要素です。データサーバとは逆に、ネットワークサーバは複数のプロセスキューを通してタスクを実行します。ネットワークサーバはまた、他のネットワークサーバと共にバランシング動作をしたり、他のネットワークサーバがダウンした時に、そのサーバと同等の処理を実行する代替えとして動作することができます。Pandora における HA の詳細については、それに関する章を参照してください。

ネットワークサーバは、それに割り当てられたモジュールのみと動作します。もちろん、ネットワークテストなので、ネットワークサーバはテストをする対象がネットワーク的に通信できないといけません (IPアドレスやポート)。対象システムのポートが開いて無かったりルーティングがない場合は、モニタできません。ファイアーウォールの存在やネットワークのルーティングに関しては、Pandora FMS では何ともできません。これらの理由により発生する問題は、Pandora FMS の特別な設定で解決するわけでもありません。

リモートネットワークモジュール

Pandora FMS のネットワークモジュールは、リモートモニタリングタスクを実行します。リモートで実行するタスクは、次の 3つに分類されます。

ICMP テスト

Ping に答えるか (remote_icmp_proc) または、ミリ秒での応答があるか (remote_icmp) どうかをテストします。両方のテストは、ネットワークモジュールが割り当てられたエージェントに対して、ネットワークサーバで実行されます。

TCP テスト

モジュールで設定された TCP ポートが開いているかをリモートからチェックします。加えて、テキスト文字列を送ることもできます ("^M" は、改行を意味します)。また、通信が正しいかどうかをチェックするために、応答文字列を確認することもできます。これによりプロトコルチェックの実装が簡単にできます。例えば、GET / HTTP/1.0^M^M という文字列を送信し、200 OK を受信することでウェブサーバが生きているかどうかをチェックできます。

SNMP テスト

SNMP が有効になっていて、インタフェースの状態やネットワークトラフィックなどの状態を取得できるるようになっている場合、リモートから SNMP ポーリングを行うことができます。 詳細は、Pandora FMS での SNMP の説明を参照ください (以降にあります)。

Pandora 1.3 Network&DataServer Arch.png

まとめると、ネットワークサーバは、それぞれのエージェントに割り当てられた異なるネットワークテストを実行します。それぞれのエージェントはネットワークサーバに割り当てられ、実行結果は Pandora FMS システムのデータベースに保存されます。

ネットワークモニタリングのための一般的なモジュールの設定

リモートからサービス (FTP、SSH など) をモニタするためには、最初にサービスをモニタするための通信を行うエージェントを作成します。

Pandora FMS コンソールにて、管理メニューの リソース(Resources) > エージェント管理(Manage agents) を使います。



Anvi.jpg



次の画面で、エージェントの作成 ボタンをクリックします。



Bibi.jpg


新しいエージェントの情報を入力して、エージェントの作成 をクリックします。



Raro.jpg


エージェントを作成したあと、上のプルダウンメニューからモジュールを選択します。ここで、「ネットワークサーバモジュールの新規作成」を選択し、作成 ボタンを押します。



Sasa.jpg


以下のフォームで、ネットワークコンポーネントモジュールを選択し、右側のドロップダウンメニューで必要なチェックを見つけます。この例では、Host Alive (ping 疎通確認) を選択しています。これはマシンがネットワークに接続されているかどうかを確認するために、ping 応答をチェックします。



Alive.jpg


拡張オプションはのちほど説明します。モジュールは、エージェントの IP アドレスを取得しています。変更もできます。モジュールの定義が完了したら、作成(Create)ボタンをクリックしてください。

以下の画面では、エージェントのモジュールが表示されています。既存の Keepalive モジュール(エージェントと共に作成)と、追加した 'Host Alive' モジュールがあります。



Kiji.jpg


見ての通り、モジュールでワーニングが出ています。ワーニングは、モジュールが追加されたばかりで、まだデータを受信していないということを意味しています。一度データを受信すると、ワーニングは消えます。

作成したモジュールのデータを見るには、上の方にある参照メニューをクリックします。収集した情報が表示されます。



Keso.jpg


他の種類のネットワークチェックを追加するには、上記と同じ要領で他の種類のモジュールを選択してください。

ICMP モニタリング

前述の例は、ICMP モニタリングの例でしたが、重要で正確な情報を提供する、より基本的かつ簡単なチェック手法があります。ICMP チェックには次の 2つの種類があります。

icmp_proc は、IP アドレスが応答するかどうかの (ping) チェックを行います。

icmp_data は、応答遅延のチェックを行います。IP アドレスに対して ICMP 応答にミリ秒単位でどれだけかかったかを確認します。

TCP モニタリング

TCP チェックは、ポートの状態や TCP サービスの状態を確認することができます。

TCP のテストでは、2つのフィールドがあります。

Cap5 snmp 9.png

TCP のチェックは、デフォルトでは単純にポートが開いているかどうかを確認します。オプションで、テキスト文字列の送信と、それの応答を受信できます。

通信が正常に行われているかをチェックするために、テキスト文字列を送り ("^M" は、改行を表します) その応答を確認することができます。これにより簡単なプロトコルチェックが可能です。例えば、ウェブサーバに次の文字列を送信し、

 GET / HTTP/1.0^M^M 

次の応答を確認するとで、正常かどうかの確認ができます。

200 OK

これらは、TCP 送信文字列および、TCP 受信文字列フィールドに定義します。

TCP 送信文字列

TCP ポートに送信するパラメータを設定します。^M は、改行コードの送信を意味します。複数の送信・応答文字列を定義するには、"|" で区切ってください。

TCP 受信文字列

TCP 接続で受信する応答文字列を設定します。複数の送信・応答文字列を定義する場合は、それぞれを "|" 文字で区切ってください。

Pandora FMS の TCP チェックでできるのは、ポートが開いているかどうかや応答があるかどうかだけではありません。複数ステップで、データを送信し、それの応答文字列を見ることができます。すべての手順が正しい場合に、正常と判断させることができます。

複数ステップで Pandora FMS の応答チェックの仕組を利用するには、各ステップの文字列を | で区切ります。

SMTP 接続の例を以下に示します。

R: 220 mail.supersmtp.com Blah blah blah
S: HELO myhostname.com
R: 250 myhostname.com
S: MAIL FROM: 
R: 250 OK
S: RCPT TO: 
R: 250 OK
S: DATA
R: 354 Start mail input; end with .
S: .......your mail here........
S: .
R: 250 OK
S: QUIT
R: 221 mail.supersmtp.com Service closing blah blah blah

これをチェックしたい場合、各フィールドに次のように定義します。

TCP 送信文字列

HELO myhostname.com^M|MAIL FROM: ^M| RCPT TO: ^M

TCP 受信文字列

250|250|250

最初の 3つのステップが OK (コード 250) であれば、SMTP は正常です。メールを実際に送信する必要はありません (必要であればそのような設定も可能です)。これにより、プレーンテキストを用いたプロトコルに対する TCP チェックが実現できます。

SNMP モニタリング

SNMP モニタリングの概要

SNMP モニタリングに関して話をする場合、ポーリングとトラップは区別することが重要です。SNMP ポーリングは、Pandora がルータやスイッチ (また、snmp エージェントをインストールしたサーバ) など SNMP デバイスに対して snmpget コマンドを実行することにより実施されます。これは、(指定した秒間ごとに )定期的に実行される処理です。逆に、SNMP トラップの受信は非同期処理です (いつ発生するかはわかりません)。一般的には、デバイスからの "アラート" を受信するのに使われます。例えば、スイッチのポートダウンや、筐体の温度上昇が発生したような場合が該当します。

SNMP ポーリングを利用するには、Pandora のネットワークモジュールの作成で SNMP モジュールを追加すれば良いだけです。多くのデータは、インクリメンタル (generic_data_inc) です。たとえば、値を要求すると、デバイスが稼働し始めた時からの合計値を返します。したがって、ある期間のデータ量を計測したい場合は、一つ前の値との差を見る必要があります。これにより秒間のデータを得ることができます。この処理は、Pandora の generic_data_inc を利用することにより実施できます。

SNMPトラップの利用は、全く異なります。(SNMP コンソール以外は) 特に設定する必要なく、任意のデバイスからトラップを受信することができます。トラップを受信すると、SNMP コンソールに表示されます。

IP エージェントや custom data (トラップ内で定義するデータ) で、OID (3.4.1.1.4.5.24.2 といったようなトラップを判別するコード) をベースにしたアラートの定義が可能です。エージェントの特定のテキストモジュールに情報をコピーするようにもできます。モジュールを定義すると、SNMP トラップによって転送処理が呼び出されます。

Pandora FMS は、SNMP をサポートしているどんなデバイスでも対応します。現在、SNMP v1, v2, v2c および v3 に対応しています。

Pandora FMS は、SNMP に個別の OID を利用します。Pandora FMS での個々の OID は、ネットワークモジュールとして定義することになります。例えば、24ポートの Cisco Catalyst スイッチをモニタする場合、各ポートの状態、入力トラフィック、出力トラフィックで、計 72 個のモジュール (24 x 3) を定義することになります。

SNMP デバイスを扱うは次に示す項目が必要です。

  • SNMP プロトコルがどのようなもので、どのように動作するかを知る必要があります。詳細は、IETF から公開されている RFC3411 に示されています。
  • リモートデバイスの IP および SNMP コミュニティを知る必要があります。
  • ネットワークサーバが SNMP アクセスできるように、デバイスの SNMP 管理を有効にする必要があります。

このネットワークサーバは、ネットワークモジュールを定義するときにエージェントに割り当てられます。サーバがダウンしたときに他のサーバからアクセスをするような場合、他の IP アドレスからアクセスが発生するということを理解してください。

  • リモートデバイスのチェックをしたい特定の OID を知る必要があります。
  • デバイスが返す値をどのように扱えばよいかを知る必要があります。SNMP デバイスは、それぞれ異なるファーマットでデータを返します。

Pandora FMS は、日にちや時間に変換されない timetick データを除き、ほとんどすべてのデータを扱うことができます。カウンタデータは、Pandora が remote_snmp_inc として管理する特別重要なものです。それは、数値データとしてではなく、カウンタとして認識されます。多くの SNMP データはカウンタ値になっています。それをモニタするためには、remote_snmp_inc として設定する必要があります。

エージェントからの SNMP モニタリング

バージョン 3.2 から、Windows エージェントからも SNMP の情報を取得することができるようになりました。Unix/Linux では、snmpget が以前からありましたが、Windows システムにはなく別途インストールするのは簡単ではありませんでした。

我々は、Windows エージェントにデフォルトで snmpget.exe (net-snmp プロジェクトの一部で BSD ライセンスです) を組み込み、基本的な MIB および snmpget.exe ユーティリティを呼び出すためのラッパースクリプトを追加しています。

これを利用することにより、エージェントから SNMP でエージェントからアクセスできるリモートシステムの情報を取得することができます。これは、"サテライトエージェント" や "プロキシエージェント" と(マニュアルでは)呼んでいます。

Windows における実行の書式は次の通りです。

module_exec getsnmp.bat <comunidad_SNMP> <ip de destino> <OID>

Windows エージェントで実行する SNMP モジュールの例を以下に示します。

module_begin
module_name SNMP_if3_in
module_type generic_data_inc
module_exec getsnmp.bat public 192.168.55.1 .1.3.6.1.2.1.2.2.1.10.3
module_end
module_begin
module_name SNMP_if3_desc
module_type generic_data_string
module_exec getsnmp.bat public 192.168.55.1 IF-MIB::ifDescr.3
module_end
module_begin
module_name SNMP_Sysup
module_type generic_data
module_exec getsnmp.bat public 192.168.55.1 DISMAN-EVENT-MIB::sysUpTimeInstance
module_end

Unix エージェントでの同様の実行例です。

module_begin
module_name SNMP_if3_in
module_type generic_data_inc
module_exec snmpget -v 1 -c public 192.168.55.1 .1.3.6.1.2.1.2.2.1.10.3
module_end
module_begin
module_name SNMP_Sysup
module_type generic_data
module_exec snmpget -v 1 -c public 192.168.55.1 DISMAN-EVENT-MIB::sysUpTimeInstance
module_end

基本的な OID は、数値にも置き換え可能で、常に数字の OID を使うことをお勧めします。ツールが変換できるかどうか分からないためです。多くの場合、MIB は Windows Wdeareba /util/mibs ディレクトリに、Linux であれば、/usr/share/snmp/libs ディレクトリにあります。

SNMP のネットワークモジュールでのモニタリング

SNMP でのモニタリングを出来るようにするためには、少なくとも対象の IP アドレスと SNMP コミュニティを知らなくてはいけません。モニタ項目の OID を知ることも重要ですが、それぞれの OID が何であるかを snmpwalk によって得ることができます。

SNMP でのモニタリングを行うためには、まず最初にそれのエージェントを作成する必要があります。すでに存在するエージェントに対しては、前述の方法に従って新たなネットワークモジュールを追加します。

モジュールを作成したあとは、モジュールの設定にて SNMP のデータの種類を選択します。

Cap5 snmp 1.png

モニタしたいデータの種類に合った SNMP の定義を選択します。

SNMP のデータの種類を選択すると、SNMP の追加フィールドがフォームに現れます。

Cap5 snmp 2.png

次に、フィールドの設定を行います。

SNMP コミュニティ

SNMP コミュニティです。モニタリングに必要なパスワードのようなものです。

SNMP バージョン

デバイスの SNMP プロトコルバージョンを設定します。1,2 および 2c を選択できます。

SNMP OID

モニタする OID を設定します。数値が設定できます。文字で設定した場合、MIB を通して数値に変換されます。

文字で表した OID は次のような形式になります。

iso.org.dod.internet.private.transition.products.chassis.card.slotCps.cpsSlotSummary.cpsModuleTable.cpsModuleEntry.cpsModuleModel.3562.3

数値では次のようになります。

  1.3.6.1.4.868.2.4.1.2.1.1.1.3.3562.3

文字で表した MIB が使えない場合は、システムに MIB をインストールしても良いですが、数値を直接指定するのが良いです。解りにくくはなりますが、MIB を必要とせず問題が発生しにくいです。

Pandora FMS は、直接利用することが可能ないくつかの OID をデータベースに保持しています。例えば、モジュールを作成したときに、Cisco MIB を選択すると、Cisco の MIB 一覧を表示します。

Cap5 snmp 4.png

このコンポーネントを選択すると、その中に存在する MIB を選択することができます。

Cap5 snmp 5.png

こうすることによって、フィールドに必要な情報を埋めることができます。

エンタープライズ版の Pandora FMS には、ほかのデバイス向けのより多くの MIB パッケージが含まれています。 データを取り込むには、作成 ボタンをクリックします。

作成したモジュールのデータを参照するには、上の 参照 ボタンをクリックします。すると、データ収集を開始した時点からのデータが表示されます。

Cap5 snmp 6.png

テキスト文字列のデータを参照するには、データ へ行きます (例では、システムの説明)。

Cap5 snmp 7.png

SNMP System Description データモジュールで受信したデータは、赤で囲った部分です。

Pandora FMS SNMP MIB ブラウザ

Pandora FMS 5.0 からは、Pandora FMS コンソールに SNMP MIB ブラウザがあります。これはオープンソース版にあり、java や flash のプラグインのような追加ソフトウエアは必要ありません。javascript と html コードでできており、バックエンドでは net-snmp を利用しています。Pandora FMS コンソールのインストールにあたり、net-snmp は事前にインストールしておく必要があります。

SNMP ブラウザへは、SNMP メニューからアクセスできます。現時点では、SNMP v1 のみサポートしています。

まず最初に、Pandora FMS は対象デバイスの SNMP ツリー全体をスキャンするということを把握しておく必要があります。巨大な OID データベースを持つデバイス(多くのポートがあるスイッチなど)では、この処理は数分かかることがあります。サブツリーだけを選択して、時間を短縮することもできます。

たとえば、Cisco デバイスの "enterprise" サブツリーの情報のみを取得するには、次のような OID を利用します。

 .1.3.6.1.4.1.9

ブラウザで操作することができ、それぞれのツリーやサブツリーをクリックすることによりその配下にある個々の OID の情報を取得します。"目"のアイコンがありますが、これをクリックすると OID の値を取得します。また、その部分の MIB があれば、OID の説明がつけられます。MIB が無い場合は、数値の OID 情報、値、タイプのみが表示されます。

説明は、MIB ファイル [1] に書かれています。デバイスの MIB ファイルが無い状態でブラウズすると、値を探さなくてはならず、複雑で時間がかかるでしょう。

Pandora FMS SNMP MIB ブラウザは、OID を文字列(MIBの説明がある場合)や数値で検索することができます。これは、目的の OID を見つけるのにとても便利です。マッチした OID は黄色で表示され、簡単に特定できます。



Snmp browser module creator.png



MIB 管理

MIB をアップロードし、Pandora FMS で管理することができます。新しい MIB を追加したり MIB を削除したりできます。これらの MIB は、Pandora でのみ利用されます。Pandora では、システムの MIB (/usr/share/snmp/mibs にあるもの) も使えます。Pandora FMS での MIB ファイルの保存先は、{PANDORA_CONSOLE}/attachment/mibs です。



New snmp browser mibmanager.png



トラップの MIB と、ポーリングの MIB を混同してしまいがちですが、このマネージャでは、ポーリング MIB を扱います。SNMP トラップの管理については別の章にて説明しており、これについては、エンタープライズ版の機能です。

多くの MIB を集めたパッケージがありますが、中でも良いものに Getif のウェブサイトがあります。Windows 用のフリーの SNMP ブラウザの一つです。[2]

モジュール作成時の SNMP ブラウザ利用

ネットワークモジュールの作成/編集のページから、"snmpwalk" ボタンをクリックすることにより、SNMP ブラウザを利用することができます。ポップアップウインドウが開き、(IPアドレスとSNMPコミュニティを入れると)デバイスの SNMP ツリーを表示します。必要な OID が見つかったら、手のアイコンをクリックすると OID 情報が Pandora で使われるモジュールの設定にコピーされます。



Browser snmp enter the browser dragon.png





Snmp browser module creator.png



Pandora FMS SNMP ウィザード

エージェント管理画面に、リモートからモジュールを作成するツール、エージェントウィザードがあります。



Agent wizard.png



これらのツールのいくつかは、ホストからのデータ取得に SNMP を利用し、ウインドウにそれを表示します。これにより、カスタムモジュールを少ない手順で作成することができます。

SNMP ウィザード



Agent wizard snmp wizard.png



ホストに snmpwalk するために、対象の IP アドレス、コミュニティ、その他オプションパラメータ (SNMP v3 をサポートしています) を設定する必要があります。



Snmp wizard form.png



データを受信すると、モジュール作成のフォームが表示されます。



Snmp wizard module creator.png



SNMP ウィザードでは、さまざまな種類の SNMP データからモジュールの作成が可能です。

  • デバイス(Devices)
  • プロセス(Processes)
  • ディスク空き容量(Free space on disk)
  • 温度センサ(Temperature sensors)
  • その他 SNMP データ(Other SNMP Data)

モジュールの種類を選択し、左のウインドウから右へ必要なものをもっていきます。終わったら、モジュール作成(Create modules)ボタンをクリックします。

このウィザードは、以下の 2つの種類のモジュールを作成します。

  • 固定の OID をもったデータのための SNMP モジュール (センサー、メモリデータ、CPUデータなど)
  • 動的な OID または計算したデータのためのプラグインモジュール (プロセス、ディスク空き容量、メモリ使用率など)

Template warning.png

すべてのプラグインモジュールでは、SNMP リモートプラグインを利用します。このプラグインがシステムにインストールされていないと、これらの機能は無効になります。プラグインは、 "snmp_remote.pl" という名前である必要があります。置き場所はどこでも構いません。

 


SNMP インタフェースウィザード



Agent wizard snmp interfaces wizard.png



エージェントウィザードにおいては、インタフェースのブラウズのための作成された SNMP ウィザードがあります。

このウィザードは、SNMP の IF-MIB::interfaces ブランチをブラウズし、さまざまなインタフェースを複数選択し、複数のモジュールの作成を可能にします。

SNMP ウィザードのように、対象の IP やコミュニティなどを選択してから行います。システムは、対象ホストに対して SNMP クエリを実施し、モジュール作成フォームを表示します。

これを利用することにより、左側のウインドウから一つもしくは複数のインタフェースを選択することができます。そして、右側には共通の要素 (説明、速度、In/Outトラフィックなど) が表示されます。この画面から複数の要素を選択し、モジュール作成をクリックすることにより、左側の画面で選択したインタフェースのモジュールが作成されます。



Agent wizard snmp interfaces creation.png



MIB を参照する外部ツールと、Pandora FMS での設定

Pandora FMS で利用する OID を調べるためには、それぞれのベンダから提供される MIB を参照するための MIB ブラウザの利用をお勧めします。これらの MIB ブラウザは、MIB を読んだり分析したりするツールで、MIB の OID をツリー表示してくれます。デバイスのモニタに必要な OID が何であるかを検索することができます。

以下に MIB 管理ツールを紹介します。

  • iReasoning MIB Browser (Windows, Linux, Java): [3]
  • Get-If Free MIB Browser (Windows): [4]
  • TKMib: UNIX および、ほとんどの GNU/Linux ディストリビューションで利用できます。

iReasoning ツールを利用して作業する場合の例を示します。

最初のスナップショットでは、いくつかの OID を認識しているロードされた MIB を見ています。これらの OID は、文字列もしくは数値で表現されています。Pandora FMS は、両方認識可能です。ただし、OS に正しい MIB ファイルがロードされていない場合は、数値の OID のみ利用可能です。どこでも使えるという意味では、数値の OID をお勧めします。

Snmp manager 1.jpg

二番目のスナップショットでは、MIB ファイルの無いツリーに対して、再帰的な snmpwalk を実行しています。結果、数値の OID が表示され、どれが何を意味しているのかが良くわかりません。

Snmp manager 2.jpg

どんな MIB ツールを使うかに関係なく、何を表す OID であるか確認するためにはリファレンスは参照する必要があります (いくつかのベンダは、MIB および OID のリファレンスを用意しています)。ほかにもベンダでは SNMP に関してドキュメント化していたりするなど、必要とする OID を確認しやすくなっています (UNIX システムで一般的な UCD-SNMP などはそのようになっています)。その他 AIX、Windows などの多くの OS では SNMP のドキュメントが充実しています。

SNMP に関するお勧めリンク

  • Full OID Catalog for CISCO (非常に便利です): [5]
  • HP Printer MIB: [6]
  • Nagios Exchange - SNMP [7]
  • ルータで共通に使われる OID: [8]

ネットワークモジュールの共通拡張機能

以下の画面では、ネットワークモジュールの拡張機能を表示しています。



Cap5 snmp 8.png


説明(Description) モジュールの説明です。デフォルトの説明は変更できます。

カスタムID(Custom ID)

エージェントの情報と共にサーバがメッセージを送信する場合に必要なカスタムIDです。また、Pandora FMS と構成データベースなど外部のデータを統合するのに利用できます。

間隔(Interval)

モジュールの実行間隔です。エージェントとは異なります。

保存倍率(Post process)

モジュールの事後処理です。モジュールの値に掛け算や割り算を行うのに便利です。例えば、バイト単位のデータをメガバイトで表示したい場合などです。

最小値(Min. Value)

モジュールの最小値です。これより小さな数値は、不正とみなして破棄されます。

最大値(Max. Value)

モジュールの最大値です。これより大きな数値は、不正とみなして破棄されます。

エクスポートターゲット(Export target)

モジュールから返される値をエクスポートサーバへ渡すのに便利です。Pandora FMS Enterprise版にのみにあり、エクスポートサーバを事前に設定する必要があります。詳細はエクスポートサーバの説明を参照してください。


Module advanced2.png


障害時手順(Critical instructions)

障害状態の場合の手順です。

警告時手順(Warning instructions)

警告状態の場合の手順です。

不明時手順(Unknown instructions)

不明状態の場合の手順です。

Cron

cron が設定されているとモジュールの実行間隔は無視され、モジュールは指定した日時に実行されます。

タイムアウト(Timeout)

エージェントがモジュールの実行完了を待つ秒数です。

カテゴリ(Category)

モジュールをグループ分けやカテゴライズする必要がある場合に、カテゴリを設定できます。

WMI でのリモート Windows モニタリング

Windows システムやシステムサービスをリモートから SMI を通してモニタするための仕組です。 クエリは、OS の内部クエリを実行するための Microsoft の SQL 言語の WQL で行われます。可能なクエリは、Micorsoft データベースに示されています。 WMI の値をツリー表示し、必要な WMI の値がどこにあるかを見つけることができる WMI エクスプローラというツールがあります。Windows の "standard" サーバで、1,000 以上のクエリが存在します。また、追加ソフトウエアには、それ用のクエリがあります。あらかじめ定義されたモジュール設定を持つことはできませんが、ツールにより必要とするものを見つけることができます。

Windows で動作している WMI エクスプローラのスクリーンショット



Wmiexplorer.png


注意: WMI を通してモニタサービスを利用するためには、Pandora サーバの設定 /etc/pandora/pandora_server.conf で、次のようにその機能を有効にする必要があります。

# wmiserver : 1 or 0. Set to 1 to activate WMI server with this setup
# DISABLED BY DEFAULT
  wmiserver 1

WMI を通してモニタリングを開始するには、サービスをモニタするための対応するエージェントを作成します。

Pandora FMS コンソールのシステム管理(Administration)メニューで、エージェント管理(Manage agents) を選択します。



Nono.jpg



次の画面で、エージェントの作成(Create agent)をクリックします。



Nona.jpg


新たなエージェントのデータを入力し、エージェントの作成(Create agent)をクリックします。



Rellene.jpg


エージェントを作成したあと、上のモジュールをクリックします。そこで、新たな WMI サーバモジュールを選択し、作成(Create)をクリックします。



Feo.jpg


WMI を通して Windows システムをリモートでモニタできるようにするためには、次のフォームの設定が必要です。 次のように、必要なフィールドを設定します。

名前(Name)

モジュール名を設定します。

種類(Type)

モニタするデータの種類を設定します。

対象 IP(Target IP)

モニタするリモートシステムの IP アドレスを設定します。

名前空間(Namespace)

WMI のネームスペースを設定します。いくつかのクエリにおいて、このフィールドが空でなければ (デフォルト)、アプリケーションに依存した情報がモニタされます。

ユーザ名(Username)

administrator もしくは、リモートから WMI クエリを実行する権限があるユーザ名を設定します。

パスワード(Password)

administrator もしくは指定したユーザのパスワードを設定します。

WMI クエリ(WMI Query)

WMI クエリは SQL に似ています。以下に例を示します。

SELECT LoadPercentage from Win32_Processor WHERE DeviceID = "CPU0"
SELECT SerialNumber FROM Win32_OperatingSystem
SELECT AvailableBytes from Win32_PerfRawData_PerfOS_Memory
SELECT DiskWriteBytesPersec from Win32_PerfRawData_PerfDisk_PhysicalDisk WHERE name = "_Total"

Key 文字列(Key string)

クエリにより返された文字列を比較するためのオプションです。結果は文字列ではなく、存在すれば 1、そうでなければ 0 で返ります。

フィールド番号(Field number)

返されるフィールドの数です。0 から開始する数字です (WMI クエリは、1つ以上のフィールドを返します)。ほとんどの場合は、0 か 1 です。

必要なフィールドの入力:



Campos.jpg


拡張オプションは、全てのネットワークモジュールと同じです。詳細は、ネットワーク拡張フィールドの説明を参照してください。モジュールは IP アドレスを持っている必要があることに注意してください。必要であれば変更可能です。モジュールの設定が完了したら、作成をクリックしてください。

もし、正確なパラメータがわからない場合は、Pandora FMS データベースに含まれるデフォルトのいずれかを選択してください。WMI モジュールコンポーネントを選択することにより実施します。



Galleta.jpg


その後、可能な WMI チェックを選択します。



Galletita.jpg



ユーザ名とパスワード以外の必要な情報が自動的に入力されます。アドミニストレータ権限のユーザとパスワードが必要であることを忘れないでください。そうでないとモジュールは値を取得できません。



Otro.jpg


モジュールの設定が完了したら、作成をクリックしてください。 次の画面では、エージェントのモジュールが表示されており、Windows version というモジュールが追加されています。



General.png


見ての通り、モジュールにワーニングが出ています。これは、モジュールが追加されたばかりで、まだデータを受信していないことを意味しています。データを受信し始めればワーニングは消えます。

作成したモジュールのデータを参照するには、上の参照をクリックすると受信し始めてからのデータが表示されます。



Generala.png


モジュールの文字列データ (例えば、システムの説明など) を参照するには、上のデータをクリックします。



Generalin.png


エンタープライズ版の Pandora FMS には、Windows の次に示すような情報をリモートでモニタするための 400 以上の WMI モジュールがあります。

  • アクティブディレクトリ
  • BIOS
  • システム情報
  • Windows 情報
  • プリンタ
  • MSTDC
  • IIS
  • LDAP
  • Microsoft Exchange

WMI ウィザード

エージェントウィザード(エージェントの管理画面のタブ)に、WMI ウィザードがあります。指定のエージェントにおいて WMI クエリでモジュールを参照したり作成したりするのに利用します。



Agent wizard wmi wizard.png



最初の WMI クエリを作成するために、対象ホストの administrator ユーザとパスワードを指定する必要があります。このデータは、WMI モジュールの作成に利用されます。



Wmi wizard module creator.png



WMI ウィザードでは、次のようなさまざまな種類の WMI データからモジュールを作成することができます。

  • Services: サービスが稼働中であれば正常、停止していれば障害状態となる、ブーリアンの監視を作成します
  • Processes: プロセスが稼動中のときにデータを受け取ります。そうでなければ不明状態になります。
  • Free space on disk
  • WMI components: この場合、システムに登録された WMI コンポーネントを選択します。(管理 -> モジュール管理 -> ネットワークコンポーネント)

モジュールの種類を選択し、必要なものを左から右のウインドウへもっていきます。完了したら、モジュールの作成ボタンをクリックします。

プラグインを使ったモニタリング (サーバプラグイン)

Pandora FMS は、どんなコンポーネントでもデフォルトで含んでいるわけではありません。必要に応じて、エージェントのモジュールに追加できるコンポーネントを作成する必要があります。Pandora FMS では、インストールディレクトリに元々入っていない新たなプラグインを追加することができます。

Pandora FMS で利用できるようにプラグインを追加するには、コンソールのシステム管理メニューで、「サーバ管理 (Manage servers)」をクリックします。その後、「プラグイン管理 (Manage plugins)」をクリックします。



Verdecito1.jpg



プラグインの登録画面になったら、追加 (Add) をクリックするだけです。



Verdecito2.jpg


プラグイン作成フォームでは次のデータを入力します。

Plugin creation.png

Create plugin2.png

Create plugin3.png

名前 (Name)

プラグインの名前を入力します。この例では Nmap としています。

プラグインコマンド (Plugin command)

プラグインコマンドを置いているパスを指定します。プラグインディレクトリは、デフォルトの設定では /usr/share/pandora_server/util/plugin/ になっています。しかし、任意のパスを指定することが可能です。この例では、/usr/share/pandora_server/util/plugin/udp_nmap_plugin.sh と書いています。

Pandora サーバがこのスクリプトを実行するので、スクリプトにはリードおよび実行権限をつけておく必要があります。

プラグインタイプ (Plugin type)

プラグインには、標準と Nagios の二種類があります。標準プラグインは、パラメータを受け取って処理を実行する通常のスクリプトです。Nagios プラグインは、その名が示す通り Nagios のプラグインで、Pandora FMS から実行することができます。主な違いは、Nagios プラグインは、テストが成功したかどうかのエラーレベルを戻り値で示す点です。

Nagios プラグインを、(正常か異常かの) 状態の取得ではなく情報収集に使いたい場合は、Nagios プラグインを標準モードで登録します。

例 (NMAP) では、標準を選択しています。

最大タイムアウト (Max. timeout)

プラグインのタイムアウト値です。ここで指定した時間内に応答を得られなければ、モジュールは不明状態となり、データが更新されません。これは、プラグインでのモニタリングを実装する上で重要な要素です。プラグインの実行時間がこれより長い場合、全く値を取得できないことになります。この値は、プラグインとして実行するスクリプトが値を得るのにかかる時間より長い時間に設定する必要があります。何も設定しない場合、設定ファイルの plugin_timeout の値が利用されます。

この例では、15 を設定しています。

説明(Description)

プラグインの説明です。Test #UDP open ports のように、簡単な説明を書きます (日本語も入力可能です)。可能であれば、引数として渡すパラメータを指定するためのオプションの説明等を書くと良いでしょう。

プラグインコマンド(Plug-in command)

プラグインコマンドのパスです。標準のインストールでのデフォルトでは、/usr/share/pandora_server/util/plugin/ です。任意のパスを設定できます。このでの例では、/usr/share/pandora_server/util/plugin/udp_nmap_plugin.sh を入力しています。

Pandora サーバがこのスクリプトを実行するため、スクリプトの読み込みおよび実行権限がある必要があります。

プラグインパラメータ(Plug-in parameters)

コマンドのパラメータは、コマンドの後にスペース区切りで指定するものです。このパラメータには、_field1_ _field2_ ... _fieldN_ といったマクロが利用できます。

パラメータマクロ(Parameters macro)'

プラグインパラメータフィールドには、マクロを制限なく利用することができます。このマクロは、モジュール設定の通常のテキストフィールドとして表示されます。

それぞれのマクロには、次の 3つのフィールドがあります。

  • 説明(Description): マクロの簡単な説明です。フィールドのラベルになります。
  • デフォルト値(Default value): デフォルトでフィールドに割り当てられる値です。
  • ヘルプ(Help): マクロの説明です。

マクロ設定の例:



Macro configuration.png



モジュールエディタでのマクロの例:



Macro editor.png




設定が完了したら、作成 (Create)をクリックし、プラグインが作成されたか確認します。



Verdecito4.jpg


この例のプラグインのコードは次のようになっています。

#!/bin/bash
# This is called like -p xxx -h xxxx
HOST=$4
PORT=$2
nmap -T5 -p $PORT -sU $HOST | grep open | wc -l

基本的に、コマンドとパラメータをつなげ、マクロをその値に置き換えて、UDP の (-sU) nmap を実行し、出力結果を open で grep することにより、開いているポートの数を出力します。

プラグインを作成すると、それをエージェントで利用できるようになります。まだエージェントを作成していないようであれば、作成する必要があります。Pandora FMS コンソールのシステム管理 (Administration) メニューで、エージェント管理 (Manage agents) をクリックしてください。

Verdecito5.jpg

次の画面で、エージェントの作成 (Create agent) をクリックします。

Verdi1.jpg

新たなエージェントのデータを入力し、エージェントの作成 (Create agent) をクリックします。

Trescientos.jpg

エージェントを作成したら、上の方にある (モジュール (Modules)) のメニューをクリックします。そこで、「プラグインサーバモジュールの新規作成 (credate a new plugin module)」を選択し、作成 (Create) をクリックします。

Trescientos1.jpg

以下のフォームで、未定義の部分を設定します。generic numeric 等のモジュールの種類を選択し、 モニタ対象の IP アドレスやポート番号を設定します。



Example1 edition module.png


設定が終わったら、作成 (Create) をクリックします。

以下の画面で、エージェントに Nmap モジュールが表示されているのがわかります。

Topito1.jpg

モジュールにワーニングが出ていますが、それはモジュールが追加されたばかりで、まだデータを受信していないことを意味します。データの受信が開始されると、ワーニングは消えます。

作成したモジュールのデータを見るためには、上の方の 表示 (View) をクリックします。すると、受信を始めてからのデータが表示されます。

Topito2.jpg

テキスト文字列のモジュールデータ (例は、システムの説明) を見るためには、上の方の データ (Data)へ行きます。

例 1: MySQL のプラグインモジュール

プラグイン実装の一例をあげます。ここで紹介するのは、デフォルトでは Pandora に無い、MYSQL をチェックするプラグインです。

次の設定にて、MySQL のプラグインモジュールを作成します (システム管理メニュー(Administration)から、サーバ管理(Manage servers) -> プラグイン管理(Manage plugins) を実行)。

  • 名前: MySQL
  • プラグインタイプ: Standard
  • 最大タイムアウト: 10秒
  • 説明:

MySQL check plugin

チェック内容:

このプラグインは、4つのチェックを行います。

Connections: 接続 Com_select: 開始からの select クエリ数 Com_update: 開始からの update クエリ数 Innodb_rows_read: Innodb ファイル読み出し

  • プラグインコマンド(Plugin command): /usr/share/pandora_server/util/plugin/mysql_plugin.sh
  • プラグインパラメータ(Plugin parameters): -s _field1_ -u _field2_ -p _field3_ -q _field4_
  • マクロ(Macro) _field1_:
    • 説明(Description): IP Address
    • デフォルト値(Default value): X.X.X.X
  • マクロ(Macro) _field1_:
    • 説明(Description): User
    • デフォルト値(Default value): User
  • マクロ(Macro) _field1_:
    • 説明(Description): Password
    • デフォルト値(Default value): Password
  • マクロ(Macro) _field1_:
    • 説明(Description): Check
    • デフォルト値(Default value): Connections
    • ヘルプ(Help): Possible values: Connections/Com_select/Com_update/Innodb_rows_read


画面は次のようになります。



Plugin mysql.png


このプラグインは、4つのチェックを行います。

  • Connections: 接続
  • Com_select: 開始時点からの select クエリ数
  • Com_update: 開始時点からの update クエリ数
  • Innodb_rows_read: Innodb のファイルリード数

上記プラグインを使って、Pandora FMS がインストールされているシステムのエージェントにモジュールを作成してみます。名前は、Mysql Connections 等で、localhost において、Pandora データベースの pandora ユーザとそのパスワードで自身のデータベースをチェックします。プラグインパラメータ(Plugin parameters)には、-q Connections を設定しています。

作成画面は次のようになります。



Plugin mysql module.png
Mysql module2.png


作成すると、Nmap モジュールの次に表示されます。



Fosforo3.jpg


メインページの情報は次のようになります (表示(View) タブ)。



Faltaba.jpg


詳細情報は次のようになります (データ(Data) タブ)。



Fosforo5.jpg



例2: SMTP サーバリモートプラグイン

バージョン 4.0.2 からデフォルトでこのプラグインが付属しています。旧バージョンを使っている場合は、Pandora FMS のモジュールライブラリ(pandorafms.org 参照)からダウンロード、インストールできます。

このプラグインは、リモートサーバを使ってメールを送信します。サーバの IP、ポート番号、ユーザ名、パスワードと、認証方式を指定し、また、メールの送信先を指定できます。動作していれば 1 を返し、そうでなければ 0 を返します。タイプは、generic_proc を利用します。

このプラグインを利用したモジュール設定の画面を以下に示します。



Pandora plugin SMTP5.png
Smtp module2.png


例3: DNS サーバリモートプラグイン

バージョン 4.0.2 からデフォルトでこのプラグインが付属しています。旧バージョンを使っている場合は、Pandora FMS のモジュールライブラリ(pandorafms.org 参照)からダウンロード、インストールできます。

このプラグインは、外部 DNS を参照して、指定したドメイン (artica.es など) の IP アドレスが変化していないかどうかをチェックします。これにより、不正なバランシングや DNS アタックなどがなく、ドメインが正しい IP を返しているかどうかを検証できます。正常であれば 1 を返し、そうでなければ 0 を返します。タイプは、generic_proc を利用します。

このプラグインを利用したモジュール設定の画面を以下に示します。



Pandora plugin DNS5.png
Dns module2.png


例4: UDP ポートリモートプラグイン

バージョン 4.0.2 からデフォルトでこのプラグインが付属しています。旧バージョンを使っている場合は、Pandora FMS のモジュールライブラリ(pandorafms.org 参照)からダウンロード、インストールできます。

このプラグインは指定したアドレスと UDP ポートをチェックします。正常であれば 1を返し、そうでなければ 0を返します。タイプは、generic_proc を利用します。

このプラグインを利用したモジュール設定の画面を以下に示します。



Pandora plugin UDP5.png
Udp module2.png


集中監視(連続抑制回数)

リモートモジュール(ネットワークモジュールやプラグインモジュールなど)は、違う理由により信頼できないデータを返すことがあります。たとえば、ping モジュールはホストが起動していてもネットワークで問題があると 0 を返します。

Pandora FMS の設定によっては、これは意図しないイベント(状態変化、アラートの発報、メール送信など)を発生します。

このような状況に対応するために、Pandora FMS では各モジュールにおいて連続抑制回数(FF threshold)という機能があります。連続抑制回数はモジュールの状態変化を起こさない期間の設定です(値が0の場合は無効を意味します)。連続抑制回数を超える回数のデータの変化が連続して発生した場合にモジュールの状態が変更されます。


Ff threshold.png


この連続発生を確認する回数を連続抑制回数で設定します。


Ff interval.png


例を示します。ハードディスクの空き容量を MB 単位で返す WMI モジュールがあるとします。このモジュールの値が 100 を切った時に障害となるように設定します。そして、このモジュールが障害状態となった場合に管理者が空き容量を確保するよう、管理者へメール送信するアラートを設定します。しかし、ソフトウエアのバグにより頻繁に閾値を下回るとします。このとき、モジュールの連続抑制回数を 1に設定し、連続抑制時の間隔を 30秒に設定します。これは、最初にモジュールの値が 100 を下回った場合、次のモジュールの実行は 30秒後に行われます。そして、継続して 100 を下回っている場合のみモジュールが障害状態になります。そうでなければ、モジュールは正常状態です。

これは、同期モジュールでは良いですが、非同期モジュールでは追加のパラメータ設定が必要です。非同期モジュールは定期的な間隔でデータを送らないため、データ送信間隔が大きくあいた場合、連続した値の確認は役に立たないかもしれません。この場合は、連続抑制タイムアウト(FF timeout)の設定が必要です。これは、連続した値が指定した時間内に発生しなければならないことを意味します。


Ff timeout.png


バージョン 5.1 からは、モジュールの状態ごとに連続抑制回数を設定できます。たとえば、障害状態への移行は 2連続、正常状態への移行は 1回のみということができます。