Pandora: Documentation ja: Operations

From Pandora FMS Wiki
Jump to: navigation, search

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

Contents

1 ソフトウエアエージェントを使ったモニタリング

1.1 ソフトウエアエージェントを使った監視

Agent-monitoring.png

ソフトウェアエージェントは、情報を取得する OS で実行されています。 CPU 使用率、空きメモリ、ディスク容量など、システムで実行される 各チェックは、 モジュール に対応します。 したがって、各モジュールには、実行ごとに 1つのデータが収集されます。

ソフトウェアエージェント独自の ディレクティブ は、オペレーティングシステムから特定のデータ(CPU 使用率、メモリ、イベントなど)を直接取得し、事前に定義された スクリプト からの指示に従って オペレーティングシステム独自のコマンド を実行するのに便利です。データが標準的な方法で返されるコマンドであれば、他のソフトウェアと同様に直接実行することもできます。

Pandora FMS データサーバは、ソフトウェアエージェントによって生成され、送信される XML ファイルを介してすべての情報を処理してデータベースに保存します。

Esquema-3.png
エージェント/物理エージェントの論理的概要

Info.png

7 NG より前のバージョンが実行されている場合は、この記事の最後のソフトウェアエージェントの名前を確認してください。

 


1.1.1 エージェント設定

ソフトウェアエージェントのすべての設定と監視パラメータは、設定ファイル pandora_agent.confにあります。 これは、ソフトウェアエージェントがインストールされているマシンのローカルに保存されるため、エージェントの設定変更は、すべてこのファイルに反映させる必要があります。全エージェント設定トークンの詳細については、"PandoraFMS ソフトウエアエージェント" の章( https://wiki.pandorafms.com/index.php?title=Pandora:Documentation_ja:Configuration_Agents )を参照してください。ここでは高度な設定向けに、そのうちのいくつかのみに焦点をあてます。

1.1.1.1 ローカル設定

ソフトウエアエージェントの設定ファイルでは、以下のテキストの基本構造でモジュールが定義されています。

module_begin 
module_name your module name
module_type generic_data
module_exec your command 
module_description your description
module_end
1.1.1.1.1 例 1
module_begin 
module_name Files in var spool
module_type generic_data
module_exec ls /var/spool | wc -l
module_description Number of files incoming dir
module_end

Unix/Linux 環境では、コマンド ls はディレクトリファイルを一覧表示します。行 module_exec でそれを実行し、行数をカウントする wc コマンドに値を渡します。 この実行によって返される値は、モジュールが取得するデータであり、監視データとして表示されます。

1.1.1.1.2 例 2
module_exec vmstat 1 2 | tail -1 | awk '{ print $13 }'

vmstat コマンドは、仮想メモリの統計をレポートします。この例では、必要な情報を "絞り込む" ための 2つの追加コマンドがあります。 最初にコマンドを手動で起動し、出力を分析することをお勧めします。

$> vmstat 1 2 | tail -1 | awk '{ print $13 }'

結果が要件を満たしていたら、設定ファイルに追加します。ソフトウェアエージェントを介した実行によって返される値は、モジュールデータとして XML に格納されます。

1.1.1.1.3 例3

出力が Pandora FMS で受け入れられる値(数値、英数字、または、ブール値)をサポートしていれば、module_exec を介して任意のコマンドまたはソフトウェアを実行できます。そのため、カスタムスクリプトを指定することができます。

module_exec myScript.pl --h 127.0.0.1 -v cpu

この場合も、エージェントはシェルを実行し、オペレーターによって実行されたかのように結果を取得します。

$> myScript.pl --h 127.0.0.1 -v cpu

1.1.1.2 リモート設定

エンタープライズ版では、設定の中央管理およびコンソールからのファイル管理が行える、リモートエージェント設定機能があります。これにより、エージェントをインストールしたシステムへログインすることなく、設定ファイルの管理をサーバコンソールから統括して行うことができます。

設定は、<md5>.conf および <md5>.md5 という名前の 2つのファイルで行います。ここで、<md5> は、エージェント名のハッシュです。これらのファイルは、"/var/spool/pandora/data_in/conf" および、"/var/spool/pandora/data_in/md5" ディレクトリに配置されます。コンソールは、各ソフトウェアエージェントがインストールされているローカルファイルと、Pandora FMS サーバのファイルの同期を維持する役割を果たします。


Sw-agent.png


リモート設定を有効にするためには、最初にエージェントのローカル設定ファイルで以下のパラメータを設定します。有効にしたのちは、すべての変更は Pandora FMS コンソールから実施する必要があります。

remote_config 1

Info.png

エージェントのリモート設定を有効にしたあとは、ローカルの設定ファイルを変更してもコンソールに保存されている設定で上書きされます。これを停止したい場合は、エージェントを停止し設定ファイルを編集し、リモート設定を無効化したのち、エージェントを再起動します。

 


1.1.1.2.1 カスタムフィールド
エージェント用のカスタムフィールド管理

カスタムフィールドは、エージェントの情報を追加する簡単な仕組みです。カスタムフィールドは、'リソース(Resources)' -> 'カスタムフィールド(Custom fields)' をクリックすると作成できます。

Info.png

カスタムフィールドには、[url]リンク[/url] や [url=link]web名[/url] タグを用いてリンクを含めることができます。

 


前面に表示(Display up front) および 有効なコンボ(Enabled combo) フィールドはデフォルトで無効になっています:

"前面に表示(Display up front)" および "有効なコンボ(Enabled combo)" は無効
  • 前面に表示(Display up front) を有効化することにより、カスタムフィールドの情報が以下に示すようにエージェント画面に表示されます。さらに、このトークンを有効にして、カスタムフィールド 情報をメタコンソールに送信すると、エージェント 表示 および カスタムフィールド表示 で参照できます。
"Display up front" activado


EqyIkxu4qJ.png
X1fYvcHCZt.png
  • 選択肢の有効化(Enabled combo): このパラメーターを使用すると、ドロップダウンリストからのパラメータ選択を有効化できます。 有効化した場合、対応するカスタムフィールドの構成ウィンドウに新しいフィールドが表示され、カンマで区切で値を入力します。

Template warning.png

"選択肢の有効化" をすると、"パスワードタイプ" は無効化されます。

 


これらのカスタムフィールドは、次のような設定トークンを使ってエージェント設定ファイルから渡すことができます。

custom_field1_name Model
custom_field1_value i386

1.1.1.3 共通設定パラメータ

基本的なエージェント設定における、最も重要なパラメータ (より詳細は、Pandora FMS ソフトウエアエージェント を参照してください):

  • server_ip: Pandora FMS サーバの IP アドレスです。
  • server_path: Pandora FMS サーバの incoming フォルダのパスです。デフォルトは、/var/spool/pandora/data_in です。
  • temporal: ソフトウエアエージェントのテンポラリフォルダです。デフォルトは、/var/spool/pandora/data_out です。
  • logfile: ソフトウエアエージェントのログファイルです。デフォルトは、/var/log/pandora/pandora_agent.log です。
  • interval: エージェントの実行間隔です。デフォルトは、300 です。
  • intensive_interval: 高頻度モジュールの実行間隔です。デフォルトは、300 です。
  • debug: 1 で、XML ファイルデータフェイルを保存し分析するためのデバッグモードを有効にします。有効化した場合、XML データは分析できるようにするためにサーバには送信されません。
  • agent_name: エージェント名です。デフォルトはホスト名が使われます。
  • remote_config: リモート設定を有効にします。デフォルトは 0 (無効)です。 Enterprise 版のみです。

*nix 環境での例:

server_ip       192.168.1.1 
server_path     /var/spool/pandora/data_in 
temporal        /var/spool/pandora/data_out 
logfile         /var/log/pandora/pandora_agent.log 
interval        300 
debug           0 
agent_name      box01 
server_port     41121 
transfer_mode   tentacle 
remote_config   1 

MS Windows® 環境での例:

server_ip       192.168.1.1 
server_path     /var/spool/pandora/data_in 
temporal        c:\program files\pandora_agent\temp
logfile         c:\program files\pandora_agent\pandora_agent.log 
interval        300 
debug           0 
agent_name      box01 
server_port     41121 
transfer_mode   tentacle 
remote_config   1

1.1.1.4 パスワード保護グループ

デフォルトでは、エージェントが初めて Pandora FMS サーバにデータを送信すると、そのデータはエージェント設定ファイルで定義されているグループに自動的に追加されます。 つまり、実際には、グループ名を知っていれば、誰でもグループにエージェントを追加できます。 これは、複数のクライアントが Pandora FMS インスタンスを共有している場合や各グループの内容を制御したい場合に問題になる可能性があります。

オプションで、Pandora FMS コンソールからグループのパスワードを設定できます。エージェント設定ファイルで正しいパスワードが指定されていない限り、エージェントはグループに追加されません。

1.1.1.4.1

グループのパスワードを設定するには、グループエディタ に移動して 編集 をクリックし、グループパスワードを入力して、変更を保存します。

Passgr1.JPG

このグループに新しいエージェントを追加するには、設定ファイルを編集して、次の設定オプションを追加します。

 group_password <password>

Info.png

変更を有効にするために、エージェントを再起動することを忘れないでください。 エージェントは、Pandora FMS コンソールで正しく作成する必要があります。

 


1.1.2 エージェントおよびソフトウエアエージェントのモジュール

1.1.2.1 モジュールの種類

データのタイプに応じた、ソフトウエアエージェントのモジュールのタイプは次の通りです。

  • generic_data: 数値および浮動小数点データです。
  • generic_data_inc: インクリメンタルな数値データです。前の値と現在の値の差分を間隔で割った値を保存します。このデータタイプは、'秒間の回数' をカウントするのに利用します。たとえば、秒間のログエントリー数、秒間受信バイト数、秒間のコネクション数などです。
  • generic_data_inc_abs: 絶対増加する数値データのタイプです。 これは、経過した秒数で割ることなく、前と現在のデータの差分を格納します。したがって、値は 2回の実行の間の差となり、1秒あたりの値にはなりません。このタイプのデータは、ログエントリ、合計受信バイト数、接続数など何かが発生した回数をカウントするために使用されます。
  • generic_proc: ブール型のデータです。値が 0 の場合は障害を意味し、0 より大きい場合は正常であることを意味します。 generic_proc型には、あらかじめ設定された障害(0)および正常(1以上)の状態があります。
  • generic_data_string: 文字列(テキスト)データです。
  • async_data: 非同期の数値データです。'generic_data' と同じですが非同期のデータで、変化したときのみ更新されます。非同期データは、収集間隔の定義がありません。
  • async_string: 非同期の文字データです。generic_string と同じですが非同期のデータで、変化したときのみ更新されます。データを取得したあとに、次の新たなデータの取得がいつになるかわからないような、ログやイベントをモニタするのに利用します。新しいデータを数秒間隔で受信したり、逆に数日間何もデータがない場合もあります。
  • async_proc: 非同期のブーリアンデータです。generic_proc と同じですが非同期のデータで、変化したときのみ更新されます。
  • Image module: テキスト文字列型モジュール(generic_data_string または async_string)をもとにしたものです。モジュール内のデータが base64 イメージの場合、つまり文字列の一部に "data:image" が含まれている場合、それは画像データとして識別され、表示画面では画像を表示するウィンドウを開くリンクが有効になります。 また、ヒストリデータとしても文字列として保存され、画像を構築/生成し表示されます。

1.1.2.2 ローカルモジュールの実行間隔

ローカルモジュール(ソフトウエアエージェントのモジュール)には、ベースとしてエージェントの実行間隔があります。ただし、module_interval パラメータにゼロより大きい整数を設定することによって、エージェントの実行間隔にそれを乗じた値をモジュールの実行間隔とすることができます。例:

module_interval 2

この場合、エージェントの実行間隔が 300 のとき、モジュールの実行間隔は 300x2 (600) になります。

1.1.2.3 モジュール作成インタフェース

Info.png

この機能は Enterprise 版のみ です。ソフトウエアエージェントのリモート設定を有効化する必要があります。

 


コンソールからのローカルモジュールの作成は、リモートモジュール(の閾値、タイプ、グループなど)と同様に、フォームを利用して行います。設定データを指定するテキストボックスがあり、ソフトウエアエージェントの設定ファイルが表示されています。

Local module editor.png
  • 基本(テンプレート)のロード(Load basic (template) をクリックすると、データ設定(Data configuration) のコンテンツが監視のニーズに応じて変更する必要のある基本テンプレートに置き換えられます。
  • 変更後、チェック(構文)(Check (syntax)) をクリックすると、テンプレートの構文が正しいことを確認しますが、残りのコマンドはチェックされません。

モジュールがローカルコンポーネントからロードされる場合、マクロが含まれる場合があります。 マクロがある場合、設定ボックスは非表示のままになり、マクロごとにフィールドが表示されます。詳細については、テンプレートとコンポーネント を参照してください。

1.1.3 状態にもとづくモニタリング

1.1.3.1 事後処理

Pandora FMS ソフトウエアエージェントは、モジュールの実行結果の値に応じたスクリプトの実行をサポートしています。これは、モジュールの実行で得られた値に応じてアクションを行えることを意味します。

1.1.3.1.1 例 1

値または値の範囲を示す module_condition パラメータを使用して、取得したデータが条件(CPU 使用率が 200%未満)を満たす場合に、実行する内容を設定します。

module_condition パラメータにて、モジュールの実行の事後処理を定義します。モジュールから返される値にもとづいて実行されるコマンドを定義します。設定ファイルの例を次に示します。

module_begin
module_name CPU_Usage_Condition
module_type generic_data
module_exec get_cpu_usage.pl
module_condition < 20 add_processes.sh
module_end
1.1.3.1.2 例 2

同じモジュールに対して、範囲内や最小しきい値を指定した複数の条件を指定できます(数学的には、両方のオプションのいずれかが実行されるか、まったく実行されません)。

module_begin
module_name CPU_Usage_Condition
module_type generic_data
module_exec get_cpu_usage.pl
module_condition (90, 100) remove_processes.sh
module_condition < 20 add_processes.sh
module_end
1.1.3.1.3 例 3

前の例に似ていますが、両方の条件を実行することも、1つまたはまったく実行しないこともできます(選択した値で試してください: 5、15、または 30 の場合)。

module_begin
module_name CPU_Usage_Condition
module_type generic_data
module_exec get_cpu_usage.pl
module_condition < 20 add_processes.sh
module_end

1.1.3.2 事前処理

module_precondition パラメータにて、モジュール実行前の事前処理を定義します。この事前処理により、ソフトウエアエージェントはモジュールを実行するかどうか決めます。

Info.png

module_precondition に想定する値を割り当て、条件と比較する必要があります。

 


1.1.3.2.1 例 1

アクティブなプロセスが 10 を超える場合、CPU 使用率のパーセンテージを取得し、Pandora FMS サーバにレポートします。

module_begin
module_name CPU_Usage
module_type generic_data
module_precondition > 10 number_active_processes.sh
module_exec get_cpu_usage.pl
module_end
1.1.3.2.2 例 2

同じモジュールに対して複数の前提条件を定義でき、それらすべてが満たされている必要があります。

module_begin
module_name CPU_Usage
module_type generic_data
module_precondition > 10 number_active_processes.sh
module_precondition > 1 important_service_enabled.sh
module_exec get_cpu_usage.pl
module_end

この場合、アクティブなプロセスが 10 を超えており、そのうちの少なくとも 1つが重要なプロセスである場合にのみモジュールが実行されます。

1.1.4 高頻度モニタリング

重要な実行プロセスやサービスなど、特に重要なモジュールが存在する場合があります。 これらのケース向けに、より制御された監視を可能にする集中監視が利用できます。

エージェントの通常の実行間隔を短くすることなく、問題が発生した場合にのみ短い間隔で監視をします。

ソフトウエアエージェントの設定:

  • Interval: エージェントの実行間隔を秒で指定します。これは、全ローカルモジュールの一般的な間隔で、必須のパラメータです。
  • Intensive_interval: 障害状態のモジュールに対して監視を行う間隔で、オプションパラメータです。

モジュール設定:

  • module_intensive_condition = 0: モジュールの値がこのパラメータで指定した値(この場合 0)の場合、エージェントで定義された高頻度の間隔で監視します。

1.1.4.1

sshd サービスは、シェルでリモート接続するために使用されるため非常に重要です。その動作を監視する必要があります。 次の例は、sshd プロセスの監視を通常は 5分ごとに実施しますが、障害時は 10秒ごとに監視したい場合の例です。

intensive_interval 10
interval 300
module_begin
module_name SSH Daemon
module_type generic_data
module exec ps aux | grep sshd | grep -v grep | wc -l
module_intensive_condition = 0
module_end

サービスがダウンすると、次の 10秒で再度チェックされます。サービスが起動していれば、次のチェックは通常通り 5分後です。

1.1.5 指定時間モニタリング

ソフトウエアエージェントは、モジュールを指定時間に実行する設定ができます。書式は crontab と同じです。モジュールの設定例は次の通りです。以下は、モジュールを毎月曜の 12 から 15時の間に実行する例です。

module_begin
module_name crontab
module_type generic_data
module_exec script.sh
module_crontab * 12-15 * * 1
module_end

モジュールを毎時 10分に実行したい場合は、次のようにします。

module_begin
module_name crontab
module_type generic_data
module_exec script.sh
module_crontab 10 * * * *
module_end

Info.png

モジュールがデータを出力しない期間を設定した場合、モジュールは "不明" 状態になります。このような場合は非同期モジュールを利用します。

 


1.2 ソフトウエアエージェントでのリモートチェック

Pandora FMS サーバが(セキュリティ上の理由などから)直接アクセスできないシステムに対してリモートチェックを行う場合に使用します。ソフトウェアエージェントをインストールし、そこからリモートチェックを実行し、ブローカエージェントで配布することができます。

1.2.1 ICMP チェック

ICMP もしくは ping の監視は、マシンがネットワークにつながっているかどうかを確認するのに便利です。単一のソフトウェアエージェントがすべてのマシンのステータスを簡単に監視できます。

Unix

システムコマンドを利用して ping チェックを実行するモジュールを作成することができます。 (すべてのパラメータは module_exec の "コマンドライン" にあります)

module_begin
module_name Ping
module_type generic_proc
module_exec ping -c 1 192.168.100.54 >/dev/null 2>&1; if [ $? -eq 0 ]; then echo 1; else echo 0; fi
module_end

このモジュールの例では、192.168.100.54 宛の ping チェックを実行します。他のホストをチェックしたければ、IP アドレスを変更するだけです。

Windows

Windows のソフトウエアエージェントには ping チェックを設定するためのパラメータがあり、次の通りです。

  • module_ping_count x: 送信する ECHO_REQUEST パケット数 (デフォルトは 1)
  • module_ping_timeout x: 秒単位のタイムアウト値 (デフォルトは 1)
  • module_advanced_options: ping.exe のオプションパラメータ

モジュールの設定例を次に示します。

module_begin
module_name Ping
module_type generic_proc
module_ping 192.168.100.54
module_ping_count 2
module_ping_timeout 5
module_end

この例では、Unix の場合と同じチェックを行います。ただし、Windows 環境でのソフトウエアエージェントです。

1.2.2 TCP チェック

TCP チェックは、ホストのポートが開いているかを確認するのに便利です。アプリケーションがネットワーク上で応答するかどうかを確認することができます。

Unix

Unix のソフトウエアエージェントでは、次のようなモジュール設定にて TCP チェックを実行します。

module_begin
module_name PortOpen
module_type generic_proc
module_exec nmap 192.168.100.54 -p 80 | grep open > /dev/null 2>&1; echo $?; if [ $? == 0 ]; then echo 1; else echo 0; fi
module_timeout 5
module_end

このモジュールでは、ホスト 192.168.100.54 の 80番ポートが開いているかどうかをチェックします。

Windows

Windows のソフトウエアエージェントを使っている場合は、TCP チェックを設定するためのパラメータがあります。パラメータは次の通りです。

  • module_tcpcheck: チェックするホスト
  • module_port: チェックするポート番号
  • module_timeout: チェックのタイムアウト値

モジュールの設定例を以下に示します。

module_begin
module_name TcpCheck
module_type generic_proc
module_tcpcheck 192.168.100.54
module_port 80
module_timeout 5
module_end

このモジュールも同様に、192.168.100.54 の 80番ポートに対してチェックを行います。

1.2.3 SNMP チェック

SNMP チェックは、一般的にネットワークデバイスのインタフェースのステータス、送受信トラフィックなどをチェックするのに利用します。

Unix

Unix のソフトウエアエージェントを利用している場合は、次のように snmpget コマンドを使ったモジュールを作成します。

module_begin
module_name SNMP get
module_type generic_data
module_exec snmpget 192.168.100.54 -v 1 -c public .1.3.6.1.2.1.2.2.1.1.148 | awk '{print $4}'
module_end

このモジュールは、ホスト 192.168.100.54 の OID .1.3.6.1.2.1.2.2.1.1.148 の値を返します。

Windows

Windows のソフトウエアエージェントでは、モジュールを設定するための次のパラメータがあります。

  • module_snmpversion [1,2c,3]: SNMP バージョン (デフォルトは 1)
  • module_snmp_community <community>: SNMP コミュニティ(デフォルトは public)
  • module_snmp_agent <host>: モニタ対象のホスト
  • module_snmp_oid <oid>: OID.
  • module_advanced_options: snmpget.exe の拡張オプション

モジュールの設定例を以下に示します。

module_begin
module_name SNMP get
module_type generic_data
module_snmpget
module_snmpversion 1
module_snmp_community public
module_snmp_agent 192.168.100.54
module_snmp_oid .1.3.6.1.2.1.2.2.1.1.148
module_end

このモジュールは、Unix のソフトウエアエージェントと同じ動作をします。

1.3 プロキシモード

Template warning.png

Linux/Unix システムで、エージェントのプロキシモードを利用するためには、エージェントを root 以外のユーザで実行する必要があります。そのため、Pandora FMS エージェントのカスタムインストールが必要です。カスタムインストールの詳細については、エージェントのカスタムインストールを参照してください。

 


Pandora FMS ソフトウエアエージェントには、エージェントから Pandora FMS サーバへの通信をプロキシするする、プロキシモードがあります。プロキシモードを有効にしたソフトウエアエージェントは、モニタリング処理も実行可能です。

Proxy-mode.png

プロキシモードは、1台のマシンのみ Pandora FMS サーバと通信できないといったネットワークの場合にとても便利です。この場合、すべてのマシンにインストールされたソフトウエアエージェントは直接 Pandora FMS サーバへは通信できず、XML ファイルをプロキシとして動作しているエージェントに送ります。プロキシはそれを Pandora FMS サーバへ送信します。

プロキシモードでは、XML ファイル送信をプロキシすることに加えて、リモート設定 および ファイルコレクション の機能もサポートしています。

これらの機能により、プロキシモードは接続が制限されたネットワークでのソフトウエアエージェントの「透過的な操作」を提供します。

プロキシモードを有効にするには、ソフトウエアエージェントにて次のパラメータを設定します。

  • server_ip: Pandora FMS サーバの IP アドレスです。
  • proxy_mode: 有効(1) または 無効(0)。
  • proxy_max_connection: プロキシへの最大接続数です。デフォルトは 10です。
  • proxy_timeout: プロキシのタイムアウトです。デフォルトは 1秒です。
  • proxy_address: プロキシのアドレスです。
  • proxy_port: プロキシのポート番号です。

設定例を以下に示します。

server_ip 192.168.100.230
proxy_mode 1
proxy_max_connection 20
proxy_timeout 3

ソフトウエアエージェントの接続を中継するには、ソフトウエアエージェントの設定で接続先の Pandora FMS サーバのアドレスとしてプロキシモードのエージェントのアドレスを指定します。例えば次の通りです。

プロキシモードが有効なエージェントの IP アドレスが、192.168.100.24 とします。

直接 Pandora FMS サーバへ接続できないソフトウエアエージェントでは、server_ip パラメータを次のように設定します。

server_ip 192.168.100.24

この設定により、Pandora FMS サーバと直接通信ができないソフトウエアエージェントが、プロキシモードの他のソフトウエアエージェントを経由して通信できるようになります。リモート設定、ポリシー、ファイルコレクションといったすべての機能が利用できます。

1.4 ブローカーモード

ソフトウエアエージェントには、複数のソフトウエアエージェントがインストールされているかのように一つのエージェントを設定し、モニターするブローカーモードがあります。

Modo-broker.png

ブローカーモードを有効にしたソフトウエアエージェントは、新たな設定ファイルを生成します。同一のマシンで複数のソフトウエアエージェントを動かすのと同じように、オリジナルのソフトウエアエージェントと新たなブローカーがそれぞれの設定ファイルで動作します。

ブローカーモードのメインの機能は次の通りです。

  • ローカルのデータを他のエージェントとして送信します。異なるソフトウエアの状態を異なるエージェントとしてモニタリングするのに便利です。
  • リモートチェックを行ったデータを、ソフトウエアエージェントがインストールされているマシンから送られたかのように送信します。

ブローカーを設定するには、broker_agent <ブローカー名> という設定行を追加するだけです。次のように、必要な数分 broker_agent の設定行を追加するだけで複数のブローカーを作成することが可能です。

broker_agent dev_1
broker_agent dev_2

ブローカーを設定したら、オリジナルのソフトウエアエージェントの設定と同じような内容で、エージェント名の設定が異なる dev_1.conf および 'dev_2.conf ファイルを作成します。dev_1.conf および dev_2.conf の設定ファイルでのモジュール追加、削除をすることで、ブローカーの設定を変更します。

Pandora FMS ウェブコンソールで、プローカーが表示され、他のエージェントと同じように管理できます。2つのブローカーでソフトウエアエージェントをインストールしていれば、ウェブコンソールでは、異なる 3つのエージェントでそれぞれのモジュールや設定が参照できることを意味します。

注意: ブローカーエージェントインスタンスは、ファイルコレクションを利用できません。コレクションを利用したい場合は、インスタンスのコレクションからファイルの "実行" ができますが、インスタンスではなく "メイン" エージェントで配布する必要があります。

Template warning.png

ブローカーエージェントが有効な場合、実行中にメモリ内にデータを保持しているモジュール (module_logevent と MS Windows® における module_regexp) は動作しません。

 


1.4.1 利用例

1.4.1.1 異なるエージェントとしてのローカルデータベースのモニタリング

マシンの基本的な情報(CPU、メモリ、ディスク)および、インストールされているデータベースの情報を分けてモニタリングしたいとします。

このモニタリングを行うには次のような手段をとります。

  • インストールしたソフトウエアエージェント: CPU、メモリ、ディスクをモニタします。
  • データベース用のブローカー: データベース内の状態をモニタします。

これを行うには、ソフトウエアエージェントを CPU、メモリ、ディスクをモニタするマシンにインストールします。ソフトウエアエージェントの設定で次の行を追加します。

broker_agent DBApp

この設定を追加することにより、DBApp というブローカーエージェントを作成します。それにより、dbapp.conf という設定ファイルができます。この設定ファイルには、データベースの状態をチェックするモジュールを追加します。

module_begin
module_name Num Users
module_type generic_data
module_exec get_db_users.pl
module_end

module_begin
module_name Num slows queries
module_type generic_data
module_exec get_db_slows_queries.pl
module_end

これにより、Pandora ウェブコンソールに 2つのエージェントが現れます。一つはマシン名で CPU、メモリ、ディスクのモジュールがあり、もう一つは、DBApp という名前で Num Users および Num slow queries というモジュールがあります。

1.4.1.2 ブローカーを使ったリモートデバイスのモニタリング

この例では、Windows マシンにソフトウエアエージェントをインストールし、(CPU、メモリ、ディスクを)モニタリングしています。また、エージェントのインストールなしに 192.168.100.54 の IP を持ったルータをモニタリングしたいとします。この問題を解決するためにブローカーを利用できます。

次の設定で、ブローカーを作成します。

broker_agent routerFloor5

これにより、routerFloor5 という名のブローカーエージェントを作成します。ソフトウエアエージェントが Windows マシンにインストールされているので、Windows のソフトウエアエージェントの機能で ping および snmp でルータをモニタできます。それには、routerFloor5.conf ファイルに次の設定を行います。

module_begin
module_name Ping
module_type generic_proc
module_ping 192.168.100.54
module_ping_count 2
module_ping_timeout 500
module_end

module_begin
module_name Eth 1 up
module_type generic_data
module_snmpget
module_snmpversion 1
module_snmp_community public
module_snmp_agent 192.168.100.54
module_snmp_oid .1.3.6.1.2.1.2.2.1.1.1
module_end

module_begin
module_name Eth 2 up
module_type generic_data
module_snmpget
module_snmpversion 1
module_snmp_community public
module_snmp_agent 192.168.100.54
module_snmp_oid .1.3.6.1.2.1.2.2.1.1.2
module_end

この例では、Pandora FMS のウェブコンソールには 2つのエージェントが表示されます。一つは CPU、メモリ、ディスクのモジュールを持った Windows マシン、もう一つは、Ping、Eth 1 up、Eth 2 up というモジュールを持った routerFloor5 です。

1.4.1.3 直接通信できないネットワークのリモートモニタリング

デバイスをリモートからモニタする必要があるが、Pandora FMS のリモートサーバがそれらに直接通信できない場合があります。


Broker example no access.png


この例では、本社からある会社のサイトのデバイスをリモートからモニタする必要があるとします。Pandora FMS サーバは本社にあり、他の会社のサイトに VPN で接続しています。何らかの制限により Pandora のリモートサーバはリモートでアクセスできません。会社のサイトをモニタリングするには、ブローカーモードを使います。ソフトウエアエージェントは、異なるデバイスとして Pandora サーバに XML を送信できます。

ソフトウエアエージェントの設定ファイルでは、モニタするデバイスの数だけブローカーを追加します。設定例は次の通りです。

broker_agent device_1
broker_agent device_2
broker_agent device_3
broker_agent device_4
...

ブローカーが作成されると、それぞれのデバイスのモニタリングをそれぞれのブローカーの設定ファイルで設定できます。例えば、Windows マシンで、device_1 の設定は次の通りです。

module_begin
module_name Ping
module_type generic_proc
module_ping 192.168.100.54
module_ping_count 2
module_ping_timeout 500
module_end

module_begin
module_name CPU_Load
module_type generic_data
module_wmiquery SELECT LoadPercentage FROM Win32_Processor
module_wmicolumn LoadPercentage
module_end

module_begin
module_name Mem_Free
module_type generic_data
module_wmiquery SELECT LoadPercentage FROM Win32_Memory
module_wmicolumn FreeMemory
module_end

module_begin
module_name Disk_Free
module_type generic_data
module_wmiquery SELECT LoadPercentage FROM Win32_Disk
module_wmicolumn FreeSpace
module_end

この設定で、異なる会社のサイト間で通信に制限があったとしても、リモート設定機能を利用でき、また、モニタした情報を Pandora FMS サーバへ送信することができます。

1.4.1.4 ブローカーを使ったモニタリング負荷分散

ブローカーモードは、複数のネットワークでモニタリングの負荷を分散するのにとても便利です。


Broker scalation example.png


この例では、A から Z の複数のネットワークがあり、それぞれ 1000のデバイスがあります。Pandora FMS のリモートサーバの許容量は、役 2000エージェントです。そのため、負荷分散のためにブローカーモードでソフトウエアエージェントを利用することにします。ブローカーモードを有効にしたソフトウエアエージェントは、リモートでネットワークから全てのデバイスをモニタし、データを XML で Pandora FMS の中央サーバへ送ります。

それぞれのネットワークに、ブローカーモードを有効にしたエージェントがあります。モニタするデバイスの分だけブローカーを作成します。ソフトウエアエージェントの Broker_Agent_Net_A の設定は次のようになります。

broker_agent device_1
broker_agent device_2
broker_agent device_3
broker_agent device_4
...

さらに、それぞれのブローカーには、モニタするデバイスのモジュールを追加します。例えば、ブローカー device_1 はルータで、次のような設定です。

module_begin
module_name Ping
module_type generic_proc
module_ping 192.168.100.54
module_ping_count 2
module_ping_timeout 500
module_end

module_begin
module_name Eth 1 up
module_type generic_data
module_snmpget
module_snmpversion 1
module_snmp_community public
module_snmp_agent 192.168.100.54
module_snmp_oid .1.3.6.1.2.1.2.2.1.1.1
module_end

module_begin
module_name Eth 2 up
module_type generic_data
module_snmpget
module_snmpversion 1
module_snmp_community public
module_snmp_agent 192.168.100.54
module_snmp_oid .1.3.6.1.2.1.2.2.1.1.2
module_end

他の例として、ブローカー device_2 は次のようなモジュールで Windows マシンをモニタします。

module_begin
module_name Ping
module_type generic_proc
module_ping 192.168.100.54
module_ping_count 2
module_ping_timeout 500
module_end

module_begin
module_name CPU_Load
module_type generic_data
module_wmiquery SELECT LoadPercentage FROM Win32_Processor
module_wmicolumn LoadPercentage
module_end

module_begin
module_name Mem_Free
module_type generic_data
module_wmiquery SELECT LoadPercentage FROM Win32_Memory
module_wmicolumn FreeMemory
module_end

module_begin
module_name Disk_Free
module_type generic_data
module_wmiquery SELECT LoadPercentage FROM Win32_Disk
module_wmicolumn FreeSpace
module_end

ソフトウエアエージェントをブローカーモードを有効にして使うことで、数千のデバイスからのデータを簡単に負荷分散して収集することができます。

1.5 ソフトウエアエージェントを使ったインベントリ

Pandora FMS ソフトウエアエージェントは、ハードウエアおよびソフトウエアのインベントリの機能をサポートします。インベントリシステムは、企業のサーバで使われている CPU、拡張カード、メモリ、パッチ、ソフトウエアなどの情報を取得することができます。また、インベントリに変化が発生したときにアラートを上げることもできます。例えば、ディスクを交換したり、アプリケーションが削除されたときです。

より詳細の情報は、ソフトウエアエージェントによるローカルインベントリを参照してください。

1.6 UDP リモートコマンド

1.6.1 エージェントからのオンデマンドでの情報提供

ソフトウェアエージェントは、リモートリクエストを受信して処理を実行することができます。

Template warning.png

UDP は本質的に安全ではないことに注意してください(ただし、応答を損なうことなくメッセージを送信するには効率的です)。

 


Pandora FMS サーバが担当するソフトウェアエージェントに要求を送信できるようにするには、以下を設定します。

  • udp_server: この機能を有効化(1)または無効化(0)します。
  • udp_server_port: ソフトウエアエージェントの UDP サーバのリスニングポートです。
  • udp_server_auth_address: UDP サーバがリクエストを受け付ける IP アドレスです。0.0.0.0 に設定すると、すべての発信元からのリクエストを受け付けます。

変更を適用するためにソフトウエアエージェントを再起動します。

Template warning.png

どこからでも要求を受け入れるために 0.0.0.0 に設定できますが、この方法はお勧めしません。 複数の Pandora FMS サーバがある場合や IPv6 を利用している場合は、異なる IP をカンマで区切って設定できます。たとえば、IPv6 で 2001:0db8:0000:130F:0000:0000:087C:140B がある場合、その省略形は 2001:0db8:0:130F::87C:140B です。両方をコンマで区切って使用します。

 


1.6.2 ソフトウエアエージェントへのサービス再起動要求の送信方法

Pandora FMS サーバの /usr/share/pandora_server/util に含まれる udp_client.pl を使います。コマンドラインから実行したり、コンソールの 設定済のコマンド "Remote agent control" を使ったアラートで使うことができます。

また、Restart agent という設定済のアラートアクションもあります。このスクリプトで、REFRESH AGENT を行います。

Agent restart action.png

次に、アラートの強制実行をするか、アラートを起動するためにモジュールを強制的に障害状態にして、設定を確認します。

1.6.3 カスタムリモートコマンド

エージェントのリフレッシュコマンドとは別に、Pandora サーバからの要求によりエージェントでカスタムアクションを実行することができます。

process_<nameoftheorder>_start comando

例えば、リモートから sshd サービスを起動したい場合は次のようにします。

process_sshd_start /etc/init.d/sshd start

作成したリモートコマンドごとに、Pandora FMS コンソールで新たなアラートアクションを作成する必要があります。すでに udp でコマンドを送信する設定がされている "Remote agent control" アクションをコピーすると良いでしょう。フィールド1 に、"START PROCESS sshdproc" を設定します。

Udp process.JPG

sshd サービスを起動させたいエージェントで、新たなアラートアクションで新たな手動アラートを設定する必要があるだけです。これにより、手動でアラートを実行することにより、起動コマンドを発行することができます。

Info.png

スクリプトの実行順序も作成することができます。これで、"アラートの強制" をクリックすることにより、さまざまなリモートアクションをリモートエージェントで実行することができます。

 


1.7 ソフトウエアエージェントでのプラグインの利用

プラグインは、ソフトウェアエージェントから複雑で高度なチェックを実行することができるものです。単一の値だけではなく、複数のモジュールを返すことができます。 Pandora FMS サーバによって実行されるサーバプラグインとは異なり、エージェントプラグインはXMLでデータを返し、同時に1つまたは複数のモジュールのデータを返します。

1.7.1 Windows システムでの実行

Windows では、デフォルトの全プラグインは、VBScript でプログラムされています。これらを実行するには、フルパスで適切なインタプリタを使用する必要があります。

以下に、Windows エージェントにデフォルトで含まれているプラグインのいくつかの使い方を示します。

module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\logevent_log4x.vbs" Application System 300
module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\df.vbs"
module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\ps.vbs" iexplore.exe myapp.exe

Windows エージェントでは、さまざまなプラグインを使用できます。

1.7.2 Unix システムでの実行

Unix プラグインは、デフォルトでエージェントのディレクトリの "/plugin" 以下、/etc/pandora/plugins にあります。そのため、このディレクトリにある限りは実行時にフルパスを指定する必要はありません。

いくつかのプラグイン利用例を以下に示します。

 module_plugin grep_log /var/log/syslog Syslog .
 module_plugin pandora_df tmpfs /dev/sda1

Unix ソフトウエアエージェントには、デフォルトでいくつかのプラグインが含まれています。

1.7.3 コンソールからのエージェントプラグインの管理

Enterprise版では、設定ファイルを直接編集せずに管理することができます。リモート設定を有効にすると、管理画面のソフトウェアエージェントにプラグインエディタータブが表示されます。

Plugin editor tab.png

この部分には、エージェント内で有効になっているプラグインのリストが表示され、プラグインの削除、追加、および無効化が可能です。ポリシープラグインに関しては、ポリシーを再度適用すると無効のままになるため、無効化すると便利な場合があります。

Plugin editor simple.png

このエディターで管理されるプラグインは、エージェントの設定ファイルから編集できます。

Plugin editor conf.png

1.7.3.1 例 1

ソフトウエアエージェントのプラグインは、一つのデータもしくはグループ化したデータを返すことができます。Windows で一つのデータを返す ps.vbs の例を示します。次の設定でプラグインを実行します。

module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\ps.vbs" IEXPLORE.EXE

プロセスがダウンしている場合は 0 を返し、プロセスがいる場合は 1 を返すモジュールです。

<module>
    <name><![CDATA[IEXPLORE.EXE]]></name>
    <description><![CDATA[Process IEXPLORE.EXE status]]></description>
    <data><![CDATA[1]]></data>
</module>

1.7.3.2 例 2

次に Windows で複数のデータを返す df.vbs プラグインの例を示します。次の設定でプラグインを実行します。

module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\df.vbs"

プラグインは見つけたモジュールごとにモジュールを返します。出力結果は次の通りです。

<module>
    <name><![CDATA[C:]]></name>
    <description><![CDATA[Drive C: free space in MB]]></description>
    <data><![CDATA[8050]]></data>
</module>

<module>
    <name><![CDATA[D:]]></name>
    <description><![CDATA[Drive D: free space in MB]]></description>
    <data><![CDATA[900]]></data>
</module>

1.7.4 コンソールからの高度なエージェントプラグイン管理

Info.png

バージョン NG 750 以上

 


エージェントの設定にプラグイン設定トークンがあり、有効にすると、module_begin および module_end タグ内のプラグイン定義をカプセル化するオプションを使うことができます。

module_intervalmodule_crontab などを、設定に入れることができるようになります。

このトークンを有効にするには、エージェント管理でエージェントプラグインにアクセスし、設定の上部の 詳細(Advanced) にアクセスするだけです。

Plugin editor advanced2.png

1.7.5 独自エージェントプラグインの作成方法

プラグインは、任意のプログラミング言語で作成することができます。一般的なルール と開発の特別なルールに気を付けてください。

以下のルールに従います。

  • やりたいことが自動実行されます (インタラクティブな実行ではありません)。そのため、事前にコマンドライン (シェル) で動作確認をしてください。どんな種類のスクリプト言語やコンパイル言語でも利用できます。なお、それを実行するために必要な依存ファイル (ライブラリ、dll 等) も用意する必要があります。
  • プラグインは、標準出力に情報を出力しなければなりません (echo や printf など各言語に応じたコマンドにて)。また、Pandora FMS エージェントが情報を返すフォーマットとして XML を利用する必要があります。

以下に、数値モジュールの XML の例を示します。

<module>
<name><![CDATA[Sample_Module]]></name>
<type><![CDATA[generic_data]]></type>
<data><![CDATA[47]]></data>
<description><![CDATA[47]]></description>
</module>

<![CDATA[xxx]]> は、データを示す記述として使われ、XML で <、>、& や % などの文字を正しく扱えるようにするためのものです。

独自プラグインを作成する前に、http://pandorafms.org にある Pandora FMS プラグインライブラリを参照してください。また、独自プラグインを作成したら、他のユーザが使えるように是非ライブラリにアップロードしてください。

Template warning.png

カスタムプラグインの終了コードは 0 になるようにしてください。そうでないと、Pandora FMS エージェントはプラグインでエラーが発生したものと認識し、出力を無視します。

 


1.7.5.1 シェルスクリプト(Linux/Unix)によるプラグインの例

#!/bin/bash
# Detect if local Mysql is without password
# First, do we have a running MySQL?
CHECK_MYSQL=`netstat -an | grep LISTEN | grep ":3306 "`
if [ ! -z "$CHECK_MYSQL" ]
then

        CHECK_MYSQL_ROOT=`echo "select 1234" | mysql -u root 2> /dev/null | grep 1234`
        if [ -z "$CHECK_MYSQL_ROOT" ]
        then
        echo "<module>"
        echo "<type>generic_proc</type>"
        echo "<name>mysql_without_pass</name>"
        echo "<data>1</data>"
        echo "<description>MySQL have a password</description>"
        echo "</module>"
        else
        echo "<module>"
        echo "<type>generic_proc</type>"
        echo "<name>mysql_without_pass</name>"
        echo "<data>0</data>"
        echo "<description>MySQL do not have a password</description>"
        echo "</module>"
        fi
fi

exit 0

1.7.5.2 VBScript (Windows) によるプラグインの例

' df.vbs
' Returns free space for avaible drives.
' --------------------------------------

Option Explicit
On Error Resume Next

' Variables
Dim objWMIService, objItem, colItems, argc, argv, i

' Parse command line parameters
argc = Wscript.Arguments.Count
Set argv = CreateObject("Scripting.Dictionary")
For i = 0 To argc - 1
    argv.Add Wscript.Arguments(i), i
Next

' Get drive information
Set objWMIService = GetObject ("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery ("Select * from Win32_LogicalDisk")

For Each objItem in colItems
	If argc = 0 Or argv.Exists(objItem.Name) Then
		If objItem.FreeSpace <> "" Then
			Wscript.StdOut.WriteLine "<module>"
			Wscript.StdOut.WriteLine "    <name><![CDATA[" & objItem.Name & "]]></name>"
			Wscript.StdOut.WriteLine "    <description><![CDATA[Drive " & objItem.Name & " free space in MB]]></description>"
			Wscript.StdOut.WriteLine "    <data><![CDATA[" & Int(objItem.FreeSpace /1048576) & "]]></data>"
			Wscript.StdOut.WriteLine "</module>"
            Wscript.StdOut.flush
		End If
	End If
Next

1.7.6 エージェントでの nagios プラグインの利用

Nagios には多くのすばらしいプラグインがあり、Pandora FMS で利用することができます。プラグインサーバで nagios 互換モードを使ってリモートでプラグインを利用することができますが、ステータスを取得するのみで、いくつかの nagios プラグインが持っている詳細情報を扱うことができません。

ソフトウエアエージェントで nagios プラグインラッパーを使うことで、この問題が解決します。ラッパーは、バージョン 3.2 の Unix エージェントにデフォルトで付属しています。Pandora FMS Windows エージェント用の同様のプラグインは、http://pandorafms.com のリソースライブラリ [1] からダウンロードできます。

nagios プラグイン用のプラグインラッパーは何をするのでしょうか。

nagios プラグインをそれ独自のパラメータを使って実行し、出力データを Pandora FMS で使いやすいように、次のような 2種類のデータに変換します。

  • ステータス情報: 正常(1)、異常(0)、警告(2)、不明() および、その他(4)。デフォルトでは、proc モジュールを利用します。正常および異常状態は、デフォルトで認識します。もし、警告やその他の状態を利用したい場合は、手動でモジュールのしきい値を設定してください。
  • 詳細情報: 通常は文字列データで、モジュールの説明フィールドに入ります。例えば、次のような形になります。
<![CDATA["OK: successfully logged in"]]>

1.7.6.1

実行権限がついた pop3 プラグイン (/tmp/check_pop3_login) があったとします。これは、pop3 アクセスが正常かどうかチェックします。リモートホストに接続し、ユーザ名とパスワードを送信し、問題ないかを確認します。コマンドラインからは、次のように実行できます。

/tmp/check_pop3_login  mail.artica.es [email protected] mypass

次のような結果が返ってきます。

OK: successfully logged in.

異常の場合はつぎのようになります。

Critical: unable to log on

ラッパーの利用は簡単で、コマンドの前に、ラッパーとモジュール名を設定します。

/etc/pandora/plugins/nagios_plugin_wrapper sancho_test /tmp/check_pop3_login  mail.artica.es [email protected] mypass

これで、エージェントプラグイン用に完全な XML を生成します。

<module>
<name>sancho_test</name>
<type>generic_proc</type>
<data>0</data>
<description><![CDATA[Critical: unable to log on]]></description>
</module>

または、

<module>
<name>sancho_test</name>
<type>generic_proc</type>
<data>1</data>
<description><![CDATA[OK: successfully logged in.]]></description>
</module>

pandora_agent.conf の全設定は次のようになります。

module_plugin nagios_plugin_wrapper POP3_artica.es /tmp/check_pop3_login mail.artica.es [email protected] mypass

これは、モジュール内で次のように表示されます。(障害時)


Sample plugin wrapper.png

1.8 KeepAlive によるモニタリング

特別なモジュールがあります。"keep_alive" と呼ばれる独特なもので、エージェントからの接続がないことを知るのに便利です。エージェントが情報を送信を停止した場合、それを通知するのに利用します。

エージェントに情報を取得するリモートもしくはローカルのモジュールがある場合、エージェントの最新の "接続" が更新されます。全モジュールの中の一つのモジュールでもデータが更新されれば、最新の接続日時が更新されます。これは、エージェントが "応答しているかどうか" を知るのに便利です。正確には、その間隔の 2倍の時間データが更新されないと、エージェントは "停止" と認識します。エージェントの間隔が 5分であれば、10分以上更新されなければ、"停止" と認識します。

keepalive モジュールが設定されている場合、それを通知し異常状態にします。

このモジュールの設定はとても簡単です。新たに "KeepAlive" タイプのモジュールを作成すれば良いだけです。



Keepalive.JPG



作成されると、定義した間隔でエージェントからデータを取得できている間は、常に "正常" 状態(緑)になります。

Keepalive1.png


エージェントがデータ送信を停止した場合 (この例では、1分間隔にしています)、自動的に障害状態(赤)になります。



Keepalive2.png


重要な点として、エージェントのデータ収集として Ping などのリモートモジュールが定義されている場合、keepalive モジュールは異常状態にはならないことに注意してください。なぜなら、Ping を通してエージェントの状態がアップデートされるためです。

それ以外では、keepalive モジュールは他のモジュールと同じように動作します。アラートに関連付けることが可能ですし、レポート、マップ等、他の要素で利用することもできます。

Info.png

keepalive モジュールは、(リモート設定が有効化されていない場合でも)コンソールからのみ作成できます。pandora_agent.conf には設定はありません。

 


1.9 コマンドスナップショットモニタリング

このモニタリングは、バージョン 4.0.3 から対応しており、単一の値や文字列ではなくコマンドの出力結果をキャプチャするためのものです。このモジュールは、情報をテキストとして保存しますが、単一データではなくコマンドの出力結果全体を保存します。コマンドの出力結果をそのまま表示します。

言葉で説明するより画面がわかりやすいです。

Snapshot 1.png

これは、Pandora FMS で "netstat -an" コマンドの出力をキャプチャしたものです。コマンドスナップショットのアイコンをクリックすると、複数行にわたる出力が表示されます。

Snapshot 2.png

これらは、時間ごとに異なるスナップショットになります。Pandora は、エージェントが異なる情報を取得した場合にのみ情報を表示します(データタイプは、generic_data_string であることに注意してください)。毎回データを保存したい場合(お勧めはしません)は、async_string を利用します。変化があった場合の情報のみを表示することは、データに問題がある部分を確認したり、ある時間間隔におけるコマンドスナップショット内の変化を比較するのに便利です。

コマンド出力をスナップショットとして取得するためには、XMLタグ付きで全データを送信する簡単なプラグインを書く必要があります。また、module_plugin の書式で通常のプラグインと同様にプラグインを実行します。以下に、前述の netstat コマンドの出力を生成するスクリプト例を見てみましょう。

#!/bin/bash
echo "<module>"
echo "<name>netstat</name>"
echo "<type>generic_data_string</type>"
echo "<data><![CDATA["
netstat -an | grep LIST
echo "]]></data>"
echo "</module>"

このスクリプトをファイルに保存(ファイルコレクションでリモートから配布できます)し、エージェントから次のように実行します。

module_plugin <full path for file>

これにより、ほぼどんなコマンド("netstat...." の部分を任意のコマンドに置き換えてください)であっても、エージェントがコマンドのスナップショットを生成します。Unix システムでは、次のようなコマンドも便利です。

* top -b -n 1
* ps aux
* vmstat 1 5
* who 
* last -10

Windows システムでは、つぎのようなものがあります。

* tasklist
* netstat -an
* net start

Info.png

スクリプト内で XML を生成する必要があることに注意してください。module_exec で実行してしまうと、コマンドの実行結果の一行一行が異なるデータとなってしまい、コマンドスナップショットとして見ることができません。

 


Template warning.png

動作させるためには、Pandora FMS コンソール(セットアップ)と情報を取集するエージェントの両方の設定が必要です。

 


コンソールではオプションを有効化します。

Command line snapshot setup.png

1.10 画像の監視と表示

この監視は、バージョン 6.0SP4 以降で可能です。base64 でエンコードされたテキストフォーマットで、画像を含むモジュールを定義することができ、結果に画像を表示することができます。データはテキストで保存されますが、画像として表示されます。

'画像キャプチャ' アイコンをクリックしたときに、"data:image" (画像は base64) を含む文字列を Pandora FMS が検出します。

Snapshot text 1.png

このように画像を表示するには、全データと必要な XML タグを送るプラグインを書き、モジュールプラグインとして実行する必要があります。以下のプラグインの例は、上記の画像を出力する例です。

#!/bin/bash
echo "<module>"
echo "<name>Current league leader</name>"
echo "<type>async_string</type>"
echo "<data><![CDATA[data:image/jpeg;base64,/9j/4AAQSkZ....]]></data>"

//the previous data would be generated by a device/application supplying images in base64.

echo "</module>"

上記のファイルをエージェント上で保存し(またはファイルコレクションで配り)し、次のように実行します。

module_plugin <ファイルへのフルパス>

1.11 Windows における特定の監視

Windows プラットフォームのソフトウエアエージェントは、モニタリングを簡単にするための特有の機能があります。以下にいくつかの例とともに、機能の説明をします。

Info.png

プロセスの名前に空白が含まれている場合は、 " " を使用しないでください。 プロセスの名前は、拡張子 .exe を含め、Windows のタスク管理 (taskmngr) に表示されているものと同じである必要があります。 大文字と小文字を尊重する ことが重要です。

 


Info.png

ウォッチドックは、モジュールが非同期の場合のみ動作します

 


1.11.1 プロセスモニタリングと、プロセスウォッチドック

1.11.1.1 プロセスモニタリング

module_proc パラメータは、指定した名前のプロセスがそのマシンで動いているかどうかをチェックします。モジュール定義は次の通りです。

module_begin
module_name CMDProcess
module_type generic_proc
module_proc cmd.exe
module_description Process Command line
module_end

プロセス名にスペースが含まれる場合は、«" "»を使わないでください。プロセス名は、Windows のタスクマネージャー(taskmngr)で表示されるものと同じで、拡張子 .exe を含んでいます。大文字、小文字を正しく設定することが重要です。

プロセスが動作していない時、すぐにソフトウエアエージェントから通知が欲しい場合は、module_async yes のパラメータを設定します。モジュールの設定例は次の通りです。

module_begin
module_name CMDProcess
module_type generic_proc
module_proc cmd.exe
module_async yes
module_description Process Command line
module_end
1.11.1.2 プロセスウォッチドック

Windows のソフトウエアエージェントのウォッチドック機能は、プロセスがダウンしたときに再起動することができます。ウォッチドックは、モジュールが非同期の場合にのみ動作します。

ウォッチドックモジュールの設定例を以下に示します。

module_begin
module_name Notepad
module_type generic_data
module_proc notepad.exe
module_description Notepad
module_async yes
module_watchdog yes
module_user_session yes
module_start_command c:\windows\notepad.exe
module_startdelay 3000
module_retrydelay 2000
module_retries 5
module_end

上記の例では、ウォッチドックが notepad.exe プロセスがダウンしたときは常に c:\windows\notepad.exe を実行しそれを再起動します。また、再起動のリトライは 3秒間隔で 5回まで実施し、1回のタイムアウトは 2秒という設定です。この例では、notepad.exe プロセスはユーザのセッションで起動します。

1.11.2 サービスモニタリングと、サービスウォッチドック

1.11.2.1 サービスモニタリング

module_service パラメータは、指定したサービスがマシンで動作しているかどうかをチェックします。モジュールの設定例を以下に示します。

module_begin
module_name Service_Dhcp
module_type generic_proc
module_service Dhcp
module_description Service DHCP Client
module_end

サービス名にスペースが含まれる場合、«" "» は使わないようにしてください。サービス名を見つけるには、Windows サービスマネージャのサービス名フィールドを見てください。大文字、小文字の確認が重要です

サービスがダウンしたときにソフトウエアエージェントがすぐに通知して欲しい場合は、module_async yes を追加する必要があります。モジュールの設定例を以下に示します。

module_begin
module_name Service_Dhcp
module_type generic_proc
module_service Dhcp
module_description Service DHCP Client
module_async yes
module_end
1.11.2.2 サービスウォッチドック

プロセスと同様に、ダウンしたサービスを再起動できるウォッチドックモードがあります。ウォッチドックを使ったモジュール定義例は次の通りです。

module_begin
module_name ServiceSched
module_type generic_proc
module_service Schedule
module_description Service Task scheduler
module_async yes
module_watchdog yes
module_end

ウォッチドックの定義には、特別なパラメータは必要ありません。サービスの定義内にあるためです。

1.11.3 基本リソースのモニタリング

この項では、Windows マシンの基本的な値をモニタリングする方法について説明します。

1.11.3.1 CPU のモニタリング

CPU をモニタするには、CPU 使用率を返す module_cpuusage パラメータを利用します。

次のような設定で、CPU の ID を元に CPU をモニタすることができます。

module_begin
module_name CPU_1
module_type generic_data
module_cpuusage 1
module_description CPU usage for CPU 1
module_end

また、次のように、すべての CPU の平均使用率をモニタすることもできます。

module_begin
module_name CPU Usage
module_type generic_data
module_cpuusage all
module_description CPU Usage for all system
module_end
1.11.3.2 メモリのモニタリング

メモリをモニタするには、システムの空きメモリ容量を返す module_freememoryと、空き率をパーセンテージで返す module_freepercentmemory の 2つのパラメータを利用できます。

module_freememory を使ったモジュールの例を以下に示します。

module_begin
module_name FreeMemory
module_type generic_data
module_freememory
module_description Non-used memory on system
module_end

module_freepercentmemory を使ったモジュールの例を以下に示します。

module_begin
module_name FreePercentMemory
module_type generic_data
module_freepercentmemory
module_end
1.11.3.3 ディスクのモニタリング

ディスクスペースをモニタするには、空き容量を返す module_freedisk と、空き率をパーセンテージで返す module_freepercentdisk の 2つのパラメータを利用できます。両方のパラメータには、モニタするドライブ名の指定が必要で、":" を忘れないようにしてください。

module_freedisk を使ったモジュールの設定例を以下に示します。

module_begin
module_name FreeDisk
module_type generic_data
module_freedisk C:
module_end

module_freepercentdisk を使ったモジュールの設定例を以下に示します。

module_begin
module_name FreePercentDisk
module_type generic_data
module_freepercentdisk C:
module_end
1.11.3.4 WMI クエリ

Pandora FMS のソフトウエアエージェントは、システムに関連した情報や外部の情報を保持するのに使われる共通の技術である WMI クエリおよび ODBC 接続を使って情報を取得することができます。

module_wmiquery パラメータを使って、ソフトウエアエージェントはローカルで WMI クエリを実行することができます。クエリを実行するには、実行するクエリを module_wmiquery パラメータで設定し、取得したい情報を持つカラムを module_wmicolumn で指定します。

例えば、次の設定ではインストールされているサービス一覧を取得できます。

module_begin
module_name Services
module_type generic_data_string
module_wmiquery Select Name from Win32_Service
module_wmicolumn Name
module_end

WMI を使って、CPU ロードも取得できます。

module_begin
module_name CPU_Load
module_type generic_data
module_wmiquery SELECT LoadPercentage FROM Win32_Processor
module_wmicolumn LoadPercentage
module_end

1.12 バージョン 7 NG 以前

1.12.1 エージェントの名前

Pandora FMS バージョン 7 以降では、エージェントには、別名と名前(またはユニークな識別子)があります。デフォルトでは、エージェントはランダムの 16進数から成る文字列の名前(または識別子)を生成します。また、マシンのホスト名から成る別名(または表示名)を生成します。

以前のバージョンでは、マシンの "名前" しかありませんでしたが、以前のシステムは Pandora FMS の最新バージョンと完全に互換性があります。同じPandora FMS インストールで同じ識別子(または名前)両方のエージェントのデータが混在し、上書きされます。 そのため、バージョン7以降では、異なる名前のエージェントが同じ別名を持つ可能性があります。

以下の設定トークンにより、この動作を変更できます。

pandora_agent
pandora_alias

デフォルトでは、設定ファイルのいずれかを使用しないので、マシンのホスト名を別名として取得し、非常に大きなランダムな16進数を名前または識別子として取得します。エージェント名は表示されなくなり(エージェント詳細表示を除く)、変更することはできません。 エージェントの一意の識別子はエージェントの「名前」であるため、エージェントの別名はソフトウェアエージェントの設定を心配することなく、いつでも変更できます。