Pandora: Documentation ja: Remote Monitoring

From Pandora FMS Wiki
Jump to: navigation, search

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

1 リモートモニタリング

1.1 概要

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

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


Remote-monitoring.jpg


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

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 システムのデータベースに保存されます。

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

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

Info.png

エージェントの作成は、対象のマシンのソフトウエアエージェントをインストールする必要はなく、Pandora FMS コンソールで行えばよいです。

 


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



Anvi.jpg


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



Bibi.jpg


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



Raro.jpg


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



Sasa.jpg


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



Alive.jpg


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

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



Kiji.jpg


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

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

Keso.jpg

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

1.4 ICMP モニタリング

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

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

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

1.5 TCP モニタリング

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

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


Tcpfields.JPG


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 チェックが実現できます。

1.6 SNMP モニタリング

1.6.1 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 として設定する必要があります。

1.6.2 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

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

Windows のソフトウエアエージェントは SNMP の情報を取得するユーティリティを含んでいます。Unix/Linux では、snmpget が元々存在し、module_exec から呼び出すことができます。

我々は、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 ディレクトリにあります。

1.6.4 Pandora FMS SNMP MIB ブラウザ

監視 > SNMP > SNMPブラウザメニューから、SNMP MIB ブラウザにアクセスすることができます。

最初に理解しなければならないことは、Pandora FMS が MIB ツリーの完全なパスを作っていることです。(スイッチのように)ツリーが大きい場合は、この操作に数分かかることがあります。 1つのサブツリーのみを探索することもできます。これにより、多くの時間を節約できます。

たとえば、Cisco デバイスの enterprise サブ MIB ツリーの情報のみを取得するには、次のような 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


SNMP ブラウザから、後から利用できるようにネットワークコンポーネントを作成することができます。

Snmp browser from module creation.jpg

SNMP モジュールエディタから、ネットワークモジュールを作成または編集するときに、SNMPブラウザボタンをクリックして SNMP ブラウザを起動すると、別ウィンドウが開きます。指が下を指している手のアイコンをクリックすることによって探している OID を選択したら、それを Pandora FMS のモジュール定義の対応するフィールドに自動的に渡します。

1.6.4.1 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

Pandora の MIB マネージャは、ポーリングの MIB のみ管理し、SNMP trap の MIB に対しては何もしないことに注意してください。trap に関しては、Enterprise 版の Pandora FMS 専用の別のマネージャがあります。

1.6.5 Pandora FMS SNMP ウィザード

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



Agent wizard.png



1.6.5.1 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" という名前である必要があります。置き場所はどこでも構いません。

 


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



Agent wizard snmp interfaces wizard.png



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

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

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

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



Agent wizard snmp interfaces creation.png



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

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


Cap5 snmp 8.png


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

カスタムID(Custom ID)

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

間隔(Interval)

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

表示される値は、"設定 > 画面設定(Visual Styles)" の "間隔値" の設定に依存します。

管理者ユーザは、モジュール作成または編集時にカスタム間隔を設定することができます。通常のユーザは、あらかじめ定義された間隔のみです。画面設定(Visual Styles)で定義されていない場合は、デフォルトが表示されます。

保存倍率(Post process)

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

最小値(Min. Value)

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

最大値(Max. Value)

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

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

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

Cron

Cron 開始(Cron from) が設定されているとモジュールの実行間隔は無視され、モジュールは Cron 開始(Cron from) で指定した日時に実行されます。例えば、次の設定ではモジュールは毎週月曜 6:30 に実行されます。

Cron from ex1.png

Cron 開始(Cron from)Cron 終了(Cron to) の両方が設定されていると、モジュールは、Cron 開始(Cron from)Cron 終了(Cron to) の間の時間に 一度実行されます。例えば、次の設定では、毎日 6時と 7時の間に実行されます。

Cron from ex2.png

ローカルモジュールでは、エージェント設定ファイルに module_crontab を設定することで対応します。 詳細は、指定時間モニタリング を参照してください。

カテゴリ(Category)

この分類は、通常のユーザーインターフェイスには影響を与えません。メタコンソールと共に使用することを意図したものです。

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

WMI は、Windows OS を実行するコンピュータのリモート情報取得用のマイクロシステムであり、Windows XP 以降のバージョンで利用できます。 WMI を使用すると、OS、アプリケーション、さらにはハードウェアのすべての種類の情報を取得できます。 WMI クエリは、ローカルでの実行(実際には、Pandora のエージェントは内部的にオペレーティングシステムの API を呼び出し WMI サブシステムに問い合わせます)または、リモートで実行することができます。 一部のシステムでは、WMI へのリモートアクセスは有効になっておらず、外部からの利用のためには有効にする必要があります。

Pandora FMS は、WMI クエリによって Windows をリモート監視することができます。そのためには、Pandora FMS サーバの設定ファイルにて wmiserver を有効化する必要があります。

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

クエリは、オペレーティングシステムへの内部クエリ用の Microsoft 固有の SQL 言語の一種である WQL で行われ、WMI システムデータベースに表示されるクエリはすべて作成できます。

WMI を通してモニタリングを開始するには、サービスをモニタするための対応するエージェントを作成し、モジュールタブをクリックします。そこで、新たな WMI モジュールの作成を選択し、作成 ボタンをクリックします。



Feo.jpg


いくつかのフィールドは WMI 特有のもので、短い表記を使います。

名前空間(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


正しいパラメータがわからない場合は、Pandora FMS データベースに設定されインストール済のものを選択することもできます。それには、WMI モジュールコンポーネントを選択してください。

Galleta.jpg

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

Galletita.jpg

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



Otro.jpg


Pandora FMS Enterprise 版には、Windows 用の 400 以上の WMI リモート監視モジュールがあります。これらは、以下のデバイスやコンポーネント用です。

  • Active Directory
  • BIOS
  • System Information
  • Windows Information
  • Printers
  • MSTDC
  • IIS
  • LDAP
  • Microsoft Exchange

1.8.1 WMI ウィザード

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



Agent wizard wmi wizard.png



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

Wmi wizard module creator.png

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

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

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

このタイプの監視は、Pandora FMS サーバからリモートでプラグインを実行して行います。いくつかのプラグインが利用可能な状態でデフォルトでインストールされています。また、必要なものを追加することもできます。

リモートプラグインはスクリプトまたは実行形式のファイルで、パラメータに応じて値を返します。プラグインを使用すると、開発したアプリケーションのように、任意のタイプの監視を自分で実装し、いくつかの入力パラメータを使用してカスタマイズすることができます。例えば、監視対象の IP をパラメータとして渡すことができます。結果は数値、ブーリアン値(0:障害、0より大きい:正常)であったり、文字列です。リモートプラグインの唯一の制限は、単一の値のみ返せるということです。

Pandora FMS にプラグインを登録するためには、コンソールの管理メニューへ行き、サーバの管理をクリックします。そして、プラグイン管理(Manage plugins) をクリックします。



Verdecito1.jpg





Verdecito2.jpg


この我慢では、いくつかのプラグインがすでに登録されているのがわかります。ここで、あなたのプラグインを登録することができます。それがどのように動くかを説明するために、すでに登録済のプラグインを見てみましょう。リモートマシンに対して UDP の接続を監視する "UDP Plugin" というプラグインをクリックします。

Plugin create 1.jpg

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

プラグインには、標準と Nagios の二種類があります。標準プラグインは、パラメータを受け取って処理を実行する通常のスクリプトです。Nagios プラグインは、その名が示す通り Nagios のプラグインで、Pandora FMS から実行することができます。主な違いは、Nagios プラグインは、テストが成功したかどうかをエラーレベルの戻り値で示し、追加情報を文字列で返す点です。文字列は数値データではありませんがモジュールの値として利用できます。この場合、モジュールの説明に入ります。

この場合(例の UDP ポートチェックプラグイン)は、Nagios プラグインではないので、通常のプラグインを選択します。

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

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

Info.png

プラグインの実行には、サーバ、プラグイン、モジュールの 3つのタイムアウトがあります。サーバの設定が他よりも優先されます。二番目にプラグインです。サーバでのタイムアウト設定を 10秒、プラグインを 20秒、そしてモジュールの設定を 30秒としている場合、モジュールの実行タイムアウト時間は最短の 10秒になります。

 


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

説明(Description)

プラグインの説明です。Check a remote UDP port (by using NMAP) のように、簡単な説明を書きます (日本語も入力可能です)。IP アドレスとポートオプションを使用します。 説明は、プラグインのユーザーインターフェースに表示されるものなので、そのプラグインが何であるかの説明を記載してください。

Plugin create 2.jpg

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

プラグインコマンドのパスです。標準のインストールでのデフォルトでは、/usr/share/pandora_server/util/plugin/ です。任意のパスを設定できます。このでの例では、/usr/share/pandora_server/util/plugin/udp_nmap_plugin.sh を入力しています。独自のプラグインを利用する場合は、どこにプラグインを置いたかを確認し、実行権限(chmod 755)がついていることを確認してください。

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

コマンドのパラメータは、コマンドの後にスペース区切りで指定するものです。このパラメータには、_field1_ _field2_ ... _fieldN_ といったマクロが利用できます。これは、プラグインの操作の中で最も複雑な部分ですが、パニックにならないようにしてください。以降の例でも説明します。

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

プラグインパラメータフィールドには、マクロを制限なく利用することができます。これらのマクロは、ユーザがプラグインモジュールを簡単に使用できるように、モジュール設定のテキストフィールドとして表示されます。 それは、プラグインが内部ではどういう動きをするかの詳細を知らなくても、ライブラリのようにフィールドを入力するだけでユーザが利用できるようにするものです。 マクロの定義によって、スクリプトの動作やスクリプトの呼び出し方法などを知らなくても、呼び出しパラメータを設定することができます。

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

  • 説明(Description): マクロの簡単な説明です。フィールドのラベルになります。
  • デフォルト値(Default value): デフォルトでフィールドに割り当てられる値です。
  • ヘルプ(Help): マクロの説明です。フィールドの設定例などを記載するとよいでしょう。

マクロ設定の例:



Macro configuration.png



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



Macro editor.png



内部マクロ

アラートのように、プラグインの設定にも内部マクロを使うことができます。

利用可能なマクロは次の通りです。

  • _agent_: アラートを発報したエージェント名。
  • _agentdescription_: モジュールが属するエージェント名。
  • _agentstatus_: モジュールが属する現在のエージェントの状態。
  • _address_: モジュールが属するエージェントのアドレス。
  • _module_: モジュール名。
  • _modulegroup_: モジュールグループ名。
  • _moduledescription_: モジュールの説明。
  • _modulestatus_: モジュールの状態。
  • _moduletags_: モジュールに関連付けられたタグ。
  • _id_agent_: エージェントID。Pandora FMS コンソールへのリダイレクト URL を生成するのに便利です。
  • _id_module_: モジュールID。
  • _policy_: モジュールが属するポリシー名。(設定されている場合)
  • _interval_: モジュールの実行間隔。
  • _target_ip_: モジュールの対象 IP アドレス。
  • _target_port_: モジュールの対象ポート番号。
  • _plugin_parameters_: モジュールのプラグインパラメータ。
  • _email_tag_: モジュールタグに関連付けられたメールアドレス。

1.9.1 リモートプラグインの内部

UDP プラグインのコードは、とてもシンプルで全体がどのように動作するのかの説明に適しています。

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

この Linux プラグインは、2つのパラメータを使います。対象の UDP ポート番号とアドレスで、-p および -sU オプションで指定します。プラグインを登録するときに 2つのマクロを定義します。一つはポート番号でもう一つは IP です。そのため、ユーザーがプラグインモジュールを作成するときには、それ以外のものは表示されません。

プラグインを登録したらそれをエージェントで使うために、モジュールタブをクリックしてプラグインサーバモジュールを作成します。そこで新たなネットワークモジュールの作成を選択し、作成(Create) ボタンをクリックします。


Trescientos1.jpg

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



Example1 edition module.png


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

以下の画面で、エージェントに作成した "UDP Port check" モジュールが表示されているのがわかります。



Udp port check demo.jpg



1.9.2 例 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 mysql1.png
Plugin mysql2.png
Plugin mysql3.png
Plugin mysql4.png

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

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

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

作成後、モジュールは次のようになります。



Plugin mysql module.png
Mysql module2.png


作成すると、プラグインモジュールとしてモジュール一覧に表示されます。(この場合、初期化待ち)



Fosforo3.jpg


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

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

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



Pandora plugin SMTP5.png
Smtp module2.png


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

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

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



Pandora plugin DNS5.png
Dns module2.png


1.10 リモートネットワーク監視実行 (Exec Server)

この機能は、Pandora コンソールから Pandora リモートサーバでのアクションの実行をするものです。そのため、SNMP エージェントのウィザード、MIBブラウザ、およびリモートサーバからの「イベント応答」の使用を許可し、コンソールがあるサーバからのアクセスも許可する必要があります。

内部的には、"Exec Server" と呼ばれるもので、有効化されたサーバに対して Pandora コンソールから SSH でのリモートコマンド実行を通して動作します。リモートサーバは、Pandora またはサテライトサーバで、Linux である必要があります。

1.10.1 設定

この機能を利用するには、次のステップで設定を行う必要があります。

1. Pandora FMS のサーバ一覧で、プロキシとして利用したいサーバへアクセスする必要があります。



Exec-server-1.jpg

2. 指定したコマンドを実行するサーバの IP を編集し、"Exec Server" の検証を有効化します。このオプションは、ネットワークサーバまたはサテライトサーバで設定できます。

3. システムの設定が完了しておらずエラーメッセージが表示されるため、テスト設定は実行しないようにします。



Exec-server-2.1.png

4. Pandoraコンソールが動作するサーバーを有効にして、"apache" または同等のユーザーがシェルを実行できるようにします。 /etc/passwd ファイルを修正し、ユーザーが有効なシェルを持つように行を変更します。たとえば、次のようになります。

apache:x:48:48:Apache:/var/www:/bin/bash

5. "/var/www" に ".ssh" ディレクトリを作成し、"apache" ユーザがアクセス可能なパーミッションにします。

mkdir /var/www/.ssh
chown apache /var/www/.ssh

6. root で以下を実行します。

su apache

7. リモートマシンへの接続のための SSH キーを生成します。次のコマンドを実行します。

ssh-keygen 

いくつか質問が表示されるので、そのままエンターを押します。



Exec-server-3.jpg

8. SSH で "Exec server" (Pandora サーバまたはサテライトサーバ)へアクセスする前に、そのマシン上に "pandora_exec_proxy" という特定のユーザを作成し、"/home/pandora_exec_proxy/.ssh/" ディレクトリを作成します。

sudo useradd pandora_exec_proxy -m
mkdir /home/pandora_exec_proxy/.ssh/

注意: ユーザにはパスワードが無いため、リモートからの接続には利用できません。

9. 前のステップで作成した公開鍵の内容を、Pandora コンソールから "exec server" にコピーします。これには、Pandora コンソールの /var/www/.ssh/id_rsa.pub の内容をコピーし、exec server の /home/pandora_exec_proxy/.ssh/authorized_keys にペーストします。その後、ファイルのパーミッションを調整します。

chown -R pandora_exec_proxy /home/pandora_exec/.ssh/

10. ユーザを作成したら、コンソールを実行しているマシンから "apache" ユーザで、パスワードなしでリモートにログインできるか確認するために次のコマンドを手動で実行します。(前の手順で設定した Exec server のホスト名/ IPを利用)

 ssh pandora_exec_proxy@ip_address

11. すべてのステップを正しく実行したら、apache ユーザを元の状態(ログインシェル無し)に戻すために /etc/passwd ファイルを編集します。

apache:x:48:48:Apache:/var/www:/sbin/nologin

12. 最後に、Pandora コンソール内のプロキシサーバの編集セクションで設定をテストをすれば、テストインジケータが緑色に変わり、完全に動作し機能します。



Exec-server-4.png

1.10.2 exec server 機能の利用

MIB ブラウザー、エージェントの SNMP ウィザード、およびイベント応答で、ローカルコンソールまたは設定済みの Exec server のどちらから要求を開始するかを選択できます。



Exec-server-5.png

また、WMI ウィザード、SNMP インターフェイス、SNMP エージェントのウィザード(サテライトサーバーでは使用できません)からも同様です。



Exec-server-6.png

ウィザードを起動したときに選択したサーバに依存して、サテライトサーバまたはサーバに関連付けられたモジュールが作成されます。

"イベント応答" の実行には、最初に新たな exec server を利用する新たなイベント応答の設定を行う必要があります。



Exec-server-7.png

そしてイベントからそれを起動します。



Exec-server-8.png

1.11 パス監視

Pandora FMS は、ネットワークの 2つのポイント間の完全なルート監視をデフォルトで提供し、これらの 2つのポイント間の通信パスを視覚的に示します。

このシステムを利用するには以下が必要です。

  • 分析したいルートの発信元となるポイント上にソフトウエアエージェント
  • 発信元ポイントからの ICMP による宛先までの到達性

Pandora FMS パス解析は、ルートのマップ生成にエージェントプラグインを利用します。このエージェントプラグインは、情報収集し構造化した情報を Pandora サーバへレポートするためいくつかの手法を利用します。

注意: オプションで、インターネット越しにルートをスキャンしたい場合は、発信元となるコンピュータに mtr アプリケーションを入れることをお勧めします。より詳細は以下を参照してください。

https://en.wikipedia.org/wiki/MTR_%28software%29

http://www.bitwizard.nl/mtr/


1.11.1 設定

バージョン 7.0 の OUM715 では、プラグインはエージェント内に含まれています。 設定するには、エージェントのリモート設定が有効になったら、Pandora FMS コンソールからプラグインの実行を有効にします。


エージェントのプラグイン設定タブにアクセスし、次の行を追加します(エージェントのバージョンが 7.0 715 より前の場合、またはユーティリティフォルダにプラグインを展開していない場合は、プラグインを実行するための完全パスを指定する必要があります)

route_parser -t target_address

対象のアドレスは、v4 の IP アドレスかまたは FQDN ドメイン名が利用できます。



Route conf2.png



1.11.2 表示

システムを設定しレポートが始まると、エージェント表示画面に新たなタブが表示され、対象との通信が確立されます。

発信元ネットワークからの他のネットワーク上のマシンへのルートビューの例を示します。(LAN 接続)


Route view1.png



8.8.8.8 (Google の DNS)へのルートの例は以下の通りです。(WAN 接続)


Route view2.png