エンドポイント設定
エンドポイントとは?
OS にインストールされ、監視情報を抽出して Pandora FMS (のデータを処理して DB へ保存する)データサーバへ定期的に送信するための小さなソフトウエアです。
エンドポイント設定概要
エンドポイントの動作 (動作パラメータとモジュール) は、その設定ファイルによって決定されます。
- MS Windows® の場合:
%ProgramFiles%\pandora_agent\pandora_agent.conf
- Linux® システムの場合
/etc/pandora/pandora_agent.conf
エンドポイントの一般的なパラメータ
パラメータのほとんどは、MS Windows® および Linux® システムで共通です。 一般パラメータを変更した後は、エンドポイントを再起動する必要があります。
エンドポイント設定ファイルのエンコードは、Linux® システムと MS Windows® システム共に UTF-8 です。ただし、日本語 Windows の場合は Shift_JIS の利用を推奨します。
エンドポイントから初めてデータを受信すると、すべての情報がデータベースに保存されます。 連続した情報の送信では (学習モードが有効かどうかに応じて)、XML の次のフィールドのみが更新されます: version、timestamp (日付) および os_version (オペレーティングシステムのバージョン)、また、次の設定ファイルパラメータ: gis_exec、latitude、longitude、altitude、parent_agent_name、timezone_offset、address、custom_field
server_ip
データを保持する Pandora FMS サーバのホスト名もしくは IP アドレスを設定します。
server_path
エージェントおよびエンドポイントから送られるデータを受け取るサーバのディレクトリパスを設定します。デフォルトは以下の通りです。
/var/spool/pandora/data_in
temporal
エンドポイントがサーバにデータを送信する前にローカルで利用するフォルダのパスを設定します。
description
XML でエンドポイントが送る「説明」を設定します。Pandora FMS はエージェントを作成する時に、この「説明」を取り込みます。
group
エージェントが所属するグループ名を設定します。このパラメータで指定された名前のグループがある場合、サーバが特定のグループにエージェントを作成するようにしていなければ、指定したグループ内にエージェントが作成されます。
temporal_min_size
テンポラリディレクトリのパーティション空き容量がここで指定したサイズ (MB 単位) より小さくなったら、データパケットの生成を停止します。 (デフォルトは 1MB) 何らかの理由でプライマリおよびセカンダリの Pandora FMS サーバへの接続が長時間切れた場合に、ディスクがいっぱいになるのを避けます。
Pandora FMS イベント表示で、原因が何であれ、ソフトウェアエージェントがメインおよびセカンダリ Pandora FMS サーバへのデータ配信を停止したかどうかをタイムリーに知ることができます。この場合、その状態は 不明 になります。必要に応じて、アラート条件の作成も参照してください。
4日間オフラインのこの例では、1メガバイト(または設定した値)の空きディスク容量が残るまで、監視データが保存されます。
上記の理由により、ソフトウェアエージェントが改めてプライマリおよびセカンダリ Pandora FMS サーバに接続するときに、蓄積された量のデータでPandora FMS データサーバの高負荷が発生する可能性があることに注意が必要です。
temporal_max_size
XML バッファの最大サイズ(メガバイト)です。デフォルトは 1024 です。
temporal_min_size も確認してください。
temporal_max_files
XML バッファの最大ファイル数です。デフォルトは 1024 です。
temporal_min_size も確認してください。
logfile
Pandora FMS エンドポイントのログファイルのパスです。
interval
エージェントの秒単位のデータ収集間隔です。この間隔でエージェントは情報を収集し、Pandora FMS サーバへ送ります。
disable_logfile
このパラメータは、pandora_agent.log へのログ出力を無効化します。Windows のみ。
debug
有効化 (1) すると、エンドポイントからサーバに送信された XML ファイルのコピーが一時ディレクトリに保存され、XML ファイルを開いてその内容を分析できるようになります。
MS Windows® 用のエンドポイントでは、エンドポイントの実行と XML 送信の結果が記録された pandora_debug.log というファイルが作成されます。
Linux® 用のエンドポイントでは、上記の情報がエージェント独自のログファイル (pandora_agent.log) に追加されます。
- リモート設定が有効で、
debugモードが有効なエンドポイントは、Pandora FMS コンソールのエージェント設定ファイルに加えられた変更を受け入れません。 - XML は保存されたままになり、すぐにスペースを占有するため、
debugモードを有効にしての実行は短時間にすることをお勧めします。
agent_name
カスタム名を設定できます。設定していない場合、エンドポイントからデータを受信するエージェントの名前は、監視対象マシンのホスト名になります。
agent_name_cmd
外部コマンドを使用してエンドポイントからデータを受信するエージェントの名前を定義します。agent_name_cmd が定義されている場合、agent_name は無視されます。コマンドは 標準出力 にエージェント名を返す必要があります。複数行が返された場合、最初の行のみが使用されます。
agent_alias_cmd
外部コマンドを使用してエンドポイントからデータを受信するエージェントの別名を定義します。agent_alias_cmd が定義されている場合、agent_alias は無視されます。コマンドは 標準出力 でエージェント名を返す必要があります。複数行を返す場合は、最初の行のみが使用されます。
address
エンドポイントに関連付けられたIPアドレスまたはドメイン名。auto に設定すると、マシンの IP アドレスが取得され、エージェントにプライマリアドレスとして追加されます。
encoding
ISO-8859-15 や UTF-8 のように、システムのエンコーディングの種類を設定します。
server_port
このパラメータは、リモートのサーバの待ち受けポートの設定です。Tentacle のデフォルトは 41121 です。
transfer_mode
このパラメータには、エージェントからサーバへデータを送信するための方法を設定します。デフォルトは Tentacle です。
transfer_timeout
バージョン 6.0 以上
データ転送プログラムの実行タイムアウトを秒単位で指定します。設定されていない場合のデフォルトは 30 です。
server_pwd
Windows の FTP もしくは Tentacle 転送モードのパスワードを設定します。Tentacle モードの場合はパスワードは必須ではありません。このパスワードでサーバでの認証を行います。
server_ssl
Tentacle の転送モードを設定します。SSL による暗号化を有効化(yes)または、無効化(no)できます。Tentacle の暗号化通信については、こちらの章も参照してください。
server_opts
Tentacle の転送モードを設定します。Tentacle クライアントの拡張設定のために渡す、追加パラメータを設定します。
バージョン 3.2 以降のエージェントでは、tentacle がサーバへデータを送信するのに HTTP プロキシをサポートしています。プロキシを利用するには、つぎのような拡張オプションを使います。
server_opts "-y user:[email protected]:8080"
この例では、tentacle クライアントがポート 8080、ユーザ “user”、パスワード “pass” でプロキシ 'proxy.inet' に接続します。プロキシサーバが 192.168.1.2 で、ポート番号が 9000、また、認証が無い場合は次のようにします。
server_opts "-y 192.168.1.2:9000"
delayed_startup
デフォルトでは無効です。 エンドポイント起動後、処理を開始するまでの待ち時間(秒 または 分)です。MS Windows 以外のエンドポイントで利用できます。
startup_delay
デフォルトでは無効です。エンドポイントが起動してから実行を開始するまでの待機時間(秒単位)。MS Windows®のみ。
pandora_nice
Unix/Linux エンドポイントでのみ利用可能です。このパラメータは、Pandora FMS エージェントプロセスのシステム内での優先度を指定します。
autotime
有効(1)の場合、特別な実行タイムスタンプ(AUTO)が送信されます。これにより、サーバーはエンドポイントから送信された時刻を無視し、サーバのローカル日時を使用してデータの時刻を設定します。これは、何らかの理由でエンドポイントの時刻がおかしかったり、サーバの時刻と大きくずれている場合に利用します。
cron_mode
このパラメータを有効にすると、エンドポイントをそれ自身の実行の仕組みではなく、Linux の crontab から指定した時刻に実行できるようになります。デフォルトでは無効(0)になっています。
remote_config
エンドポイントのリモート設定を有効( 1 )または無効( 0 )にします。この操作は Tentacle 転送モードでのみ利用できます。
リモート設定を有効にすると、Pandora FMS コンソールから行われなかった変更はすべて破棄され、上書きされます。
xml_buffer
有効化( 1 )すると、エンドポイントは接続障害等でサーバに XML ファイルを送信できなかったとき、それをテンポラリディレクトリに保存します。それらは、通信が復旧したときに送られます。
timezone_offset
エンドポイントではサーバのタイムゾーンオフセットを設定することができます。これにより、サーバはエンドポイントが収集した時間をオフセットし、サーバのローカル時間と一致させることができます。
# Timezone offset: Difference with the server timezone timezone_offset 3
これは、エンドポイントのタイムゾーンからサーバのタイムゾーンを引いて計算されます。
parent_agent_name
エンドポイントの親を指定します。Pandora FMS に存在するエージェント名である必要があります。
agent_threads
Unix/Linuxエンドポイントのみで使用可能:エンドポイントがモジュールを並列実行するために起動するスレッド数。デフォルトでは、モジュールは追加のスレッドを起動することなく、順番に実行されます。例:
# Number of threads to execute modules in parallel agent_threads 4
include
include <file>
別の設定 <ファイル> をインクルードすることができます。このファイルには、メインの設定ファイルに加えて追加のモジュールや収集を含めることができます。これはオプションです。ファイルのアップロードには、ユーザにエージェント書き込み(AW)のプロファイル が必要です。
broker_agent
broker_agent < broker_name >
ブローカーエージェント機能を有効化します。有効化するにはパラメータのコメントを外し、ブローカーエージェントに割り当てる名前 (< broker_name >) を指定する必要があるだけです。メインの設定ファイルに記載したブローカーエージェントの名前で新たな設定ファイルが生成されます。この設定はメインのエージェントでのみ利用でき、作成された新たなエージェント設定内では利用できません。
pandora_user
pandora_user <user>
このパラメータはオプションで、システムの特定のユーザ (<user>) でエンドポイントを実行させるためのものです。指定するユーザは、エンドポイントの実行権限等を持つ必要があります。
custom_id
外部アプリケーションのための、エンドポイントのカスタム ID です。
url_address
コンソールでエージェントから開くカスタム URL です。
custom_fieldX_name
システムに設定済のエージェントのカスタムフィールド名です。存在しない場合は無視されます。
例:
custom_field1_name Model
custom_fieldX_value
前述のパラメータで定義されたカスタムフィールド X の値です。
例:
custom_field1_value C1700
module_macro
Unix/Linux® 用エンドポイント
module_macro<_macro_name_ > < value >
モジュールの定義で利用可能なローカル実行マクロを定義します。これらのマクロは、コマンドセンター(メタコンソールシステム)とローカルモジュールコンポーネントシステムで使用され、コードを直接編集することで難しくなるモジュール定義を「抽象化」し、高度なユーザに値を「入力」できるローカルインターフェイスを提供します。 これらの値は、ローカルプラグインのマクロシステムに比較的似たマクロシステムを使用して、以下のように使用できます。
_fieldx_ で始まるローカル拡張マクロ。
例:
module_begin
module_name Particion_opt
module_type generic_data
module_exec df -kh _field1_ | tail -1 | awk '{ print $5}' | tr -d "%"
module_macro_field1_ /opt
module_end
group_password
group_password <password>
エンドポイントグループのパスワード。グループがパスワードで保護されていない場合は、この行をコメントアウトした状態にしてください。
ehorus_conf
ehorus_conf <path>
Pandora RC エージェントの有効な設定ファイルへの絶対パス(パス)。エージェントは、Pandora RC エージェントの識別キーを含む eHorusID というカスタムフィールドを作成します。
transfer_mode_user
transfer_mode_user <user>
ローカル転送モードでコピーされるファイルのユーザでえす。正しく動作するためには、コンソールのフォルダで、このユーザがリモート設定ファイルを読み書きできる権限が必要です。デフォルトは apache です。
secondary_groups
secondary_groups <group name1>, <group name2>, ... <group nameN>
エージェントに割り当てるセカンダリグループ名です。複数のセカンダリグループをカンマ区切りで指定できます。サーバ上に存在しないグループを指定した場合はグループは割り当てられませんが、エージェントの作成には影響ありません。
standby
standby <1|0>
エンドポイントがスタンバイモード( standby 1 )を有効にすると、エンドポイントはいかなるチェックも実行せず、XMLの送信や生成も行いません。これにより、エンドポイントを無効にするだけで、任意のタイミングでサイレント状態にすることができます。
デバッグモードの場合はこの機能を上書きし、エージェントは通常動作をします。
module_absoluteinterval
module_absoluteinterval <interval>[s,m,h,d]
module_absoluteinterval once
モジュールの実行間隔を指定しますが、module_interval とは異なります。
- エンドポイントを再起動するときに、最後の実行日を記憶します。 モジュールは、指定された間隔が経過するまで実行されません。
- 間隔を秒、分、時間、または日単位で指定できます (例:
30s、5m、1h、7d)。 - 間隔値として
onceを指定することで、モジュールが 1 回だけ実行されるように設定できます。
module_absoluteinterval トークンは、対応する .ref を生成するために module_name を必要とします。この方法でのみモジュールが作成されます。監視対象のオペレーティングシステムに応じて、このファイルは次の場所に作成されます。
Linux®:
/usr/share/pandora_agent/ref/
MS Windows®:
C:\Program Files\pandora_agent\ref\
セカンダリサーバ
トークン secondary_mode 設定が有効になっているかどうかに応じて、次の 2 つのモードでデータが送信されるセカンダリサーバを定義できます。
on_error: プライマリサーバにデータを送信出来なかった場合のみ、セカンダリサーバにデータを送信します。always: プライマリサーバにデータが送信できるかどうかに関わらず、常にセカンダリサーバにもデータを送信します。
また、それぞれのケースに応じて、次の トークン を コメント解除 して設定する必要があります。
#secondary_server_ip localhost #secondary_server_path /var/spool/pandora/data_in #secondary_server_port 41121 #secondary_transfer_mode tentacle #secondary_transfer_timeout 30 #secondary_server_pwd mypassword #secondary_server_ssl no #secondary_server_opts
UDP サーバ
UDPは本質的に安全ではないことに注意してください(ただし、応答を必須としないメッセージを送信するには効率的です)。
Pandora FMS エンドポイントは、 リモートからコマンドを受け取る設定ができます。このサーバは、ユーザが指定した UDP のポートで待ち受けており、アラートが発生したときに何らかのコマンドを実行するなど、リモートシステム (基本的には Pandora FMS) から命令を受け取ることができます。
リモート UDP サーバを設定するには、ファイルまたは設定 pandora_agent.conf に次のオプションがあります。
- udp_server:UDP サーバを有効にする場合は
1を設定します。デフォルトでは無効です。 - udp_server_port: 待ち受けポート番号を設定します。
- udp_server_auth_address: 命令の送信を許可する IPアドレスを設定します。カンマ区切りで複数のアドレスを指定できます。0.0.0.0 に設定すると、UDP サーバはすべてのアドレスからのリクエストを受け付けます。
すべてのソースからのコマンド受け入れのために 0.0.0.0 に設定できますが、この方法はお勧めしません。複数の Pandora FMS サーバがある場合、または IPv6 を使用している場合は、カンマで区切って異なる IP アドレスを追加できます。たとえば、 IPv6:2001:0db8:0000:130F:0000:0000:087C:140B があり、その省略形が 2001:0db8:0:130F::87C:140B の場合は、両方をカンマで区切って指定します。
- process_<name>_start <command>: ユーザ定義プロセスを起動するコマンドを設定します。
- process_<name>_stop <command>: プロセスを停止するコマンドを設定します。
- service_<name> 1: リモートから停止や起動ができるサービス名 <name> を設定します。
サーバ上の /util/udp_client.pl には、Pandora FMS サーバがプロセスやサービスを起動するためのアラートコマンドとして利用するスクリプトがあります。構文は以下のとおりです。
./udp_client.pl <address> <port> <command>
モジュール定義
設定ファイル pandora_agent.conf にてローカルモジュールの実行を定義します。利用可能な全パラメータを以下に説明します。一般的な書式は次の通りです。
module_begin module_name <モジュール名> module_type generic_data module_exec <実行するローカルコマンド> module_end
全モジュールで共通の項目
モジュールのフィールド情報はモジュール作成時にのみ反映されます(モジュールデータ、説明、拡張情報を除く)。モジュールがすでに存在する場合は更新されません。
module_begin
モジュールの開始タグ。
このタグは、module_end と同様に必須です。
module_name
module_name <name>
モジュールの名前 (<name>)。この名前はエンドポイント内で一意でなければなりません。必須。
module_type
module_type <タイプ>
モジュールが返すデータタイプです。いずれか一つを選択することが必須です。指定可能なデータタイプは次の通りです。
- Numerical (generic_data): 小数または整数の数値データです。小数値の場合は整数に切り捨てられます。
- Incremental (generic_data_inc): 前の値と現在の値の差分を間隔の時間で割ったデータです。差分がマイナスの場合は値はリセットされます。これは、差分は再びプラスになること、増分がプラスの値である限りは前のデータとの差が利用されることを意味します。
- Incremental absolute (generic_data_inc_abs): 前の値と現在の値の差分データです。絶対的な差分の値であり、単位時間あたりの差分ではありません。差分がマイナスの場合は値はリセットされます。差分が再びプラスになった場合はベースの値として利用され、そこから差分が計算されます。
- Alphanumeric (generic_data_string): 文字列です。
- Booleans (generic_proc): 正常(1)または異常(0)をとる値です。コンピュータが動いているか、プロセスやサービスが動いているかどうかのチェックに便利です。異常値(0)には障害状態があらかじめ設定されています。それよりも大きい任意の値(1より大きい数字も扱えます)は正常と判断されます。
- Asynchronous Alphanumeric (async_string): (定期実行ではない)非同期の文字列収集に使います。非同期監視は、任意のタイミングで発生するイベントや変更に依存するため、このタイプのモジュールは不明状態にはなりません。
- Async Boolean (async_proc): generic_proc と似ていますが、非同期のデータタイプです。
- Asynchronous Numeric (async_data): generic_data と似ていますが、非同期のデータタイプです。
module_min
module_min <値>
そのモジュールが返すことを許容されるデータの最小値です。範囲を外れたデータはサーバにより削除されます。
module_max
module_max <値>
そのモジュールが返すことを許容されるデータの最大値です。範囲を外れたデータはサーバにより削除されます。
module_min_warning
module_min_warning <値>
モジュールが警告状態になる最小値です。
module_max_warning
module_max_warning <値>
モジュールが警告状態になる最大値です。
module_min_critical
module_min_critical <値>
モジュールが障害状態になる最小値です。
module_max_critical
module_max_critical <値>
モジュールが障害状態になる最大値です。
module_disabled
module_disabled <値>
モジュールが、有効(0)か無効(1)かを表します。
module_min_ff_event
module_min_ff_event <値>
連続抑制回数を指定します。連続抑制回数とは、収集データに揺らぎがあるような場合に、それを変化としてとらえないように抑止するものです。
module_each_ff
module_each_ff <0|1>
有効 (1) の場合、module_min_ff_event の代わりに、状態ベースの 連続抑制回数 しきい値が使用されます。
module_min_ff_event_normal.module_min_ff_event_warning.module_min_ff_event_critical.
module_min_ff_event_normal
module_min_ff_event_normal <値>
個別状態変化で、正常状態へ移行する場合の連続抑制回数です。
module_min_ff_event_warning
module_min_ff_event_warning <値>
個別状態変化で、警告状態へ移行する場合の連続抑制回数です。
module_min_ff_event_critical
module_min_ff_event_critical <値>
個別状態変化で、障害状態へ移行する場合の連続抑制回数です。
module_ff_timeout
module_ff_timeout <秒>
指定した秒数が経過したら連続抑制回数のカウンターをリセットします。これは、module_min_ff_event に指定した抑制回数の状態変化が module_ff_timeout に指定の秒数以内に発生する必要があることを意味します。
module_ff_type
module_ff_type <値>
「カウンター保持」が有効 (1 か無効 (0) かを示します。
これは、連続抑制の高度なオプションで、モジュールの状態を制御します。 “カウンタを保持する” ことによって、値の代わりに、受け取った値を持つモジュールの状態に応じて、ある状態から別の状態に渡すカウンタ値をいくつか設定します。
module_ff_event
module_ff_event X
これは、モジュールの連続抑制実行のしきい値(秒単位)です。
module_description
module_description <テキスト>
モジュールの任意のコメントです。
module_interval
module_interval <間隔倍率>
個別のモジュールの間隔。この値はエンドポイント間隔の乗数であり、空き時間ではありません。例えば、エンドポイントが 300 (5 分)間隔の設定であった場合に、あるモジュールだけ 15分間隔にしたいときに、module_interval 3 を設定します。そのモジュールは、300秒 x 3 = 900秒 (15分) 間隔で実行されます。
ブローカーエージェントで module_interval が機能するには、そのモジュールの元エージェントと同じ間隔にする必要があります。そうでない場合、機能しない可能性があります。バージョン776以降、Webコンソールのブローカーエージェント間隔フィールドは削除されました。
module_timeout
module_timeout <秒数>
モジュールの最大実行時間を秒単位で指定します。実行中にこの時間を超過した場合は、実行が中止されます。この設定は、module_begin と module_end の間に配置する必要があります。
module_postprocess
module_postprocess <倍率>
モジュールから返される値を何倍するかの値です。データの単位を変換するのに便利です。もし、エージェントが取得した値に 1024 を掛けたい場合は、1024 を設定します。また、1024 で割りたい場合は、1/1024 を意味する 0.000976563 を設定します。
module_save
module_save <変数名>
このパラメータで定義された名前の変数にモジュールから返された値を保存します。この値はあとから他のモジュールで利用できます。
例:
module_begin module_name echo_1 module_type generic_data module_exec echo 41121 module_save ECHO_1 module_end
“ECHO_1” という変数に、値 41121 を保存します。
module_begin module_name echo_2 module_type generic_data module_exec echo $ECHO_1 module_end
2つ目のモジュールでは、“$ECHO_1” という変数の内容を表示します。“41121” となります。
Windows® 上の EndPoints では、変数を $var ではなく %var% のようにパーセント記号で囲んでモジュール設定を行う必要があります。以下の例をご覧ください。
module_begin module_name echo_2 module_type generic_data module_exec echo %ECHO_1% module_end
module_crontab
モジュールは、次の形式に従って特定の日付に実行するようにスケジュールできます。
module_crontab <分> <時間> <日> <月> <曜日>
指定可能な範囲は次の通りです。
- 分 0-59
- 時間 0-23
- 日 1-31
- 月 1-12
- 曜日 0-6 (0 が日曜です)
期間を指定する - を利用することも可能です。
例えば、あるモジュールを毎週月曜の 12時から 15時の間に実行するには、次のような設定をします。
module_begin module_name crontab_test module_type generic_data module_exec script.sh module_crontab * 12-15 * * 1 module_end
コマンドを毎時 10分に実行したい場合は、次のようにします。
module_begin module_name crontab_test3 module_type generic_data module_exec script.sh module_crontab 10 * * * * module_end
module_condition
module_condition <評価式> <コマンド>
バージョン 3.2 から、モジュールが特定の値を返す場合にコマンドを実行させることが可能です。次に示すオプションの一つを定義します。
- > [値]: モジュールの値が指定された値よりも大きい場合にコマンドを実行します。
- < [値]: モジュールの値が指定された値よりも小さい場合にコマンドを実行します。
- = [値]: モジュールの値が指定された値と同じ場合にコマンドを実行します。
- != [値]: モジュールの値が指定された値と異なる場合にコマンドを実行します。
- =~ [正規表現]: モジュールの値が指定された正規表現にマッチする場合にコマンドを実行します。
- ( 値, 値): モジュールの値が指定された値の範囲の場合にコマンドを実行します。
同一のモジュールに複数の条件を設定することも可能です。以下の例では、モジュールの値が 1 と 3 の間の時にscript_1.sh が実行されます。また、モジュールの値が 5.5 より大きい時に script_2.sh が実行されます。module_exec の結果が 2.5 なので、最初の script_1.sh のみ実行されます。
module_begin module_name condition_test module_type generic_data module_exec echo 2.5 module_condition (1, 3) script_1.sh module_condition> 5.5 script_2.sh module_end
例:
module_begin module_name MyProcess module_type generic_data module_exec tasklist | grep MyProcess | wc -l module_condition> 2 taskkill /IM MyProcess* /F module_end
module_begin
module_name PandoraLogSize
module_type generic_data
module_exec ls -la "c:\Archivos de programa\pandora_agent\pandora_agent.log" | gawk "{ print $5 }"
module_condition> 10000 del "c:\Archivos de programa\pandora_agent\pandora_agent.log"
module_end
module_begin module_name Service_Spooler module_type generic_proc module_service Spooler module_condition = 0 net start Spooler module_end
- 注意: Windows プラットホームでは、コマンドの実行にはそれが正しく実行されていることを確認するために cmd.exe /c を利用することをお勧めします。例えば次の通りです。
module_begin module_name condition_test module_type generic_data module_exec echo 5 module_condition (2, 8) cmd.exe /c script.bat module_end
module_precondition
特定の実行結果に応じて、モジュールを実行するかどうかを決定できます。構文は「module_condition」と同じです。
module_unit
module_unit <単位>
これは、モジュールの値に付与する単位です。
例:
module_unit %
module_group
module_group <値>
これは、モジュールグループ名です。
例:
module_group Networking
module_custom_id
module_custom_id <値>
モジュールのカスタム ID です。
例:
module_custom_id host101
module_str_warning
module_str_warning <値>
文字列タイプのモジュールで警告状態を定義する正規表現です。
例:
module_str_warning .*NOTICE.*
module_str_critical
module_str_critical <値>
文字列タイプのモジュールで障害状態を定義する正規表現です。
例:
module_str_critical .*CRITICAL.*
module_warning_instructions
module_warning_instructions <値>
モジュールが警告状態に変化したときのオペレータへの指示です。
例:
module_warning_instructions Increase incident priority
module_critical_instructions
module_critical_instructions <値>
モジュールが障害状態に変化したときのオペレータへの指示です。
例:
module_critical_instructions Call to sys department
module_unknown_instructions
module_unknown_instructions <値>
不明状態 unknown になったときにモジュールによって生成されるイベントに表示される手順を通知します。
module_tags
module_tags <値>
カンマ区切りでモジュールに割り当てるタグを指定します。
例:
module_tags tag1,tag2,tag3
module_warning_inverse
module_warning_inverse <値>
警告閾値範囲の反転を有効化(1)します。
例:
module_warning_inverse 1
module_critical_inverse
module_critical_inverse <値>
障害閾値範囲の反転を有効化(1)します。
例:
module_critical_inverse 1
module_native_encoding
Win32 のみ
module_native_encoding <値>
この設定トークンは、module_exec によってコマンドラインから実行されるモジュールにのみ影響します。
Windows では、コマンドラインエンコーディング(OEM)、システムエンコーディング(ANSI)および、UTF-16 の 3つのプロセスのエンコーディングがあります。いずれのエンコーディングも通常の文字を扱うことができますが、アクセントを表したものなどいくつかの文字に違いがあります。このトークンにより、Pandora エージェントが設定ファイル(pandora_agent.conf)で指定したエンコーディングに出力を変換します。
module_native_encoding は、次の 4種類の値を設定できます。
- module_native_encoding OEM: コマンドラインエンコーディングに変換
- module_native_encoding ANSI: システムエンコーディングに変換
- module_native_encoding UTFLE: UTF-16 のリトルエンディアンに変換
- module_native_encoding UTFBE: UTF-16 のビッグエンディアンに変換
module_native_encoding の設定が無い場合は、変換は行われません。
module_quiet
module_quiet <値>
有効化(1)すると、モジュールは静観モードになります。イベントやアラートを生成しません。
例:
module_quiet 1
module_ff_interval
module_ff_interval <値>
モジュール内の 連続障害検知抑制 しきい値を示すことができます。
module_macro
module_macro<マクロ> <値>
Webコンソールからのローカルコンポーネントにのみ適用されます。設定ファイルでは無効です。
module_alert_template
module_alert_template <テンプレート名>
このマクロは、パラメータ名(アラートテンプレート 参照)に対応したモジュールにアラートテンプレートを割り当てます。
例:
<module> <name><![CDATA[CPU usage]]></name> <type>generic_data</type> <module_interval>1</module_interval> <min_critical>91</min_critical> <max_critical>100</max_critical> <min_warning>70</min_warning> <max_warning>90</max_warning> <alert_template><![CDATA[Critical condition]]></alert_template> <data><![CDATA[92]]></data> </module>
intensive_interval
高頻度モニタリング間隔です。module_intensive_monitoring を設定したモジュールは、障害状態の場合にこの間隔で実行できます。
module_intensive_condition
module_end
情報を取得するためのディレクティブ
各モジュールでは、これらのタイプのうち 1 つだけ使用できます。
module_exec
1行で情報を取得するコマンドを指定する必要があります。
Linux では、コマンドはデフォルトのシェルを使って実行されます。デフォルトのシェルは、 /bin/sh のシンボリックリンクによって決まります。通常は、bash ですが、Ubuntu のシステムでは異なります。ほとんどの場合に機能する解決策:
module_exec bash -c "<command>"
コマンドの実行により 0 以外の エラーコード (戻り値) が返された場合、コマンドは失敗したと解釈され、取得されたデータは破棄されます。
MS Windows® 上のエンドポイントの場合、データを取得するための さらに多くのディレクティブがあります。
module_exec_powershell
module_service
module_service <サービス>
指定したサービスが実行中であるかどうかをチェックします。
MS Windows®
サービス名にスペースが含まれる場合は、" " でくくるのを忘れないようにしてください。
module_begin module_name Service_DHCP module_type generic_proc module_service Dhcp module_description Service DHCP Client module_end
サービスは、Windows サービスマネージャに表示される短い名前 (サービス名) で識別されます。
非同期モード
Pandora FMS は通常、(モジュールによって定義される)一定の秒間隔にてチェックを実行します (デフォルトでは、300秒 = 5分)。そのため、チェックの直後にサービスがダウンすると、それがダウンであると認識するのに、さらに 300秒かかります。非同期モジュールでは、Pandora に “今すぐ” サービスの障害を通知するようにできます。これは、非同期 操作モードと呼んでいます。非同期モードにするには、以下のディレクティブを設定してください。
module_async yes
この機能は、ブローカーエージェントでは利用できません。
MS Windows Home Edition® では、この非同期機能はサポートされていません。これらのバージョンでのみ、Pandora FMS エンドポイントはサービスが稼働しているかどうかを確認するために定期的にクエリを実行します。これはリソースを大量に消費する可能性があるため、多数のサービスを監視する場合は同期モードの使用をお勧めします。
サービスのウォッチドッグ
サービスには監視モードまたはウォッチドッグがあり、サービスが停止した場合にエージェントがサービスを再開できるように、次のように指定します。
module_watchdog yes
Unix
Unix でも Windows と同様に動作します。違いは Unix であることだけで、プロセスおよびサービスは同じ考え方です。例えば、bash プロセスが動作しているかを確認するには次のようにします。
module_begin module_name Service_bash module_type generic_proc module_service /bin/bash module_description Process bash running module_end
Unix エンドポイントでは、ウォッチドッグと非同期検出はできません。
module_service では、ps aux で表示されるコマンドのフルパスを指定する必要があります。以下の例では、SSH サービスをチェックします。
ps aux | grep ssh
Configure it:
module_begin module_name MY_SSHD module_type generic_proc module_service /usr/sbin/sshd -D module_description Is sshd running? module_end
module_proc
module_proc <プロセス>
指定した名前のプロセスがいるかどうかをチェックします。
MS Windows® の場合
プロセス名を引用符で囲む必要はありません。プロセス名には拡張子 .exe が必要です。モジュールは、この名前で実行されているプロセスの数を返します。
以下に cmd.exe プロセスをモニタリングする例を示します。
module_begin module_name CMDProcess module_type generic_proc module_proc cmd.exe module_description Process Command line module_end
非同期モード
サービスと同じように、モニタリングしているプロセスにて何らかの原因で障害が発生することがあります。Windows エンドポイントでは、module_proc モジュールで非同期チェックをサポートしています。この場合、プロセスの状態が変化したとき、通常のモニタリング間隔における次のチェックタイミングを待たずにすぐに 通知されます。これにより、プロセスに障害が発生したのとほぼ同時にそれを知ることができます。以下にプロセスの非同期モニタリング設定の例を示します。
module_begin module_name Notepad module_type generic_proc module_proc notepad.exe module_description Notepad module_async yes module_end
違いは、“module_async yes” が設定されている点です。
プロセスのウォッチドッグ
ウォッチドッグモードは、モジュールタイプが非同期の場合にのみ機能することに注意する必要があります。
プロセスの実行にはいくつかのパラメータが必要になる場合があるため、これらのタイプのモジュールには追加の設定オプションがあります。ウォッチドッグを使用して module_proc を設定する例:
module_begin module_name Notepad module_type generic_proc module_proc notepad.exe module_description Notepad module_async yes module_watchdog yes module_start_command c:\windows\notepad.exe module_startdelay 3000 module_retrydelay 2000 module_retries 5 module_end
Windows Vista® より前のバージョンでは、Pandora FMS サービスのプロパティで “デスクトップとの対話型アクセス” ボックスを有効にすることで、トークン module_user_session を一般的な方法で設定できます (サービスがデスクトップと対話できるようにする):
Pandora FMS はサービスとして SYSTEM アカウントで実行され、実行されるプロセスはそのユーザとその環境で実行されます。そのため、特定のユーザで使用する必要がある特定のプロセスを実行する必要がある場合は、環境、環境変数などを初期化する前のプロセスをスクリプト (.bat または類似のスクリプト) にカプセル化し、そのスクリプトを Watchdog のアクションとして実行する必要があります。
Unix の場合
Unixではmodule_serviceと全く同じように動作します。また、非同期モードやウォッチドッグはサポートされていません。
module_cpuproc <プロセス> (Unix のみ)
特定のプロセスの CPU 使用率を返します。
module_begin module_name myserver_cpu module_type generic_data module_cpuproc myserver module_description Process Command line module_end
Unix
UNIX では、このモジュールは module_service のように動作します。非同期およびウォッチドッグモードはサポートしません。
module_memproc
module_memproc <プロセス>
Unixのみです。 特定のプロセスが利用しているメモリ量を返します。
module_begin module_name myserver_mem module_type generic_data module_memproc myserver module_description Process Command line module_end
module_freedisk
module_freedisk <ドライブ名:>|<ボリューム>
このモジュールは、ディスクの空き容量をチェックします。
Windows® の場合
ドライブ名の後に : を記載します。
module_begin module_name freedisk module_type generic_data module_freedisk C: module_end
Unix® の場合
/var のようにチェックするボリュームを指定します。
module_begin module_name disk_var module_type generic_data module_freedisk /var module_end
module_freepercentdisk
module_freepercentdisk <ドライブ名:>|<ボリューム>
このモジュールは、ディスクの空きをパーセントで返します。
Windows
ドライブ名: (“:“を忘れないようにしてください) を指定します。
module_begin module_name freepercentdisk module_type generic_data module_freepercentdisk C: module_end
Unix
/var などのボリュームを指定します。
module_begin module_name disk_var module_type generic_data module_freepercentdisk /var module_end
module_occupiedpercentdisk
module_occupiedpercentdisk <ドライブ名:>|<ボリューム>
Unix のみです。 このモジュールは、/var 等の Unix ファイルシステムのディスク使用率(%)を返します。
module_begin module_name disk_var module_type generic_data module_occupiedpercentdisk /var module_end
module_cpuusage
module_cpuusage <cpu id|all>
このモジュールは、UNIX および Windows 双方で使えます。指定した CPU 番号の CPU 使用率を返します。CPU が 1つしかない場合は番号を指定しないか、all を指定します。
次のように、マルチ CPU 環境で全 CPU の平均使用率を得ることができます。
module_begin module_name SystemCPU module_type generic_data module_cpuusage all module_description Average CPU use in systme module_end
1つ目の CPU 使用率を確認するのは次のようにします。
module_begin module_name SystemCPU_1 module_type generic_data module_cpuusage 1 module_description Average CPU use in system for CPU #1 module_end
module_freememory
Windows および Unix 双方で使えます。システム全体の空きメモリ量を取得します。
module_begin module_name FreeMemory module_type generic_data module_freememory module_description Non-used memory on system module_end
module_freepercentmemory
Windows および Unix 双方で使えます。システム全体の空きメモリ量のパーセンテージを取得します。
module_begin module_name freepercentmemory module_type generic_data module_freepercentmemory module_end
module_tcpcheck
MS Windows® のみ
このモジュールは、指定された IPアドレスおよびポート番号への接続確認を行います。成功すると 1 が返り、失敗すると 0 が返ります。module_timeout でタイムアウトを設定する必要があります。
module_begin module_name tcpcheck module_type generic_proc module_tcpcheck www.artica.es module_port 80 module_timeout 5 module_end
module_regexp
これは、Microsoft Windows® と Linux® の両方でプレーンテキストログを監視および収集するためのモジュールです。module_pattern および module_pattern_exclude と組み合わせて使用します。Windows でイベントをキャプチャする場合は、別の方法 (module_logchannel) を使用する必要があります。
module_begin module_name Syslog module_description Sample log collection of syslog messages file module_type log module_regexp /var/log/messages module_pattern .* module_pattern_exclude <regexp_to_exclude> module_end
このタイプのモジュールは、正規表現を使用してログを監視し、一致する行を検索します。監視開始時に既存の行は破棄されます。モジュールによって返されるデータは、モジュールの種類によって異なります。
generic_data_string,async_string: 正規表現にマッチした行全体を返します。generic_data: 正規表現にマッチした行数を返します。generic_proc: 正規表現にマッチしたら 1、そうでなければ 0 を返します。module_noseekeof:0がデフォルトです。これを有効 (1) にすると、それぞれのモジュールの実行において、ターゲットのファイル更新からは独立して、ファイルの EOF を確認することなくチェック処理が実行されます。これにより、常に検索パターンにマッチするすべての行が XML 出力に展開されます。log: ログ収集に使用されます(監視とは異なります)。詳細はログ収集のセクションをご覧ください。すべてのログ情報を取得する場合は、以下を含める必要があります。
module_pattern .*
- このモジュールは、Windows と Linux では動作が若干異なります。これは、
module_pattern_excludeが Linux でのみサポートされているためです。それ以外は動作は同じです。 module_pattern_excludeはオプションであり、モジュール定義に存在しない場合があります。
module_wmiquery
Windows のみです。WMI モジュールは、外部ツールを使わずにローカルで WMI クエリを実行できます。2つのパラメータで設定します。
- module_wmiquery: 利用する WQL クエリを設定します。さまざまなデータを含む複数の行で結果を得ることができます。
- module_wmicolumn:データソースとして利用するカラム名を設定します。
例えば、インストールされているサービス一覧を取得するには次のようにします。
module_begin module_name Services module_type generic_data_string module_wmiquery Select Name from Win32_Service module_wmicolumn Name module_end
現在の CPU 負荷であれば次のようにします。
module_begin module_name CPU_speed module_type generic_data module_wmiquery SELECT LoadPercentage FROM Win32_Processor module_wmicolumn LoadPercentage module_end
module_perfcounter
Windowsのみです。 PDH インタフェースを通して、パフォーマンスカウンタ (http://msdn.microsoft.com/ja-jp/library/aa373083(v = vs.85).aspx パフォーマンスカウンタドキュメント) からデータを取得します。Windows のライブラリの pdh.dll がインストールされている必要があります。もしインストールされていない場合は、Windows パフォーマンス解析ツールをインストールする必要があります (通常はデフォルトでインストールされています)。
module_begin module_name perfcounter module_type generic_data module_perfcounter \Memory\Pages/sec module_end
Windows パフォーマンスモニタは、モニタリングに利用できる何百ものパラメータを持つ強力なツールです。加えて、各ベンダによる独自のモニタ項目も追加されています。
パフォーマンスツールから、パフォーマンスカウンターを確認できます。
システムツールを用いて新たなパフォーマンスカウンターを追加することができます。その構成には、要素とサブ要素を含む管理構造があります。ここでは、Processor, % of processor time および _Total です。
このように、OS のツールを使うことにより、システムパフォーマンスのさまざまな要素を取り込むことができます。この場合、モジュールの設定は次のようになります。
module_begin module_name Processor_Time module_type generic_data_inc module_perfcounter \Processor(_Total)\% of time processor module_end
デフォルトでは、カウンタの生データが表示されます。調整値を取得するには、module_cooked 1 を設定します。
module_begin module_name Disk_E/S_Sec module_type generic_data module_cooked 1 module_perfcounter \PhysicalDisk(_Total)\E/S by second module_end
多くのデータは、カウンタ値として返ってきます。そのため、データタイプとしては generic_data_inc を使う必要があります。また、とても大きなスケール (数百万) のデータが返ってくることがありますので、事前処理モジュールで 0.000001 などを設定して値を小さくすると良いです。
module_inventory
現在、この機能は Windows® および Linux/Unix® システムの両方で エージェントプラグインからのインベントリ に置き換えられています。
module_logevent
現在、module_logevent は非推奨となっており、下位互換性のために動作が維持されているため、module_logchannel が推奨オプションです。
module_logchannel
これは、Microsoft Windows® のネイティブイベントを収集し、プレーンテキスト情報に変換して、JSON 形式の拡張属性とともに Pandora FMS ログコレクタによってログとして収集するために使用されます。ログ収集 セクションに記載されているように、事前に有効化と設定を行う必要があります。
基本的な構文についてはその章で詳しく説明されています。ここでは、そのモジュールの構文の基本的なリファレンスを確認できます。
module_begin module_name MyEvent module_type log module_logchannel module_source < source > module_eventtype < event_type/level > module_eventcode < event_id > module_application < application > module_pattern < regexp to match > module_source_type < log type, only SIEM > module_end
ここで、module_source は、このタイプのモジュールに固有の唯一の必須フィールドです。
多くの SIEM ルール は特定のアプリケーション名で起動されるため、module_name は見た目以上に重要な意味を持ちます。この名前は module_name で定義されます。SysMon タイプのイベントの場合、名前は具体的な名前である必要があり、多くの SIEM ルールでも同様です。
module_plugin
エンドポイントプラグインの実行用です。module_begin や module_end などの他のタグを必要とせず、モジュールの種類も指定しない特別なものです。
次のような書式です。
module_plugin plugin_filename parameter_1 parameter_2 (...) parameter_X
ただし、プラグインに状態や実行間隔などの追加パラメータを設定する場合は、次のように通常の書式を利用します。
module_begin module_plugin plugin_filename parameter_1 parameter_2 (...) parameter_X module_interval 2 module_condition (0, 1) script.sh module_end
それぞれのプラグインには個別のパラメータが使われます。そのため、それぞれの特定のドキュメントを参照する必要があります。ここでは、エンドポイントにデフォルトで付属しているプラグインの一つであるファイル内を検索する grep_log で説明します。
module_plugin grep_log /var/log/syslog Syslog ssh
この例では、プラグインの名前が grep_log で、/var/log/syslog を正規表現 ssh で検索する Syslog というモジュールであることを意味します。
Windows システムの場合の別の例を示します。(バージョン 3.1 以上)
module_plugin cscript.exe //B "%ProgramFiles%\Pandora_Agent\util\df_percent.vbs"
module_ping
Windows のみ。
module_ping <ホスト>
このモジュールは、指定したホストに ping を行い、応答があれば 1、そうでなければ 0 を返します。
次のパラメータを設定できます。
- module_ping_count x: 送信する ECHO_REQUEST パッケットの数 (1 がデフォルト)
- module_ping_timeout x: 応答を待つタイムアウトミリ秒数 (1000 がデフォルト)
- module_advanced_options: ping.exe の拡張オプション
例:
module_begin module_name Ping module_type generic_proc module_ping 192.168.1.1 module_ping_count 2 module_ping_timeout 500 module_end
module_snmpget
Windows のみ。
このモジュールは snmpget を実行し、その応答を返します。
次のパラメータを設定できます。
- module_snmpversion [1_2c_3]: SNMP バージョン (1 がデフォルト)
- module_snmp_community <community>: SNMP コミュニティ (public がデフォルト)
- module_snmp_agent <host>: 対象の SNMP エージェント
- 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.1.1 module_snmp_oid .1.3.6.1.2.1.2.2.1.1.148 module_end
module_wait_timeout
Windows のみ。
module_wait_timeout X
モジュールの module_exec および module_plugin 出力がチェックされる際のタイムアウト時間。デフォルトの値は 500ミリ秒です。大量の出力を生成するモジュールで実行が遅い場合は、5に変更します。それ以外の場合は使用しないことをお勧めします。
module_advanced_options
MS Windows® のみ
module_advanced_options <parameter>
module_ping および module_snmpget では追加パラメータを使用します。たとえば、ping の場合、512 バイトのパケット サイズを指定できます。
module_advanced_options -l 512
module_pattern
module_regexp を参照してください。
module_pattern_exclude
module_regexp を参照してください。
自動エージェント設定
概要
エンドポイントの自動設定処理では、一連のルールを確立して自動的に設定することができ、次のように機能します。
- Pandora FMS コンソールまたは Pandora FMS コマンドセンター (メタコンソール) で、自動設定を準備します。
- Pandora FMS にレポートする エンドポイントをインストールします (自動プロビジョニングシステムが設定されたコマンドセンター (メタコンソール) がある場合は、コマンドセンター (メタコンソール) 自体をサーバとして設定します)。
- Pandora FMS サーバは、エンドポイントデータを含む XML (
.data) を初めて受信します。 - ルールが評価され、適用する自動設定が決定されます。 - エンドポイントは新しい設定を収集し、次回の処理から更新された設定で動作します。
自動エージェント設定の作成/編集
コンソール
自動設定画面へは 設定(Configuration) → 自動エージェント設定管理(Manage agent autoconfiguration) からアクセスします。
メタコンソール
中央管理(Centralized management) → エージェント管理(Agent management) → エージェント自動設定アイコン:
管理ページにアクセスしたら、新たな設定定義の追加(Add new configuration definition) ボタンをクリックすることにより新たな自動設定を作成することができます。自動設定の名前と説明を設定します。
新たな自動設定を作成したら、必要な項目 (ルール(Rules)、エージェント自動設定(Agent autoconfiguration)、追加アクション(Extra actions)) をクリックすることにより設定フォームを表示できます。
ルール
自動設定が適用されるエンドポイントを定義するには、まずエンドポイントを識別するルールを追加します。
自動設定内のルールセクションを展開し、新しいルールの追加(Add new rule) を選択します。 ルールセレクターで一連のオプションを選択して、設定するエンドポイントを識別できます。
- Server name: マッチするサーバ名
- Group name: マッチするグループ名
- OS: マッチする OS 名 (正規表現)
- Custom field: エンドポイントが報告してくる、キー/値 のカスタムフィールドマッチ。カスタムフィールド名と値を指定する必要があります。
- IP range: IP の範囲(ネットワーク)にマッチ。IP/ネットマスク の書式を追加います。
- Script output (> 0): スクリプトの実行結果で、標準出力の結果が 0より大きい場合にルールにマッチしたと評価されます。
- Rules script call: 'arguments' フィールドに次のマクロが使えます。(演算子
ANDとORのどちらかを選択して、ルールロジックを変更できます)_agent_: エージェント名に置き換えられます。_agentalias_: エージェントの別名に置き換えられます。_address_: エージェントから報告された IP アドレスに置き換えられます。_agentgroup_: エージェントから報告されたグループ名に置き換えられます。_agentos_: エージェントの OS で置き換えられます。
ルールが無い場合は、自動設定は適用されません。全てのエージェントに対して一つの設定でよい場合は、すべての別名にマッチする正規表現 .* を使うことができます。
設定
- エージェントグループ(Agent Group): 変更せずにそのままとするか、強制的に変更します。
- セカンダリグループ(Secondary Group): エージェントにセカンダリグループとして追加するグループを選択します。
- 設定ブロック(Configuration Block): エージェントの設定ファイルに追加する設定内容です。
- ポリシー(Policies): エージェントがサーバに接続してきたときに適用するポリシーを選択できます。監視ポリシーが複数ある場合は、優先順位(デフォルトではゼロ)を指定すると、数値が最も高いポリシーが最初に適用されます(単数値を使用することをお勧めします)。
集中管理が有効なコマンドセンター(メタコンソール)に属するノードから自動設定管理を行おうとすると、リードオンリー表示になります。
追加アクション
ここでは、自動設定に追加のアクションを行うことができます。例えば以下のような処理です。
- 独自イベントを出す (Launch custom event)
- アラートアクションを実行する (Launch alert action)
- スクリプトを実行する (Launch script)
システムは、次のマクロをサポートします。
_agent_エージェント名に置き換えられます。_agentalias_エージェントの別名に置き換えられます。_address_エージェントが報告した IP アドレスに置き換えられます。_agentgroup_エージェントが報告したグループ名に置き換えられます。_togentos_エージェントの OS に置き換えられます。_agentid_エージェント ID に置き換えられます。
Unix/Linux エンドポイント
Pandora FMS Unix エンドポイントの設定
把握しておくべき基本的なファイルとディレクトリは次のとおりです。
/usr/share/pandora_agent: Pandora FMS エンドポイントがインストールされる場所です。厳密なシステムポリシーがあり、ここにインストールできないシステムでは、実際のインストールパスからこのパスへのリンクを作成することを推奨します。例:/opt/pandora→/usr/share/pandora_agent/etc/pandora/pandora_agent.conf: エンドポイントのメインの設定ファイルです。ここにデータの収集に使うコマンドの定義がされています。/usr/local/bin/pandora_agent: エンドポイントの実行バイナリです。通常、/usr/bin/pandora_agentにリンクされています。/usr/local/bin/tentacle_client: サーバにデータファイルを送信するため Tentacle 実行バイナリです。通常、/usr/bin/tentacle_clientにリンクされています。systemctl pandora_agent_daemon: start/stop/restart のためのスクリプトです。- AIX システムでは、
/etc/rc.pandora_agent_daemonです。
/var/log/pandora/pandora_agent.log: Pandora FMS エンドポイントがデバッグモードで動作している時にログが出力されるログファイルです。/etc/pandora/plugins: エージェントプラグインを置くディレクトリです。これは/usr/share/pandora_agent/pluginsにリンクされています。/etc/pandora/collections: エージェントのコレクションを置くディレクトリです。これは/usr/share/pandora_agent/collectionsにリンクされています。
Unix エンドポイントの初期実行
エンドポイントの起動は以下のようにします。
systemctl start pandora_agent_daemon
エンドポイントの停止は以下のようにします。
systemctl stop pandora_agent_daemon
起動スクリプトで Pandora FMS エージェントの起動・停止ができます。デフォルトでは起動後はデーモーンとして動作します。
基本エンドポイントオプション
エンドポイントでリモート設定が有効になっていて、バージョン 774 以降の場合は、ウェブコンソールのエージェント設定の 基本オプション(Basic options) セクションで次のオプションを有効にできます。
- セキュリティ強化監視を有効にする(Enable security hardening monitoring): プラグインが監視対象デバイスのセキュリティを強化できるようにします。設定ファイルで次のオプションが有効になります。
#Hardening plugin for security compliance analysis. Enable to use it. module_begin module_plugin /usr/share/pandora_agent/plugins/pandora_hardening -t 150 module_absoluteinterval 7d module_end
ここで、パラメータは、7 日間隔 (7d) で実行のタイムアウトを 150 秒 (-t 150) に設定されています。
- ログ収集を有効にする(Enable log collection): これにより、フォレンジック分析用のログファイルが収集され、すべてのログが保存されます。設定ファイルで次のオプションが有効になります。
# This is for LOG COLLECTION monitoring, different than log monitoring. module_plugin grep_log_module /var/log/messages Syslog \.\*
* インベントリの有効化(Enable inventory): インベントリ監視 のオプションを有効にします。設定ファイルでは次のオプションが有効になります。
# Plugin for inventory on the agent. module_plugin inventory 1 cpu ram video nic hd cdrom software init_services filesystem users route
Unix エンドポイントがシステム情報を取得する方法の変更
module_exec でコマンドを指定しなくても、デフォルトで情報を取得する モジュールがいくつかあります。これらのモジュールは次のとおりです。
- module_procmem
- module_freedisk
- module_freepercentdisk
- module_cpuproc
- module_proc
- module_cpuusage
- module_freememory
- module_freepercentmemory
これらのモジュールの動作は、エージェントの実行ファイル (デフォルトでは /usr/bin/pandora_agent) を直接編集することにより変更できます。Pandora FMS エンドポイントは一般的に /usr/bin/pandora_agent にあります。
コマンド名で検索することにより、内部コマンドを含むコードを見つけます。システムに合わせて変更する場合は、修正を行います。
# Commands to retrieve total memory information in kB
use constant TOTALMEMORY_CMDS => {
linux => 'cat /proc/meminfo | grep MemTotal: | awk \'{ print $2 }\,
solaris => 'MEM=`prtconf | grep Memory | awk \'{print $3}\'` bash -c \'echo $(( 1024 * $MEM ))\,
hpux => 'swapinfo -t | grep memory | awk \'{print $2}\
};
# Commands to retrieve partition information in kB
use constant PART_CMDS => {
# total, available, mount point
linux => 'df -P | awk \'NR> 1 {print $2, $4, $6}\,
solaris => 'df -k | awk \'NR> 1 {print $2, $4, $6}\,
hpux => 'df -P | awk \'NR> 1 {print $2, $4, $6}\,
aix => 'df -kP | awk \'NR> 1 {print $2, $4, $6}\
};
情報取得のための定義済の値を変更するには、コマンドを編集するだけですが、以下に注意します。
- ブロックの終わりに
{ };のようにセミコロンがあるがことを確認 - コマンドが
' 'でくくられているか確認 - シングルクォーテーションを使う場合は、
` `のような追加の引用符が必要になる場合があります(前の例を参照)。 - コマンドで使用するシングルクォーテーションの前に
\が付いていることを確認してください。これは\' を意味します。 たとえば、このコマンドは通常次のようになります。
df -P | awk 'NR> 1 {print $2, $4, $6}'
上記は以下のようになります。
df -P | awk \'NR> 1 {print $2, $4, $6}\'
Pandora FMS Windows エンドポイント
Pandora FMS Windows エンドポイントの設定
Windows エンドポイントの基本的なパスやディレクトリは、エンドポイントをインストールした場所になります。デフォルトでは %ProgramFiles% です。
理解しておきたい基本的なファイルは次の通りです。
%ProgramFiles%\pandora_agent
Pandora FMS エンドポイントの実行ファイルやディレクトリがあるインストール先です。
%ProgramFiles%\pandora_agent\pandora_agent.conf
エンドポイントの設定ファイルです。実行モジュールおよびエンドポイントプラグインの設定はここにあります。
%ProgramFiles%\pandora_agent\PandoraAgent.exe
エンドポイントの実行バイナリです。
%ProgramFiles%\pandora_agent\scripts
Pandora FMS エンドポイントの起動・停止・再起動スクリプトです。
%ProgramFiles%\pandora_agent\pandora_agent.log
Pandora FMS エンドポイントがデバッグモードで実行されたときに出力されるログファイルです。
%ProgramFiles%\pandora_agent\util
エンドポイントプラグインを含むディレクトリです。
%ProgramFiles%\pandora_agent\collections
エンドポイントのコレクションを含むディレクトリです。
MS Windows での基本エンドポイントオプション
ソフトウェアエージェントで リモート設定が有効 になっており、インストールされているバージョンが 774 以降の場合、ウェブコンソールのエージェント設定の 基本オプション(Basic options) セクションで次のオプションを有効にできます。
- インベントリの有効化(Enable inventory): インベントリ監視 オプションを有効にします。設定ファイルで次のパラメータが有効になります。
module_begin module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\cpuinfo.vbs" module_crontab * 12-15 * * 1 module_end module_begin module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\moboinfo.vbs" module_crontab * 12-15 * * 1 module_end module_begin module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\diskdrives.vbs" module_crontab * 12-15 * * 1 module_end module_begin module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\cdromdrives.vbs" module_crontab * 12-15 * * 1 module_end module_begin module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\videocardinfo.vbs" module_crontab * 12-15 * * 1 module_end module_begin module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\ifaces.vbs" module_crontab * 12-15 * * 1 module_end module_begin module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\monitors.vbs" module_crontab * 12-15 * * 1 module_end module_begin module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\printers.vbs" module_crontab * 12-15 * * 1 module_end module_begin module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\raminfo.vbs" module_crontab * 12-15 * * 1 module_end module_begin module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\software_installed.vbs" module_crontab * 12-15 * * 1 module_end module_begin module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\userslogged.vbs" module_crontab * 12-15 * * 1 module_end module_begin module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\productkey.vbs" module_crontab * 12-15 * * 1 module_end module_begin module_plugin cscript.exe //B //t:20 "%PROGRAMFILES%\Pandora_Agent\util\productID.vbs" module_crontab * 12-15 * * 1 module_end
- セキュリティ強化監視を有効にする(Enable security hardening monitoring): プラグインが監視対象デバイスのセキュリティを強化できるようにします。設定ファイルで次のパラメータが有効になります。
#Hardening plugin for security compliance analysis. Enable to use it. module_begin module_plugin "%PROGRAMFILES%\Pandora_Agent\util\pandora_hardening.exe -t 150" module_absoluteinterval 7d module_end
オプションは、エージェント期間として 7 日間隔 (7d) で実行のタイムアウトを 150 秒に設定 (-t 150) します。
- ログ収集を有効にする(Enable log collection): これにより、フォレンジック分析用のログ ファイルが収集され、すべてのログが保存されます。設定ファイルで次のパラメータが有効になります。
module_begin module_name PandoraAgent_log module_type generic_data_string module_regexp C:\archivos de programa\pandora_agent\pandora_agent.log module_description This module will return all lines from the specified logfile module_pattern .* module_end
MS Windows でのエージェントセキュリティオプション
PFMS エンドポイント バージョン 775 以降には、デフォルトで無効になっているプラグインが含まれています。これを有効にするには、設定ファイル で、以下の指示を コメント解除 します。
# Pandora basic security check plugin for windows. #module_begin #module_plugin "%PROGRAMFILES%\Pandora_Agent\util\pandora_security_win.exe" #module_end
エンドポイントが再起動されると、次のエージェントモジュールが有効になります。
- Microsoft またはサードパーティのウイルス対策ソフトウェアがインストールされ、実行されており、ウイルス定義が最新であること (2 つのモジュール)。MS Windows Server® ではこの機能は利用できないため、モジュールは作成されません。
- 自動画面ロックがアクティブかどうかを確認します (画面のロック状態)。これにより、マウスやキーボードの操作なしでコンピューターを放置したときにユーザのアカウントが保護されます (1 つのモジュール)。
- MS Windows® が 1 週間以内に更新 (Windows updated®) されたかどうかを確認します (1 つのモジュール)。
- ファイアウォールのステータス、有効かどうか (3 つのモジュール、ファイアウォールプロファイルごとに 1 つ: ドメインネットワーク、プライベートネットワーク、パブリックネットワーク)。
- すべてのローカルアカウントにパスワードが設定されていることを確認 (1 つのモジュール)。
- セッション試行の失敗ログが有効かどうかを監視する専用のモジュール (英語とスペイン語でインストールされた OS のみ)。
エンドポイントの自動デプロイ
自動検出システムを通したデプロイの仕組みを使ってソフトウエアエージェントをデプロイすることができます。より詳細は、 こちらを参照してください。
エンドポイントの自動アップグレード
ファイルコレクションと pandora_update ツールを使って、エンドポイントは自分自身の更新ができます。
pandora_update ツールは、Perl の Digest:MD5 モジュールが必要です。Perl 5.14 からはデフォルトで含まれていますが、古いバージョンでは手動でインストールしておく必要があります。
これは、次のように動作します。
1. エンドポイントが、例えば次のようなファイルコレクションの incoming ディレクトリに新たなバイナリを受信します。
Windows の例:
c:\program files\pandora_agent\collections\fc_1\PandoraAgent.exe
Linux の例:
/etc/pandora/collections/fc_1/pandora_agent
2. エンドポイントは、pandora_update プラグインを実行します。このプラグインは、コレクションの短い名前をパラメータとして受け取ります(この例では fc_1)。コレクションディレクトリ内のエンドポイントバイナリをスキャンし、現在動作しているものと比較します。違いがあれば、pandora_update がエンドポイントを停止し、バイナリを置き換え、新しいバイナリを使ってエンドポイントを再起動します。
異なるアーキテクチャのアップデートを行うには、それぞれ異なるコレクションを用意する必要があります。例えば、32bit および 64bit の Windows エンドポイントをアップデートする必要がある場合は、2つのコレクションを作成し、それぞれに対応した PandoraAgent.exe バイナリを含める必要があります。
3. Pandora_update はまた、async_string モジュールを使うことによって、次の実行タイミングでユーザに通知を出せるように、エンドポイントのアップデートプロセスに関するアップデートイベントログを出力します。
以下がアップデートプロセスで使うモジュールです。間隔は長めに設定します。
Unix 通常インストール
module_begin module_name Pandora_Update module_type async_string module_interval 20 module_exec nohup /etc/pandora/plugins/pandora_update fc_1 2> /dev/null && tail -1 nohup.out 2> /dev/null module_description Module to check new version of pandora EndPoint and update itself module_end
Unix カスタムインストール
module_begin module_name Pandora_Update module_type async_string module_interval 20 module_exec nohup /var/opt/PandoraFMS/etc/pandora/plugins/pandora_update fc_1 /var/opt/PandoraFMS 2> /dev/null && tail -1 nohup.out 2> /dev/null module_description Module to check new version of pandora EndPoint and update itself module_end
pandora_update コマンドの 2つ目のパラメータは、Pandora FMS のインストールパスです。このパラメータは、デフォルトのパスにインストールした際は不要です。
MS Windows®
module_begin module_name Pandora_Update module_type async_string module_interval 20 module_exec pandora_update.exe fc_1 module_description Module to check new version of pandora EndPoint and update itself module_end
XML ファイルからのエンドポイントとモジュールの自動作成 / 学習モード
エンドポイントは、コンソールから 3つの動作モードを設定できます。
- 学習モード(Learning mode): エンドポイントから新たなモジュールを含む XML を受け取ると、それらが自動的に作成されます。これがデフォルト動作です。
- 通常モード(Normal mode): コンソールに存在しない新たなモジュールを XML で受け取っても作成しません。
- 自動無効化モード(Self-disabled mode): 学習モードに似ていますが、すべてのモジュールが不明状態になった場合にエンドポイントを自動的に無効化します。新たな情報を受け取ったときに改めて自動化します。
XMLを受け取ったときに既存のモジュールから更新されるデータ
既存のモジュールからの情報を含む XML を受信すると、モジュールデータに加えて、説明と拡張情報のみが更新されます。
学習モードがオフかどうかに関係なく、GIS データは常に更新されます (有効な場合)。







