エンドポイントを使った監視

概要

エンドポイントは、情報を収集するオペレーティングシステム上でインストール、実行され、モジュールごとにチェックを実行します。

エンドポイント独自のディレクティブは、オペレーティングシステムから特定のデータ (CPU 使用率、メモリ、イベントなど) を直接収集するために使用され、事前定義されたスクリプトの指示に従って オペレーティングシステム独自のコマンド を実行します。

Pandora FMS データサーバ は、エンドポイントによって XML ファイル で生成および送信されたすべての情報を処理し、データベースに保存します。

エンドポイント設定

すべての設定とパラメータは、エンドポイントと一緒にローカルにインストールされる pandora_agent.conf ファイルに保存されます。基本設定は "Pandora FMS エンドポイントの設定" で説明されており、WUX 監視の場合は プラグインとして手動実行 です。高度な設定については以下で説明します。

ローカル設定

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

module_begin
module_name <your module name>
module_type generic_data
module_exec <your command>
module_description <your description>
module_end
  • module_name: モジュールの名前。
  • module_exec: 実行されるコマンド。
  • module_description: 監視タスクの説明。

例 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

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

  • MS Windows® のエンドポイントで、module_name に拡張 ASCII 文字 (áéíóú など) を使用したい、または使用する必要がある場合は、外部プラグインまたはスクリプトを使用する必要がありますソフトウェアエージェントプラグインの章 を参照してください。
  • MS Windows® 上のエンドポイントの場合、PowerShell® によるネイティブチェックの実行に module_exec_powershell も使用できます。

例 2

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

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

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

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

例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

リモート設定

リモート設定を有効にするには、パラメータ: remote_config 1 を有効にし、エンドポイントを再起動する必要があります。

Pandora FMS Web コンソールからエンドポイントのファイルをリモートで管理できます。各エージェントの設定は、Pandora FMS サーバの 2 つのファイル (<_md5_>.conf<_md5_>.md5) に保存されます。ここで、<_md5_> はエンドポイント名のハッシュです。これらのファイルはそれぞれ次の場所に保存されます。

/var/spool/pandora/data_in/conf

および

/var/spool/pandora/data_in/md5

エンドポイントのリモート設定を有効にすると、設定ファイルにローカルで加えられた変更は、コンソールに保存されている設定によって上書きされます。エンドポイントのローカル管理に戻るには、サービスを停止し、remote_config をゼロにリセットして、サービスを再度開始します。

カスタムフィールド

カスタムフィールドを使用すると、エンドポイントに追加情報を追加できます。 カスタムフィールドは、PFMS 1.0 API とコマンド set create_custom_field を使用して作成するか、ウェブコンソールのメニュー 管理(Management) → リソース(Resources) → カスタムフィールド(Custom fields) → フィールドの作成(Create field) を使用して作成できます。

  • オプション 選択肢の有効化(Enabled combo)パスワードタイプ(Password type)リンクタイプ(Link type) は相互に排他的です。つまり、いずれか 1 つだけを使用できます (または、デフォルト値のなし)。
  • 前面に表示(Display up front) フィールドを有効にすると、カスタムフィールドに値が設定されている場合、その情報はエンドポイントの概要に表示されます。チェックされたカスタムフィールドに値が設定されていない場合、カスタムフィールドボックスは非表示のままになります

    さらに、このトークンを有効化して、カスタムフィールド情報をコマンドセンターに送信する必要があります。

  • 選択肢の有効化(Enabled combo): このパラメーターを使用すると、ドロップダウンリストからのパラメータ選択を有効化できます。 有効化した場合、対応するカスタムフィールドの構成ウィンドウに新しいフィールドが表示され、カンマで区切で値を入力します。
  • パスワードタイプ(Password type): ウェブコンソールでは、フィールド (パスワード) の値がアスタリスクを使用して表示されます。
  • リンクタイプ(Link type): ウェブコンソールまたは エンドポイントから受信した XML によって入力されるウェブリンクをホストするカスタムフィールドを追加できます。JSON 形式の CDATA 命令<![CDATA[…]]> が埋め込まれた XML にリンクを含めることができます。 たとえば、リンクの JSON 形式が次の場合、
["Web name","https://example.com"]

XML は次のような書式になります。

<custom_fields>
  <name>![CDATA[web]]</name>
  <value>![CDATA[["Web name","https://example.com"|]]]</value>
</custom_fields>

XML の確認Tentacle プロトコルのセキュリティアーキテクチャ(XML フォーマットでの Pandora FMS データサーバへのデータ送信の仕組)、Pandora FMS データサーバのセキュリティアーキテクチャ(エンドポイントの自動作成の制限、各エンドポイントが属するエンドポイントグループのパスワード設定) を参照してください。

カスタムフィールドは、custom_fieldx_name および custom_fieldx_value トークンを用いて、エンドポイント設定ファイルから渡すこともできます。 例:

custom_field1_name Serial Number
custom_field1_value 56446456KS7000

シリアル番号(Serial Number) と呼ばれるカスタムフィールドは、Pandora FMS のインストール時にデフォルトで作成されます。カスタムフィールドは必要に応じて必要なだけ作成でき、それぞれのタイプ (単一値、ウェブリンク、パスワードタイプ、およびオプションリストタイプ) を作成できます。 各カスタムフィールドの数値識別子の順序は関係ありません。名前がまったく同じであることを確認する必要があるだけです。

custom_field11_name Simple custom field name
custom_field11_value Simple custom field value

custom_field12_name Custom field Link type
custom_field12_value ["Pandora FMS web site","https://pandorafms.com"]

custom_field13_name Custom field Password type
custom_field13_value My;Password;

custom_field14_name Custom field Combo type
custom_field14_value Two

カスタムフィールド Combo type では、エンドポイントによって送信される値がその項目の 1 つに正確に一致する必要があります。そうでない場合、値は変更されません。

共通設定パラメータ

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

  • server_ip: Pandora FMS サーバの IP アドレスです。
  • server_path: Pandora FMS サーバの 'incoming' フォルダのパスです。デフォルトは、
    /var/spool/pandora/data_in

    です。

  • temporal: テンポラリフォルダです。デフォルトは、/tmp です。
  • interval: エンドポイントの実行間隔です。デフォルトは、300 です。
  • logfile: エンドポイントのログファイルです。デフォルトは、
    /var/log/pandora/pandora_agent.log

    です。

パスワード保護グループ

メニュー 管理(Management) → リソース(Resources) → エージェントグループ管理(Manage agent groups).

デフォルトでは、エンドポイントが初めて Pandora FMS サーバにデータを送信すると、エンドポイント設定ファイルで定義されたグループに自動的に追加されます。

グループに対してパスワード(スペースや記号は使用しない)を設定することが可能です。この設定により、エンドポイント設定ファイルで正しいパスワードが指定されていない限り、エンドポイントはグループに追加されません。

このグループに新しいエンドポイントを追加するには、その 設定ファイル を編集し、次の設定オプション group_password を追加して、エンドポイントを再起動します。

エージェントおよびエンドポイントのモジュール

モジュールの種類

データのタイプにより:

  • generic_data: 数値型。
  • generic_data_inc: 増分型。
  • generic_data_inc_abs: 絶対増分型。
  • generic_proc: ブール型。
  • generic_data_string: 英数字型。
  • async_data: 非同期数値型。
  • async_string: 非同期英数字型。
  • async_proc: 非同期ブール型。
  • 画像モジュール: 文字列型モジュール(generic_data_string または async_string)をベースとして使用します。モジュールに含まれるデータが base64 エンコードされた画像(ヘッダー data:image)である場合、画像として識別され、表示画面で画像を取得するためのウィンドウへのリンクが有効になります。さらに、保存された文字列を構成するさまざまな画像の履歴が、それぞれの履歴に表示されます。

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

ローカル(またはエンドポイント)モジュールはすべて、エンドポイントの間隔を「基準」としています。ただし、パラメータ module_interval をゼロより大きい整数に設定すると、基準にそれを乗じた実行間隔とすることができます。

module_interval 2

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

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

管理(Management) → リソース(Resources) → エージェント管理(Manage agents) メニューから、各エージェントの モジュール に直接アクセスできます。ボタンは モジュール作成(Create module) → エンドポイントモジュール(EndPoint module) → 作成(Create) です。

各エンドポイントのリモート設定を有効にする必要があります。

Webコンソールでローカルモジュールを作成するには、フォームを使用します。このフォームには、すべてのモジュールに共通する設定(しきい値、タイプ、グループなど)に加えて、エンドポイント設定ファイルに設定するデータを指定するテキストボックスが用意されています。

  • 基本設定の読み込み(Load basic) ボタンをクリックすると、データ設定(Data configuration) の内容がクリアされ、監視ニーズに合わせて変更する必要のある基本テンプレートが表示されます。
  • 変更後、チェック(Check) ボタンをクリックすると、テンプレートの構文が正しいかどうかが検証されます(ただし、その他のコマンドはチェックされません)。

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

事後処理

エンドポイントは、事後条件モードでのコマンドとスクリプトの実行をサポートしています。これは、モジュール実行で得られた値に応じてアクションを実行できることを意味します。この目的のために、パラメータ module_condition を使用します。

例 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

例 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

例 3

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

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

事前処理

パラメータ module_precondition を使用すると、モジュールの実行前に条件を評価し、その結果に基づいてモジュールを実行するかどうかを決定できます。

例 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

例 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つが重要なプロセスである場合にのみモジュールが実行されます。

高頻度モニタリング

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

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

エンドポイントの設定:

  • interval: 必須。エンドポイントのサンプリング間隔(秒単位)。これはすべてのローカルモジュールに共通する間隔です。
  • intensive_interval: 問題が発生した場合に実行する間隔。この期間内に必ず実行され、条件に一致した場合、この期間内に通知されます(そうでない場合は、intervalで指定された間隔でデータが送信されます)。

モジュール設定:

  • module_intensive_condition = <値>: モジュールの値がこのパラメータで指定した値の場合、エージェントで定義された高頻度の間隔で監視します。
  • 使用できる演算子は、<>!=、値の範囲 (m,n) 、および =~ です。

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

エンドポイント設定ファイル:

interval 300
intensive_interval 10

モジュール:

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分後です。

指定時間モニタリング

エンドポイントは、モジュールを指定時間に実行する設定ができます。書式は 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

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

エンドポイントでのリモートチェック

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

ICMP チェック

ICMP または ping チェックは、マシンがネットワークに接続されているかどうかを知るのに非常に役立ちます。

Unix

module_exec ping -c 1 dir_IP> /dev/null 2>&1; if [ $? -eq 0 ]; then echo 1; else echo 0; fi

MS Windows®:

module_ping dir_IP

注意: module_advanced_options で、ping.exe の高度なオプションを指定できます。

TCP チェック

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

Unix

nmap コマンドとその設定パラメータをコマンドラインで指定すると、IP アドレスのポート 80 が開いているかどうかを確認します(応答タイムアウトは 5秒)。

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

MS Windows®:

パラメータは以下で指定する必要があります。

  • module_tcpcheck: デバイスの IP アドレス
  • module_port: ポート番号
  • module_timeout: タイムアウト値。module_beginmodule_end の間に配置する必要があります。

例:

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

SNMP チェック

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

Unix

module_exec snmpget dir_IP -v 1 -c public .1.3.6.1.2.1.2.2.1.1.148 | awk '{print $4}'

MS Windows®:

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

プロキシモード

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

このモードでは、他のエンドポイントによって生成されたデータファイルを Pandora FMS サーバにリダイレクトできます。プロキシモードで動作するエンドポイントは、監視タスクも実行できます。

設定パラメータ:

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

ブローカーモード

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

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

ブローカーを作成するには、パラメータ broker_agent <broker_name> を含む行を1つ以上追加します(ブローカーごとに 1行)。

Pandora FMS Webコンソールでは、ブローカーは独立したエンドポイントとして表示および管理されます。

  • 実行の際にメモリにデータを保存するモジュール (MS Windows® では module_logevent および module_regexp) は、ブローカーエージェントが設定されている場合は動作しません。
  • ブローカーモードのインスタンスは コレクション を使用できません。

利用例

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

マシンの基本的な情報(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 というモジュールがあります。

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

この例では、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 です。

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

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

この例では、本社からある会社のサイトのデバイスをリモートからモニタする必要があるとします。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 サーバへ送信することができます。

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

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

この例では、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

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

エンドポイントを使ったインベントリ

詳細については、エンドポイントを使用したローカルインベントリ の章をご覧ください。

エンドポイントを使ったログ収集

詳細に関しては、ログ収集と監視 を参照してください。

UDP でのリモートアクション

エンドポイントは、リモートリクエストを受信して処理を実行することができます。

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

Pandora FMS サーバが担当するエンドポイントに要求を送信できるようにするには、以下を設定します。

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

変更を適用するためにエンドポイントを再起動します。

  • すべての送信元からのアクセスを受け入れるように 0.0.0.0 に設定することもできますが、この方法は推奨されません
  • PFMS サーバが複数ある場合、または IPv6 を使用している場合は、異なる IP アドレスをカンマで区切って指定できます。
  • IPv6アドレスが 2001:0db8:0000:130F:0000:0000:087C:140B で、その略称が 2001:0db8:0:130F::87C:140B の場合、カンマで区切って両方のアドレスを指定する必要があります。

エンドポイントへのサービス再起動要求の送信方法

以下のスクリプトを利用する必要があります。

/usr/share/pandora_server/util/udp_client.pl

コマンドラインやから実行したり、コンソールの 設定済のコマンド “Remote agent control” を使ったアラートで使うことができます。

カスタムリモートアクション

エンドポイントサービスの再起動に加えて、カスタムアクション のような以下のタイプのアクションを指定できます。

process_<order_name>_start command

また、ボタンを押すだけで複数のリモート操作を実行するスクリプトを呼び出すような処理を作成することもできます。

エンドポイントでのプラグインの利用

Pandora FMS サーバによって実行されるサーバプラグインとは異なり、エンドポイントプラグイン は 1 つのモジュールまたは複数のモジュールを同時に報告します。

Windows システムでの実行

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

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

module_plugin cscript.exe //B "%ProgramFiles%\pandora_agent\util\logevent_log4x.vbs" Aplication 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

PowerShell チェックの利用

バージョン 776 以降には、module_exec_powershell があり、module_exec モジュールの使用ではサポートされていない特殊文字や複雑な命令 (1 つの命令が次の命令に結果を渡す) を含む、より複雑なコマンドを PowerShell に入力できるようになります。

# Example of Powershell execution module
module_begin
module_name Powershell
module_type generic_data_string
module_exec_powershell <command_1> | <command_2> | … | <command_N>
module_end

コマンドはそのまま入力され、PFMS エンドポイントで処理するために引用符は必要ありません(一方、PowerShell コマンドには引用符が必要な場合があります)。

コマンドが無効な場合、エンドポイントログ(pandora_agent.log ファイル)にエラーが追記されます。

Unix システムでの実行

Unix プラグインは、デフォルトではエンドポイントディレクトリにあります。

/usr/share/pandora_agent/plugins

コンソールからのエンドポイントプラグインの管理

リモート設定を有効にすると、エンドポイントの管理画面でプラ​​グインエディタタブが使用できるようになります。すべてのプラグインには編集および削除アクションがありますが、一部のプラグインは読み取り専用(インベントリセキュリティ)であるため、操作するとエラーメッセージが表示されます。

コンソールからの高度なエンドポイントプラグイン管理

module_begin タグと module_end タグ内にプラグイン定義を 'カプセル化' すると、エンドポイントのプラグイン設定にトークンを追加することができます。

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

独自エンドポイントプラグインの作成方法

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

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

シェルスクリプト(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

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

エンドポイントでの nagios プラグインの利用

Nagiosには、Pandora FMS で使用できるプラグインが多数あります。その方法の 1つは、ヘビーサーバでリモートプラグインを使用し、Nagios 互換性を使用することです。

実行権限がついた 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

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

KeepAlive によるモニタリング

Pandora FMS のユニークなモジュールの一つに keep_alive と呼ばれるタイプがあり、エンドポイントが情報の送信を停止した場合にアラートを発するために使用されます。

KeepAlive モジュールは、リモート設定が有効になっていない場合でも コンソールから作成することができます。また、pandora_agent.conf ファイルの変更は発生しません。

エージェント管理メニューの管理(Management) → リソース(Resources) → エージェント管理(Manage agents)に移動し、エージェントのモジュール(Modules)をクリックする必要があります。

選択したエージェントのモジュール一覧が表示されたら、モジュール作成(Create module) ボタンを押し、モジュールタイプ選択(Select module type) リストから エンドポイントモジュール(Endpoint module) を選択して、作成(Create) ボタンを押してください。モジュールは次のように作成する必要があります。

コマンドスナップショット監視(コマンドスナップショット表示)

topnetstat -n などの複数行の出力を持つコマンドは、モジュールによって完全にキャプチャできます。 モジュールはテキストタイプとして設定する必要があります。

module_begin
module_name process_table
module_type generic_data_string
module_exec ps aux
module_description Command snapshot of running processes
module_group System
module_end
  • 動作させるには、Pandora FMS コンソール (セットアップ) とこの情報を収集するエンドポイントの両方を適切に設定し、情報が 未処理 テキストであることを確認する必要があります。
  • Web コンソールの設定 で、オプション コマンドラインスナップショット(Command line shapshot) を有効にする必要があります。

メインエージェント編集画面のモジュール下部セクションの データ(Data) 列には、コマンドスナップショット表示(Command Snapshot view) という説明付きのアイコンが表示され、クリックすると新しいウィンドウが開きます。

画像の監視と表示

この監視では、base64 エンコードを使用したテキスト形式の画像を含む文字列型 (generic_data_string または async_string) のモジュールを定義でき、特定の文字列の代わりにその画像を表示できます。

次のようなスクリプトファイルを作成します。

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

そのコンテンツをエンドポイント上のファイルに保存するか(またはコレクションで配布する)、次のように実行します。

module_plugin <complete_path_to_the_file>

Windows における特定の監視

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

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

プロセスモニタリング

module_proc パラメータは、特定のプロセス名がこのマシン上で動作しているかどうかを確認します。以下のように設定する必要があります。

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

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

プロセスウォッチドック

MS 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 "%SystemRoot%\notepad.exe"
module_startdelay 3000
module_retrydelay 2000
module_retries 5
module_end

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

サービスモニタリング

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

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

プロセスが動作を停止したときに即座に通知するために、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

サービスウォッチドック

これは、プロセスウォッチドッグと似たような働きをします。

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

The Watchdog definition for services does not require any additional parameters like the one for processes because that information is already within the service definition.

サービスに対するウォッチドッグ定義では、プロセスに対するもののような追加のパラメータは必要ありません。なぜなら、その情報は既にサービス定義内に含まれているからです

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

MS Windows® 用の PFMS エンドポイントをインストールする際に、必要な基本モジュールはすべて含まれています。

一部のモジュールは最初から有効になっていますが、その他のモジュールはリモート設定(またはエンドポイントの .conf ファイルをローカルで編集する)によって有効にする必要があります。

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

メモリのモニタリング

メモリをモニタするには、システムの空きメモリ容量を返す 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

ディスクのモニタリング

ディスクスペースをモニタするには、空き容量を返す 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

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

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