Pandora:Documentation ja:Configuration

From Pandora FMS Wiki

Jump to: navigation, search

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

Contents

Pandora FMS の設定

Pandora FMS には、3つの基本的なコンポーネントがあり、それぞれ正しく動作させるためには設定が必要です。最初の 2つは、サーバとウェブコンソールで、それらはデータをやりとりしデータベースへのデータの保存および、保存されているデータの表示を行います。3つ目はソフトウエアエージェントで、Pandora FMS サーバへデータを送ります。

この章では、これら 3つのコンポーネントの設定について説明します。また、パフォーマンスを維持するために重要な、その他のコンポーネントについても説明します。

サーバ

Pandora FMS サーバには、パフォーマンスを得るためにいくつかのパラメータを設定するための設定ファイルがあります。設定ファイルは、ディレクトリ /etc/pandora/ 以下にある pandora_server.conf です。

設定ファイルの項目

Pandora FMS の設定ファイルは、UNIX の基本的なプレーンテキストファイルになっています。"#" が先頭にある行は、使われていない設定やコメントです。

以下に全設定パラメータについて説明します。


servername

Pandora FMS のサーバ名を設定します。サーバ名にホスト名を利用する場合はコメントアウトします。

incomingdir

XML データを受け取るディレクトリを設定します。デフォルトは、/var/spool/pandora/data-in/ です。

log_file

Pandora FMS サーバのログファイルを設定します。デフォルトは、/var/log/pandora/pandora_server.log です。

snmp_logfile

Pandora FMS の SNMP コンソールログを設定します。デフォルトは、/var/log/pandora/pandora_snmptrap.log です。

errorlog_file

Pandora FMS のエラーログを設定します。デフォルトは、/var/log/pandora/pandora_server.error です。

dbname

接続するデータベース名を設定します。デフォルトは、pandora です。

dbuser

Pandora データベースに接続するユーザを設定します。デフォルトは、pandora です。


dbengine

常に 'Mysql' です。(デフォルト値)

dbpass

Pandora FMS データベースに接続する時のパスワードを設定します。

dbhost

Pandora FMS データベースが動作するホストの IPアドレスかまたはホスト名を設定します。サーバと同一のホストにデータベースをインストールした場合は、localhost です。

dbport

(オプション) データベースの接続ポートを指定する場合に利用します。

daemon

Pandora サーバをデーモンで動作させるかどうかを指定します。-D オプションを付けてサーバを起動した場合も、デーモンとして実行されます。

verbosity

ログファイルへのエラーメッセージの出力レベルを設定します。0 はデフォルト、1は詳細出力、2はデバッグ出力、3〜10はさらに多くの情報を出力します。

master

マスターサーバの優先順位です。稼働しているサーバで最も値の大きいものがマスターになります。同じ値の場合はランダムです。0 に設定した場合は、そのサーバはマスターにはなりません。より詳細は、冗長化構成(HA)の章を参照してください。

snmpconsole

SNMP トラップコンソールを有効にする場合は 1 に設定します。無効にする場合は 0 を設定します。SNMP コンソールは、UNIX のsnmptrapd に依存しています。

networkserver

Pandora FMS ネットワークサーバを有効にする場合は 1 に設定します。無効にする場合は 0 に設定します。

dataserver

Pandora FMS データサーバを有効にする場合は 1 に設定します。無効にする場合は 0 に設定します。

reconserver

Pandora FMS 自動検出サーバを有効にする場合は 1 に設定します。無効にする場合は 0 に設定します。

pluginserver

Pandora FMS プラグインサーバを有効にする場合は 1 に設定します。無効にする場合は 0 に設定します。

predictionserver

Pandora FMS 予測サーバを有効にする場合は 1 に設定します。無効にする場合は 0 に設定します。

wmiserver

Pandora FMS WMI サーバを有効にする場合は 1 に設定します。無効にする場合は 0 に設定します。

inventoryserver

(Pandora FMS Enterprise のみ)

Pandora FMS リモートインベントリサーバを有効にする場合は 1 に設定します。無効にする場合は 0 に設定します。 インベントリデータがエージェントからデータサーバに送信される場合は、リモートインベントリサーバを有効にする必要はありません。

exportserver

(Pandora FMS Enterprise のみ)

Pandora FMS エクスポートサーバを有効にする場合は 1 に設定します。無効にする場合は 0 に設定します。

webserver

(Pandora FMS Enterprise のみ)

ウェブのチェック(Goliat サーバ)を有効にする場合は 1 に設定します。無効にする場合は 0 に設定します。

eventserver

(Pandora FMS Enterprise のみ)

イベント収集サーバを有効(1)または無効(0)にします。(1がデフォルトです)

icmpserver

(Pandora FMS Enterprise のみ)

エンタープライズ ICMP サーバを有効(1)または無効(0)にします(0がデフォルトです)。 エンタープライズ ICMP サーバは、ICMP リクエストを実行するのに Nmap を利用します。古いバージョンの Nmap' を使った XML 出力では、ラウンドトリップタイムが出力されません。全ての ICMP 応答時間モジュールが 0 を返す場合は、この設定を 0 にしてください。NMAP のバージョンが古い場合は、NMAP 5.51 以上をインストールしてください。次のように nmap を実行しラウンドトリップタイムを返すかどうかで見ることができます。

nmap -nsP -PE -oX - www.pandorafms.com | grep srtt

snmpserver

(Pandora FMS Enterprise のみ)

エンタープライズ SNMP サーバを有効(1)または無効(0)にします(0がデフォルトです)。 エンタープライズ SNMP サーバは、SNMP リクエストを送信するのに braa という外部ツールを利用します。braa で処理できないモジュールは未初期化となり、ネットワークサーバで処理されます。braa の利用で問題が発生した場合は、この設定を 0 にしてください。

network_timeout

ネットワークサーバが対象モジュールに接続する場合のタイムアウトを設定します。デフォルトの値は、2秒です。

server_keepalive

サーバダウンと認識する時間を秒で設定します。デフォルト値は 45秒です。

server_threshold

メインループの実行間隔を秒で設定します。デフォルト値は 1秒です。

network_threads

ネットワークサーバのスレッド数を設定します。これは、同時にいくつのチェックを実行するかを意味します。数値を増やすと、その分の処理能力が必要になります。デフォルト値は 5です。

icmp_checks

icmp_proc モジュールにおいて、ping を実行する数を設定します。モジュールの状態を正しく認識するためには、少なくとも 1を設定する必要があります。デフォルト値は 1です。

(> 5.1SP2) icmp_packets

一度の ping 要求で送信する ICMP パケットの数を定義します。デフォルトは 1です。

tcp_checks

TCP の接続リトライ数を設定します。デフォルト値は 1です。

tcp_timeout

TCP 接続のタイムアウト値を設定します。デフォルト値は 30 です。

snmp_checks

SNMP 接続のリトライ数を設定します。デフォルト値は 1 です。

snmp_timeout

SNMP 接続のタイムアウト値を設定します。デフォルトは 3 です。

snmp_proc_deadresponse

通常、(proc) などの SNMP ブーリアンデータの取得に失敗した場合や、NULL が返ってきた場合は、該当モジュールはダウンと認識しますが、このパラメータを 0 に設定することによりそれを無視します。

plugin_threads

サーバで実行するプラグインのスレッド数を設定します。同時にいくつのチェックを実行するかを示します。デフォルトは 3 です。

plugin_timeout

プラグインのタイムアウト値です。この時間を超えると、モジュールは不明状態になります。デフォルトは 5 です。プラグインの実行に数秒かかるような場合は、この値を大きくする必要があります。 ここでの設定値よりプラグインのタイムアウト値設定を大きく設定したとしても、ここで設定した値が優先されます。

wmi_timeout

WMI のタイムアウトを設定します。ここで設定した時間を越えると、モジュールは不明状態になります。デフォルトは 10 です。

wmi_threads

WMI サーバのスレッド数を設定します。同時にいくつのチェックを実行するかを示します。デフォルトは 2 です。

prediction_threads

予測サーバのスレッド数を設定します。

recon_threads

自動検出サーバのスレッド数を設定します。同時にいくつのチェックを実行するかを示します。デフォルトは 2 です。

dataserver_threads

データサーバのスレッド数を指定します。同時にいくつの XML ファイルの処理を実行するかを示します。デフォルトは 2 です。

inventory_threads

(Pandora FMS Enterprise のみ)

リモートインベントリサーバのスレッド数を設定します。このコンポーネントにいくつのスレッドを割り当てるかを示します。

export_threads

(Pandora FMS Enterprise のみ)

エクスポートサーバのスレッド数を設定します。このコンポーネントにいくつのスレッドを割り当てるかを示します。

web_threads

(Pandora FMS Enterprise のみ)

ウェブテストサーバのスレッド数を設定します。このコンポーネントにいくつのスレッドを割り当てるかを示します。

web_engine

(Pandora FMS Enterprise のみ)

ウェブモニタリングで LWP の代わりに Curl を利用する場合は、"curl" を設定します。Curl のバイナリがインストールされ、パスが通っている必要があります。

mta_address

メールサーバ (MTA) の IP アドレスを設定します。

mta_port

メールサーバのポート番号を設定します。

mta_user

メールサーバのユーザを設定します。(必要な場合)

mta_pass

メールサーバのパスワードを設定します。(必要な場合)

mta_auth

メールサーバの認証の仕組みを設定します。設定可能な値は、LOGIN PLAIN CRAM_MD5 DIGEST-MD です。(必要な場合)

mta_from

メールの発信元アドレスを設定します。デフォルトは、pandora@localhost です。

mail_in_separate

デフォルトは 1です。1 に設定すると、メールは宛先毎に別便で送信されます。 0 に設定すると、すべての宛先を含む形で1通のメールを送信します。

xprobe2

これを定義すると、自動検出処理でのエージェント検出時にオペレーティングシステム情報を検出します。デフォルトは、/usr/bin/xprobe2 です。

snmpget

SNMP のチェックに必要なプログラムの指定で、デフォルトは、/usr/bin/snmpget です。snmp の標準クライアントの場所を設定します。設定内容について理解できない場合は変更しないでください。

nmap

自動検出サーバに必要なプログラムの指定で、デフォルトは、/usr/bin/nmap です。設定内容について理解できない場合は変更しないでください。

(> 5.1) nmap_timing_template

1 から 5 の間で nmap がどの程度アグレッシブに動作するかを指定します。1 はゆっくりですが信頼性があります。5は早いですが信頼性は低くなります。デフォルトは 2です。

(> 5.1) recon_timing_template

nmap_timing_template と同じですが、サテライトサーバおよび自動検出サーバのネットワークスキャンが対象となります。

plugin_exec

プラグインとして実行される Pandora FMS ツールが置かれている場所への絶対パスの設定です。デフォルトは、/usr/local/bin/pandora_exec です。設定内容について理解できない場合は変更しないでください。使っているシステムに timeout が無い場合は、代りに /usr/bin/pandora_exec を利用するように変更してください。

autocreate_group

データファイル受信により新たなエージェントが作られた場合のデフォルトグループの設定です。デフォルトは 2 です。

autocreate

この値を 1 に設定すると、コンソールに存在しないエージェントから XML ファイルを受信したときに、そのエージェントを自動作成します。この値を 0 に設定すると、自動作成は無効になり、存在しないエージェントからの XML は捨てられます。この場合は、手動でエージェントを作成する必要があります。(エージェント名は大文字・小文字を区別することに注意してください)

max_log_size

Pandora FMS のログファイルの最大サイズをバイトで設定します。設定されたサイズに達すると、既存のファイルは pandora_server.log.old にリネームされ、新たなログファイルが作成されます。デフォルトは、65536 バイトです。

max_queue_files

入力ディレクトリで指定したディレクトリから Pandora FMS データサーバが読み込む、XML ファイルの最大数です。これにより、データサーバが多くのファイルを読み込みサーバのパフォーマンスに影響を与えることを避けることができます。デフォルト値は 5000 です。

Template warning.png

この値が全 XML データを対象にできる程度十分に大きくないと、インクリメンタルモジュールが正しく動作しない場合があります。

 


use_xml_timestamp

デフォルトでは無効です。有効にする(1に設定)と、XML ファイルが内部で持っているタイムスタンプの代りに、サーバに XML ファイルが置かれたタイミングのタイムスタンプを利用します。これはエージェントが生成した日時を無効にする場合や、サーバの日時を全体のリファレンスにしたい場合に便利です。日時の同期がとれていないシステムにおいて、問題を回避するためのオプションにもなります。

auto_restart

デフォルトでは無効になっています。有効にする (秒数を設定) と、指定した秒間隔 (1日であれば、86400) でサーバを再起動します。このオプションは、特定のスレッドや Pandora FMS サーバで問題が発生した場合に便利です。

restart

デフォルトは 0 です。1 に設定すると、サーバにクリティカルなエラーが発生した場合に、設定した秒数後にサーバを再起動します。

restart_delay

デフォルトは 60 です。restart が有効に設定されているときに、サーバにクリティカルなエラーが発生したあとに再起動するまでの秒数を設定します。

self_monitoring

サーバには、セルフモニタリングフラグがあります。これは、サーバ内に Pandora FMS サーバの重要なパラメータをモニタリングする仮想エージェントを作成します。これを有効化するには、self_monitoring1 に設定する必要がります。

(>= 5.1SP1) self_monitoring_interval

self_monitoring の時間間隔を秒単位で指定します。

update_parent

また、サーバ(v3.1)には、XML で送信された親の名前を更新するかどうかを定義するパラーメータがあります。このパラメータが定義されていなかったり、0 の場合は、エージェントの情報は無視されます。そうでなければ、XML で parent_name アトリビュートを受け取った場合、その名前のエージェントを検索し見つかればそれを親に設定します。

icmp_threads

(Pandora FMS Enterprise のみ)

ICMP Enterprise サーバのスレッド数を設定します。(3がデフォルトです)

snmp_threads

(Pandora FMS Enterprise のみ)

Enterprise SNMP サーバのスレッド数を設定します。(3がデフォルトです)

block_size

(Pandora FMS Enterprise のみ)

producer/consumer サーバのブロックサイズの指定で、1ブロックあたりのモジュール数の設定です。(15がデフォルトです)

braa

(Pandora FMS Enterprise のみ)

Enterprise SNMP サーバが必要とする braa バイナリの場所を設定します。(/usr/bin/braa がデフォルトです)

braa_retries

(Pandora FMS Enterprise のみ)

モジュールがエラーだった場合に、braa にてモジュールを処理する前に、通常のネットワークサーバでリトライする回数を指定します。

event_window

(Pandora FMS Enterprise のみ)

イベントサーバがイベントを探す時間範囲(秒)です。例えば、3600 に設定すると、イベントサーバは最新の 1時間以内に生成されたイベントをチェックします。

wmi_client

デフォルトで利用する wmi クライアントです(wmicがデフォルトです)。通常は変更しません。

activate_gis

GIS (エージェントとマップの位置情報) を有効化するフラグです。デフォルトは無効です。

location_error

2つの GIS 位置情報を同一の位置と見なす半径(メートル)です。

recon_reverse_geolocation_mode

自動検出における位置情報検出モードです。[disabled, sql, file]

  • disabled 自動検出タスクは、見つけた IP アドレスに対する位置情報検出を行いません。
  • sql 自動検出タスクは、見つけた IP アドレスに対してデータベースに SQL クエリを実施することにより位置情報検出を実施します。
  • file 自動検出タスクは、見つけた IP アドレスに対して、recon_reverse_geolocation_file で指定されたファイルから位置情報検出を実施します。

recon_reverse_geolocation_file

自動検出における位置情報定義ファイルです。これは、MaxMind GPL GeoLiteCity.dat フォーマットの位置情報データベースファイルです。

recon_location_scatter_radius

自動検出タスクで見つかったエージェントをランダムに配置する範囲の半径(メートル)です。円の中心は、IP の位置情報検出によって決まります。

google_maps_description

Google マップの API を使ってリアルタイムで位置情報検出を有効にします。これを有効にした場合、インターネット接続が必要で、すべての GIS 情報を処理するためパフォーマンスが低下します。注意:Googleにサービス料を支払わないと数日で該当 IP からのアクセスができなくなります。

openstreetmaps_description

Openstreetマップの API を使ってリアルタイムで位置情報検出を有効にします。これを有効にした場合、インターネット接続が必要で、すべての GIS 情報を処理するためパフォーマンスが低下します。ローカルの Openstreet マップサーバを利用するようにすることもできます。

event_file

この設定により、Pandora FMS が生成するイベントを CSV フォーマットのテキストファイルに落とすことができます。

例:

event_file /var/log/pandora/pandora_events.txt

テキストファイルの最初の行はフィールド名のヘッダーです。pandora_events.txt の内容は次のようになります。

id_agente,id_grupo,evento,timestamp,estado,utimestamp,event_type,id_agentmodule,id_alert_am,criticity,user_comment,tags,source,id_extra,id_usuario,critical_instructions,warning_instructions,unknown_instructions,ack_utimestamp
Agent_1,Servers,Module Connections opened (136.00) is going to NORMAL,2013-07-01 19:00:57,1,1372698057,going_down_normal,Connections  opened,,2,,,Pandora,,,,,,1372698057
Agent_2,Servers,Alert recovered (Critical condition) assigned to (Network Traffic (Outgoing)),2013-07-01 19:00:59,0,1372698059,alert_recovered,Network Traffic (Outgoing),Critical condition,4,,,Pandora,,,,,,0

snmp_storm_protection

Pandora FMS の SNMP コンソールは、指定した時間間隔内では、ここで指定した数以上の同一発信元からのトラップを処理しません。この数に達した場合はイベントが生成されます。

snmp_storm_timeout

snmp_storm_protection の時間間隔を秒単位で指定します。

例えば、同一発信元からのトラップを 10分で 1000件までに制限する場合は次の通りです。

snmp_storm_protection 1000
snmp_storm_timeout 600

text_going_down_normal

モジュールが正常状態になったときに生成されるイベントのテキスト。_module_ および _data_ マクロをサポートしています。

text_going_down_normal Module '_module_' is going to NORMAL (_data_)

text_going_up_critical

モジュールが障害状態になったときに生成されるイベントのテキスト。

text_going_up_warning

モジュールが正常状態から警告状態になったときに生成されるイベントのテキスト。

text_going_down_warning

モジュールが障害状態から警告状態になったときに生成されるイベントのテキスト。

text_going_unknown

モジュールが不明状態になったときに生成されるイベントのテキスト。

event_expiry_time

これに指定した時間(秒)より古いイベントが自動承諾されます。0 に設定するとこの機能は無効になります。

例えば、生成後 10時間たった時点でイベントを自動承諾するには次のようにします。

event_expiry_time 36000

event_expiry_window

このパラメータは、event_expiry_time の影響を軽減するために利用します。イベントテーブル全体の検索をしなくなります。指定した期間(秒)の最近のイベントのみが自動的に承諾されます。この値は、event_expiry_time より大きい値である必要があります。

デフォルト値は、1日です。

event_expiry_window 86400

(>= 5.X) snmp_forward_trap

snmp_forward_ip で指定されたホストへの SNMP trap 転送を有効化(1) または無効化 (0) します。

(>= 5.X) snmp_forward_ip

SNMP trap の転送先ホストの IP アドレスです。

Template warning.png

ローカルの IP アドレスを設定すると転送処理がループし、監視サーバが動作しなくなりますので十分注意してください。

 


(>= 5.X) snmp_forward_version

SNMP trap を転送するときに使う SNMP のバージョンです。このトークンには次の値を指定できます。

  • 1
  • 2c
  • 3

(>= 5.X) snmp_forward_secName

SNMP バージョン 3 の場合のみです。セキュリティ名を定義します。より詳細は、snmpcmd の man ページを参照してください。

(>= 5.X) snmp_forward_engineid

SNMP バージョン 3 の場合のみです。認証(セキュリティ)エンジンIDを定義します。より詳細は、snmpcmd の man ページを参照してください。

(>= 5.X) snmp_forward_authProtocol

SNMP バージョン 3 の場合のみです。認証プロトコルを定義します。このトークンには次の値を設定できます。

  • MD5
  • SHA

より詳細は、snmpcmd の man ページを参照してください。

(>= 5.X) snmp_forward_authPassword

SNMP バージョン 3 の場合のみです。認証パスフレーズを定義します。より詳細は、snmpcmd の man ページを参照してください。

(>= 5.X) snmp_forward_privProtocol

SNMP バージョン 3 の場合のみです。暗号化プロトコルを定義します。このトークンには次の値を設定できます。

  • DES
  • AES

より詳細は、snmpcmd の man ページを参照してください。

(>= 5.X) snmp_forward_privPassword

SNMP バージョン 3 の場合のみです。暗号化パスフレーズを定義します。より詳細は、snmpcmd の man ページを参照してください。

(>= 5.X) snmp_forward_secLevel

SNMP バージョン 3 の場合のみです。セキュリティレベルを定義します。このトークンには次の値を設定できます。

  • noAuthNoPriv
  • authNoPriv
  • authPriv

より詳細は、snmpcmd の man ページを参照してください。

(>= 5.1) claim_back_snmp_modules

1 に設定すると、データベースメンテナンススクリプト (pandora_db) 実行時に、ネットワークサーバで実行される SNMP モジュールが、Enterprise SNMP サーバへ渡されます。

(> 5.1) snmpconsole_threads

SNMP コンソールのスレッド数です。それぞれのスレッドが SNMP トラップを処理します。デフォルトは '1' です。

(> 5.1) translate_enterprise_strings

(Pandora FMS Enterprise のみ)

1 に設定すると、SNMP コンソールは SNMP トラップ処理で enterprise 文字列の変換を試みます。デフォルトは '1' です。

(> 5.1) translate_variable_bindings

(Pandora FMS Enterprise のみ)

1 に設定すると、SNMP コンソールは SNMP トラップ処理で変数バインディングの変換を試みます。デフォルトは '0' です。

(> 5.1SP1) async_recovery

1 に設定すると、非同期モジュールがその実行間隔の 2倍の時間データを受信しなかったら正常状態になります。0 に設定するとその動作が無効にになります。

(>= 6.0) console_api_url

コンソールの API の URL です。通常は /include/api.php で終わりるものです。

(>= 6.0) console_api_pass

コンソール API のパスワードです。パスワードは全体の設定セクションにあります。空の設定もできます。

(>= 6.0) console_user

要求されたアクションを実行する権限を持ったコンソールのユーザです。モジュールグラフイメージをアラートメールに挿入することができる必要があります。

(>= 6.0) console_pass

前述のユーザのパスワードです。

(>= 6.0) unknown_interval

モジュールが不明状態になるまでの時間間隔(モジュール実行間隔の倍数)。デフォルトでは、モジュール実行間隔の 2倍です。

(>= 6.0) global_alert_timeout

アラートの最大処理時間を秒単位で定義します。この時間を超えると実行が中断されます。デフォルトでは 15秒です。この値を 0 に設定すると、Pandora サーバはアラートの実行を中断しません。

(>= 6.0) remote_config

このパラメータで、コンソールの管理画面からリモートでのサーバの設定可否を設定します。Tentacle によって、エージェントのリモート設定のように動きます。デフォルトでは無効です。このパラメータとその他リモート設定パラメータは、Enterprise 版でのみ利用できます。

(>= 6.0) remote_config_address

リモート設定ファイルを送信する IP アドレスです。デフォルトでは localhost です。

(>= 6.0) remote_config_port

リモート設定のための tentacle ポートです。デフォルトは 41121 です。

(>= 6.0) remote_config_opts

拡張設定のための tentacle クライアントに与える追加パラメータです。"" でくくる必要があります。(例: "-v-r 5")

(> 6.0) warmup_event_interval

サーバ起動後から指定した秒数の間、モジュールの状態変化イベントを発生させないようにし、かつモジュールアラートを実行しないようにします(デフォルトは無効)。指定時間の開始と終了時にはシステムのイベントが生成されます。ただし、終了イベントは、状態変更またはアラートチェックが発生するまで延期されます。

(> 6.0) warmup_unknown_interval

サーバ起動後から指定した秒数の間、モジュールが不明状態にならないようにし、かつ keepalive モジュールが 0 にならないようにします(デフォルトは 5分)。指定時間の開始と終了時にはシステムイベントが生成されます。

(> 6.0SP4) enc_dir

XML parser 用の追加の .enc ファイルを置くディレクトリです。ここにあるファイルは、起動時にデータサーバによって自動的に読み込まれます。

(> 6.0SP4) unknown_events

モジュールの不明状態に関連したイベントを有効化(1)または無効化(0)します。

(>= 7.0) dynamic_updates

動的間隔の間に動的しきい値を何回再計算するかです。

(>= 7.0) dynamic_warning

動的な警告しきい値の計算に利用される障害間隔の長さに対するパーセンテージです。値が小さいと、障害と警告のしきい値は近くなります。

(>= 7.0) dynamic_constant

変わらないデータに対するモジュールの標準偏差を調整するために使用されるモジュールの平均に対する割合。大きい値にすると、動的しきい値の間隔が広くなります。

snmptrapd の設定

Pandora FMS SNMP コンソールは、SNMP トラップを受信するために snmptrapd を利用します。snmptrapd は、トラップを受信してログファイルを出力する、ほとんどの UNIX システムにある基本的なツールです。Pandora FMS では、snmptrapd をカスタムログファイルを書くように設定し、それを定期的に読み込みます。また、アラートが定義されていれば、それの実行も行います。

snmptrapd は、特に制限をしなければ、すべてのトラップを受信しログに出力します。 バージョン 5.3 より、受信するトラップを制限するアクセス制御ができるようになっています。

snmptrapd は、正しく設定しないとトラップを受け取れず、Pandora FMS コンソールにトラップを表示することができません。

/etc/snmp/snmptrapd.conf にて、snmptrapd の設定を行う必要があります。もし、なければ、/var/log/pandora/pandora_snmp.log に出力されるワーニングやエラーを確認してください。

基本的な snmptrapd.conf は次のような設定になっています。

authCommunity log public

もし、あなたが利用しているシステムで動作しなければ、あなたが使っているバージョンの snmptrapd でトラップを受信するための設定方法を確認してください。

man snmptrapd.conf

Tentacle の設定

デフォルトでは、Pandora FMS ソフトウエアエージェントは、データをサーバに送るのに Tentacle プロトコル (IANA [1] により、ポート 41121/tcp が割り当てられています) を利用します。エージェントは、ローカル(NFS,SMB)や、SSH、FTP など、他の方法でデータを送るように設定することもできます。もし、Tentacle プロトコルでデータを送りたい場合は、データを受信するための Tentacle サーバを設定する必要があります。デフォルトでは、Pandora FMS サーバをインストールすると、Tentacle サーバも同じマシンにインストールされます。

Tentacle サーバの設定を調整したい場合は、Tentacle サーバデーモンの起動スクリプトを直接編集します。

/etc/init.d/tentacle_serverd

以下に、Tentacle サーバの設定オプションを示します。

PANDORA_SERVER_PATH

データを受け取るディレクトリのパスを設定します。デフォルトでは /var/spool/pandora/data_in です。

TENTACLE_DAEMON

Tentacle デーモンを設定します。デフォルトでは、tentacle_server です。

TENTACLE_PATH

Tentacle のバイナリのパスを設定します。デフォルトでは /usr/bin です。

TENTACLE_USER

Tentacle デーモンを起動するユーザを設定します。デフォルトでは pandora です。

TENTACLE_ADDR

サーバが待ち受けるアドレスを設定します。0.0.0.0 を設定すると全アドレスで待ち受けます。デフォルトは全アドレスで待ち受ける 0.0.0.0 です。

TENTACLE_PORT

サーバが待ち受けるポート番号を設定します。デフォルトは 41121 (IANA により公式に割り当てられたポート) です。

TENTACLE_EXT_OPTS

Tentacle サーバを実行するときの追加オプションを設定します。

パスワード認証によるファイル転送(セキュアではありません):

tentacle サーバ設定パラメータ

-x password

クライアント側のパラメータ (TENTACLE_EXT_OPTS)

 -x password

クライアント認証無しでのセキュアなファイル転送:

tentacle サーバ設定パラメータ

 -e cert.pem -k key.pem

クライアント認証ありのセキュアなファイル転送:

tentacle サーバ設定パラメータ

 -e cert.pem -k key.pem -f cacert.pem

クライアント側パラメータ (TENTACLE_EXT_OPTS)

 -e cert.pem -k key.pem 

クライアント認証およびパスワード認証によるセキュアなファイル転送:

tentacle サーバ設定パラメータ

 -x password -e cert.pem -k key.pem -f cacert.pem

クライアント側パラメータ (TENTACLE_EXT_OPTS)

 -x password -e cert.pem -k key.pem

ウェブコンソール

Pandora FMS ウェブコンソールには、インストール時に生成される設定ファイルがあります。DEB や RPM パッケージでインストールしたり、Pandora FMS インストール CD でインストールした場合は、自動的に設定されます。 アーカイブから手動でインストールした場合は、ウェブアシスタント http://localhost/pandora_console/install.php から設定することができます。

設定ファイル config.php は、コンソールをインストールしたディレクトリの /include 以下にあります。 Debian や Ubuntu であれば /var/www/pandora_console、SUSE, RedHat, Fedora 等であれば /srv/www/htdocs/pandora_console など、ディストリビューションによって異なります。

設定ファイル config.php

設定オプションはファイルの先頭部分にあり、次の通りです。

$config["dbname"]

接続するデータベース名を設定します。デフォルトは pandora です。

$config["dbuser"]

Pandora FMS データベースに接続するユーザ名を設定します。デフォルトは pandora です。

$config["dbpass"]

Pandora FMS データベースに接続するユーザのパスワードを設定します。

$config["dbhost"]

Pandora FMS データベースのホスト名もしくは IP アドレスを設定します。サーバと同一ホストにインストールしているのであれば、localhost です。

$config["homedir"]

Pandora FMS ウェブコンソールのディレクトリを設定します。通常は、/var/www/pandora_console や /srv/www/htdocs/pandora_console です。

$config["homeurl"]

Pandora FMS コンソールの URL のベースディレクトリを設定します。通常は /pandora_console です。

$config["public_url"]

Pandora FMS サーバが apache の mod_proxy などを使ったリバースプロキシ配下にある場合に、URL を文字列で指定します。

/ から /pandora_console へのリダイレクト

もし、Apache サーバで提供するのが Pandora FMS のみであるならば、ユーザがウェブサーバの / (トップページ)にアクセスしたときに、/pandora_console にリダイレクトさせたいと考えるかもしれません。その場合は、次のような index.html ファイルを作成し、ウェブサーバのドキュメントルート (/var/www や /srv/www/htdocs) に置くと良いでしょう。

 <html>
 <head>
 <meta HTTP-EQUIV="REFRESH" content="0; url=pandora_console/index.php">
 </head>
 </html>

Pandora FMS ソフトウエアエージェント

エージェントとは?

Pandora FMS ソフトウエアエージェントはシステムのデータを収集します。それぞれ異なるシステムのローカルで動作し、集めた情報をリモートのサーバに送ります。

これは、特定のプラットフォームで動作するように、それぞれの言語で作られています。 Microsoft プラットフォーム (Windows 2000, Windows XP, Windows 2003 および Windows Vista) では、Windows スクリプトの VB スクリプトを利用しています。また、UNIX (GNU/Linux, Solaris, AIX, HP-UX, BSD および Nokia IPSO) ではシェルスクリプトを利用しています。 Pandora FMS エージェントは、公開している API に従えば、さまざまな言語で開発することができます。 Pandora FMS プロジェクトでは、より専用のエージェントを必要とするシステム用に、Posix C、Perl、Java 等でのエージェント作成も進行中です。

Pandora FMS エージェントは 100% オープンソースです。たとえば、エージェントのデータ収集およびそれのサーバへの送信に関してはドキュメント化されています。また、必要に応じて分析したり修正したりできます。繰り返しますが、エージェントはどんなプログラミング言語でも作成可能で改善もできます。隠されている部分はありません。

このドキュメントでは、Windows および UNIX オペレーティングシステムへのエージェントのインストールについて説明します。

ソフトウエアエージェントの一般的な役割

ソフトウエアエージェントの一般的な役割は、エージェントがインストールされているオペレーティングシステムに関する情報を収集し、まとめてサーバに送ることです。

Pandora FMS ソフトウエアエージェントは、情報を得るためにオペレーティングシステムの特定のコマンドを使っています。Pandora FMS データサーバは、これらのコマンドによって得られ、XML ファイルにてサーバへ送られたデータを保持し処理します。

これらのコマンドによって返されるデータはモジュールと呼びます。エージェントが学習モードで追加された場合、定義されていないモジュールデータが送信されると、サーバはそれを自動的に設定追加します。

エージェント設定概要

エージェントは、一つの設定ファイルにより制御されます。設定ファイルの書式は、UNIX システムと Windows システムでほとんど同じです。 ファイル名は、pandora_agent.conf で、Windows システムの場合はエージェントのインストールディレクトリに、UNIX システムの場合は、/etc/pandora_agent.conf にあります。

設定ファイルはプレーンテキストで、データの送信先やモニタ対象やその方法などの動作を変更するために、管理者が変更することができます。

Template warning.png

設定ファイルのエンコーディングはとても重要で、encoding パラメータに設定しているものと同じでなければいけません。エンコーディングを適切に設定することにより、受け取るデータが不正なエンコーディングになることを防ぎます。

 


次に、ソフトウエアエージェントと、それがどのようにローカルのシステムをモニタするかを定義したモニタリングモジュールの一般的なパラメータについて説明します。

エージェントの一般的なパラメータ

この章では、エージェントの一般的なパラメータ設定について説明します。Windows および UNIX 共通のものや、それぞれ専用のものがあります。以下に一般的なパラメータ詳細について記載します。

Template warning.png

エージェントから最初にサーバがデータを受け取った時は全ての情報がデータベースに保存されます。以降に受信したデータは(学習モードの有効・無効により)、XML ファイルにおける version, date, OS version および、設定ファイルの gis_exec, latitude, longitude, altitude parent_agent_name, timezone_offset, address, custom_field フィールドのみ更新されます。

 


server_ip

データを保持する Pandora FMS サーバのホスト名もしくは IP アドレスを設定します。サーバは、SSH (ポート 22)、Tentacle (ポート 41121)、FTP (ポート 21)、SMB もしくは NFS のいずれかでデータを受け取ります。

server_path

エージェントから送られるデータを受け取るサーバのディレクトリパスを設定します。通常は、/var/spool/pandora/data_in です。

temporal

サーバにデータを送信する前にエージェントがローカルで利用するフォルダのパスを設定します。

エージェントが一度 Pandora FMS サーバに接続すると、通信がうまくいったかどうかに関わらずデータは削除されます(この動作は変更可能です)。

これは、エージェントを実行しているマシンのハードディスクの負荷上昇を避けるためです。ローカルファイルの場所は、そのシステムのアーキテクチャに依存します。通常、UNIX システムでは、/var/spool/pandora/data_out であり、Windows システムでは、C:\program files\pandora_agent\temp です。Windows のインストーラはデフォルトでインストール時にこのディレクトリを作成します。

description

XML でエージェントが送る「説明」を設定します。Pandora FMS はエージェントを作成する時に、この「説明」を取り込みます。

group

エージェントが所属するグループ名を設定します。これはエージェント作成時にのみ使われます。Pandora FMS サーバは、エージェントを設定されたグループに自動的に入れます。

temporal_min_size

テンポラリディレクトリのパーティション空き容量がここで指定したサイズ (MB 単位) より小さくなったら、データパケットの生成を停止します。何らかの理由でサーバへの接続が長時間切れた場合に、ディスクがいっぱいになるのを避けます。

logfile

Pandora FMS エージェントのログファイルのパスを指定します。ログファイルは、システムやその他で何か発生したことを確認するために利用します。

interval

エージェントがデータを収集し、それをサーバに送信する間隔を "秒単位" で指定します。推奨値は 300 (5分) から 600 (10分) の間です。この値は大きくする必要があるかもしれません。データベースに保存されるデータ量を考慮することが重要です。30〜60秒未満に設定することはお勧めしません。

disable_logfile

このパラメータは、pandora_agent.log へのログ出力を無効化します。Windows のみ。

debug

このパラメータはデータファイルの生成を確認するために利用します。処理が完了した時にファイルは削除されず、テンポラリディレクトリに残ります。動作状況はログファイルに出力されます。ログファイルは pandora_agent.log です(上記参照)。

Pandora 6.0 より前のエージェントでは、debug モードではサーバにファイルをコピーしません。

agent_name

これは、ホスト名の別名です。この設定は必須ではありません。ホスト名は通常システムから自動的に取得されます。これを設定するとエージェントのホスト名情報を上書きします。モニタリング対象のホスト名が重複している場合などに利用します。

(>=5.1SP2) agent_name_cmd

外部コマンドを使ってエージェント名を定義したい場合に設定します。これはオプションです。このパラメータを設定した場合、'agent_name' は無視されます。外部コマンドはエージェント名を標準出力に返す必要があります。複数行を返した場合、1行目がエージェント名として扱われます。

address

これは、ソフトウエアエージェントの IP アドレスです。X.X.X.X というフォーマットの IP アドレス、'localhost' のようなホスト名、または 'auto' を設定できます。IP アドレスまたはホスト名を指定した場合は、そのアドレスがエージェントに追加され、メインのアドレスとなります。'auto' を指定した場合は、ホストから IP アドレスを取得してエージェントに追加されます。

encoding

iso-8859-15 や utf-8 のように、システムのエンコーディングの種類を設定します。このオプションは、Pandora FMS 2.0 以降の UNIX および Windows エージェントに存在します。

server_port

このパラメータは、リモートのサーバの待ち受けポートの設定です。Tentacle のデフォルトは 41121 です。Tentacle が使われていなかったり、サーバが他のポートで待ち受けている場合は、この設定を変更する必要があります。

transfer_mode

このパラメータには、エージェントからサーバへデータを送信するための方法を設定します。設定可能なモードは、SSH (SCP の利用)、Tentacle、FTP もしくは local です。local モードは、ディレクトリ間のコピーなので、サーバが動いているのと同じマシンでエージェントが動作している場合のみ設定可能です。local モードは、GNU/Linux エージェントにのみ存在します。

(>= 6.0) transfer_timeout

データ転送プログラムの実行タイムアウトを秒単位で指定します。設定されていない場合のデフォルトは 30 です。

server_pwd

Windows の FTP もしくは Tentacle 転送モードのパスワードを設定します。Tentacle モードの場合はパスワードは必須ではありません。このパスワードでサーバでの認証を行います。

server_ssl

Tentacle の転送モードを設定します。SSL を利用する場合は 1、そうでなければ 0 を設定します。

server_opts

Tentacle の転送モードを設定します。Tentacle クライアントの拡張設定のために渡す、追加パラメータを設定します。"" でくくる必要があります。(例えば、"-v-r 5")

バージョン 3.2 のエージェントでは、tentacle がサーバへデータを送信するのに HTTP プロキシをサポートしています。つぎのような拡張オプションを使います。

server_opts "-y user:pass@proxy.inet:8080"

これにより、tentacle クライアントがプロキシを利用するようになります。この例では、ポート 8080、ユーザ "user"、パスワード "pass" でプロキシに接続します。プロキシサーバが 192.168.1.2 で、ポート番号が 9000、また、認証が無い場合は次のようにします。

server_opts "-y 192.168.1.2:9000"

delayed_startup

このパラメータに設定した時間 (分単位)、Pandora FMS エージェントの起動を遅らせます。システムが多くのプログラムを読み込む場合に便利です。デフォルトでは無効になっています。Pandora FMS エージェントは、呼び出されたと同時に起動します。このオプションは、UNIX エージェントでのみ有効です。

pandora_nice

このパラメータには、Pandora FMS エージェントプロセスの優先順位を設定します。この設定は、Unix/Linux エージェントにのみ存在します。

autotime

これを有効に設定 (1 に設定) すると、エージェントが送信する時間データを無視し、サーバに接続した時間をサーバのローカル時間で認識するようになります。この設定は、何らかの理由によりエージェントの時刻がおかしかったり、サーバの時刻と大きくずれている場合に利用します。

cron_mode

このパラメータを有効にすると、エージェントをそれ自身の実行の仕組みではなく、Linux の crontab から指定した時刻に実行できるようになります。デフォルトでは無効になっています。本当に必要な場合で無い限り、利用はお勧めしません。

remote_config

このパラメータでは、コンソールからエージェントをリモートで設定できるかどうかを設定します。1 を設定するとリモート設定が有効になります。0 を設定するとリモート設定は無効です。デフォルトでは無効になっています。リモート設定は Tentacle モードでのみ利用できます。

xml_buffer

デフォルトは 0 です。1 に設定すると、送信できなかったすべての XML データファイルを temporal ディレクトリに保存し、後で再送します。

Unix エージェントでは temporal のデフォルト値が誰もが書き込み可能な /tmp になっているため、xml_buffer を有効にする場合には temporal を以下の例のように変更して下さい。

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

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 

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

server_ip       192.168.1.1 
server_path     /var/spool/pandora/data_in 
temporal        c:\archivos de programa\pandora_agent\temp
interval        300 
debug           0 
agent_name      box01 
server_port     41121 
transfer_mode   tentacle 
remote_config   1

timezone_offset

エージェントではサーバのタイムゾーンとのオフセットを設定できます。これは、エージェントが異なるタイムゾーンのサーバで稼働しているとき、同じ時間に合わせる場合にとても便利です。エージェントは、調整したタイムゾーンでサーバに送信します。

# Timezone offset: Difference with the server timezone
timezone_offset 3

サーバのタイムゾーンからエージェントのタイムゾーンを差し引いて計算されます。例えば、サーバのタイムゾーンが UTC+1 で、エージェントのタイムゾーンが UTC-5 であれば、タイムゾーンのオフセットは、6 = 1 - (-5) です。

parent_agent_name

(サーバで許可していれば)親エージェントの名前を XML で送信することにより、エージェントの親を更新することができます。

parent_agent_name parent_name

agent_threads <スレッド数>

モジュールを並行して実行するエージェントのスレッド数です。デフォルトではシングルスレッドで、すべての処理完了まで 1つずつモジュールを実行します。これは、UNIX エージェントのみの機能です。

include <ファイル名>

別の設定ファイルパスです。このファイルには、メインの設定ファイルに加えて追加のモジュールや収集を含めることができます。これはオプションです。Perl 版のエージェントは、ワイルドカードでファイル指定が可能です。

broker_agent <名前>

エージェントからのデータ収集および設定が空の場合の制御をします。メインの設定ファイルに記載したブローカーエージェントの名前で新たな設定ファイルが生成されます。この設定はメインのエージェントでのみ利用でき、作成された新たなエージェント設定内では利用できません。作成された新たなエージェントは、次回の実行タイミングから動作を開始します。これはオプションです。

pandora_user <ユーザ>

このパラメータはオプションで、システムの特定のユーザでエージェントを実行させるためのものです。指定するユーザは、エージェントの実行権限等を持つ必要があります。

このように、Windows と Unix のエージェントのパラメータはほとんど同じです。

(>= 5.X) custom_id

外部アプリケーションのための、エージェントのカスタム ID です。

(>= 5.X) url_address

コンソールでエージェントから開くカスタム URL です。

(>= 5.X) custom_fieldX_name

システムに設定済のエージェントのカスタムフィールド名です。存在しない場合は無視されます。

例:

custom_field1_name Model

(>= 5.X) custom_fieldX_value

前述のパラメータで定義されたカスタムフィールド X の値です。

例:

custom_field1_value C1700

(> 5.1 Unix エージェントのみ) macro<macro> <value>

モジュールの定義で利用可能なローカル実行マクロを定義します。この種のマクロは、主にメタコンソールシステムで利用します。ローカルモジュールコンポーネントシステムで、ローカルモジュールの利用を簡単にし、ソースモジュールの定義を編集する必要がないようにします。これにより、GUI に新たなフィールドが表示されます。ローカル実行マクロは、_field1_、_field2_、... のようなローカルプラグインマクロと似た名前をもちます。

例:

module_begin
module_name FreeDisk_opt
module_type generic_data
module_exec df -kh _field1_ | tail -1 |  awk '{ print $5}' | tr -d "%"
module_macro_field1_ /opt
module_end

(>= 6.0SP5) group_password <パスワード>

エージェントグループのパスワードです。グループのパスワード保護をしない場合は、コメントアウトした状態にしてください。

(>= 7.0) ehorus_conf <パス>

eHorus エージェント設定ファイルの絶対パスです。エージェントは、eHorus エージェントを特定するキーを含むカスタムフィールド名 eHoursID を作成します。

例:

ehorus_conf /etc/ehorus/ehorus_agent.conf (linux)
ehorus_conf /usr/local/ehorus_agent/ehorus_agent.conf (mac)
ehorus_conf "c:\program files\ehorus_agent\ehorus_agent.conf" (windows)

セカンダリサーバ

特殊な設定パラメータとしては、セカンダリサーバの設定があります。これにより、データを送信する別のサーバを設定します。セカンダリサーバモードには、二種類の動作があります。

  • on_error: プライマリサーバにデータを送信出来なかった場合のみ、セカンダリサーバにデータを送信します。
  • always: プライマリサーバにデータが送信できるかどうかに関わらず、常にセカンダリサーバにもデータを送信します。

設定例:

secondary_server_ip     192.168.1.123
secondary_server_path   /var/spool/pandora/data_in
secondary_mode          on_error
secondary_transfer_mode tentacle
secondary_server_port   41121

UDP サーバ

Pandora FMS エージェント(Unix および Windows 両方)は、リモートコマンドでエージェントの操作が可能です。このサーバは、ユーザが指定した UDP のポートで待ち受けており、アラートが発生したときに何らかのコマンドを実行するなど、リモートシステム (基本的には Pandora FMS) から命令を受け取ることができます。

UDP リモートサーバの設定には、いくつかのオプションがあり、pandora_agent.conf にて設定します。

  • udp_server:UDP サーバを有効にする場合は 1 を設定します。デフォルトでは無効です。
  • udp_server_port: 待ち受けポート番号を設定します。
  • udp_server_auth_address: 命令の送信を許可する IPアドレスを設定します。カンマ区切りで複数のアドレスを指定できます。0.0.0.0 に設定すると、UDP サーバはすべてのアドレスからのリクエストを受け付けます。セキュリティ上の理由から、必要な IP アドレスからのみエージェントへ接続できるように制限してください。
  • process_<name>_start <command>: ユーザ定義プロセスを起動するコマンドを設定します。
  • process_<name>_stop <command>: プロセスを停止するコマンドを設定します。
  • service_<name> 1: リモートから停止や起動ができるサービス名 <name> を設定します。

設定例:

udp_server 1
udp_server_port 4321
udp_server_auth_address 192.168.1.23
process_firefox_start firefox
process_firefox_stop killall firefox 
service_messenger 1 

サーバは、次のコマンドを受け付けます。

* <START|STOP> SERVICE <サービス名>: サービスの起動や停止を行います。
* <START|STOP> PROCESS <プロセス名>: プロセスの起動や停止を行います。
* REFRESH AGENT <エージェント名>: エージェントの強制実行および、データの更新を行います。

例:

STOP SERVICE messenger
START PROCESS firefox
REFRESH AGENT 007

サーバの /util/udp_client.pl に、Pandora FMS サーバでアラート発生時にプロセスやサービスを起動できる実行コマンドとして利用できるスクリプトがあります。次のような書式で利用します。

./udp_client.pl <address> <port> <command>

例えば、エージェントを再起動するには次のようにします。

./udp_client.pl 192.168.50.30 41122 "REFRESH AGENT"

より詳しくは、アラート設定の章を参照ください。

モジュール定義

収集された情報は、正確な書式でそれぞれのモジュール内に設定される必要があります。モジュールの定義を追加することにより、任意の情報収集を追加することができます。それぞれのモジュールにはいくつかのディレクティブがあります。以下に、UNIX エージェントにおけるモジュールの設定について説明します。(ほとんどは、Windows エージェントにも使えます)

一般的な書式は次の通りです。

module_begin
module_name Module Name
module_type generic_data
.
.
.
module_description Command Execution
module_interval Number
module_end 

モジュールにより、サブオプション の違いがありますが、すべてのモジュールは同じような構造になっています。module_interval および module_description パラメータは必須ではありませんが、それ以外は必須項目です。まずは、共通の項目について見ていきましょう。

全モジュールで共通の項目

Template warning.png

モジュールのフィールド情報はモジュール作成時にのみ反映されます(モジュールデータ、説明、拡張情報を除く)。モジュールがすでに存在する場合は更新されません。この動作は、エージェントの学習モードが有効になっている場合と同様です。

 


module_begin

モジュール定義の開始を示す、必須項目です。

module_name <名前>

モジュールの名前を指定します。これがモジュール ID になります。スペース無しで長すぎないものを設定してください。特別な制限はありません (最大 250 文字) が、短い名前の方が扱いやすいです。この名前は、同じエージェント内の似たような名前と重複しないようにしてください。なお、Pandora FMS は大文字・小文字を区別します。

これは必須項目です。

module_type

モジュールが利用するデータタイプです。エージェント用にいくつかのデータタイプがあります。

  • Numerical (generic_data): 小数または整数の数値データです。小数値の場合は整数に切り捨てられます。
  • Incremental (generic_data_inc): 前の値と現在の値の差分を間隔の時間で割ったデータです。差分がマイナスの場合は値はリセットされます。
  • Absolute incremental (generic_data_inc_abs): 前の値と現在の値の差分データです。絶対的な差分の値であり、単位時間あたりの差分ではありません。差分がマイナスの場合は値はリセットされます。差分が再びプラスになった場合はベースの値として利用され、そこから差分が計算されます。
  • Alphanumeric (generic_data_string): 文字列です。
  • Monitors (generic_proc): プロセスやサービスの状態確認に使います。このデータタイプは、異常時に 0 となり、正常時に 1 になるため、モニタ (Monitors) と呼ばれます。
  • Asynchronous Alphanumeric (async_string): 定期的な間隔によらない文字列収集に使います。その他のデータタイプ (generic*) は同期動作を行い、一定時間にデータを受け取らないと不明な状態となりますが、非同期 (Asynchronous) データタイプでは不明状態にはなりません。
  • Asynchronous Monitor (async_proc): generic_proc と似ていますが、非同期のデータタイプです。
  • Asynchronous Numerical (async_data): generic_data と似ていますが、非同期のデータタイプです。

これらは必須項目です。

module_min <値>

これは、そのモジュールで生成するデータの最小値です。ウェブコンソールでモジュールがまだ定義されていない場合は、この値が採用されます。このディレクティブは必須ではありません。この値はエージェント内で定義された値を上書きするわけではありません。もし、ダッシュボードにモジュールが存在しない場合は、学習モードが使われていれば自動的に作成されます。

module_max <値>

これは、モジュールで生成されるデータの最大値です。ウェブコンソールでモジュールがまだ定義されていない場合は、この値が採用されます。この設定は必須ではありません。また、Windows エージェントではサポートされていません。この値はエージェント内で定義された値を上書きするわけではありません。もし、ダッシュボードにモジュールが存在しない場合は、学習モードが使われていれば自動的に作成されます。

module_min_warning <値>

モジュールが警告状態になる最小値です。これは必須ではありません。ダッシュボードにモジュールが存在しない場合は、学習モードが使われていれば自動的に作成されます。

module_max_warning <値>

モジュールが警告状態になる最大値です。これは必須ではありません。ダッシュボードにモジュールが存在しない場合は、学習モードが使われていれば自動的に作成されます。

module_min_critical <値>

モジュールが障害状態になる最小値です。これは必須ではありません。ダッシュボードにモジュールが存在しない場合は、学習モードが使われていれば自動的に作成されます。

module_max_critical <値>

モジュールが障害状態になる最大値です。これは必須ではありません。ダッシュボードにモジュールが存在しない場合は、学習モードが使われていれば自動的に作成されます。

module_disabled <値>

モジュールが、有効(0)か無効(1)かを表します。これは必須ではありません。ダッシュボードにモジュールが存在しない場合は、学習モードが使われていれば自動的に作成されます。

module_min_ff_event <値>

連続抑制回数を指定します。連続抑制回数とは、収集データに揺らぎがあるような場合に、それを変化としてとらえないように抑止するものです。これは必須ではありません。ダッシュボードにモジュールが存在しない場合は、学習モードが使われていれば自動的に作成されます。

(>= 6.0 SP4) module_each_ff <値>

有効化(1)すると、module_min_ff_event の代わりに連続抑制回数に個別状態変化(module_min_ff_event_normal, module_min_ff_event_warning および module_min_ff_event_critical)を利用します。0 に設定すると無効です。

(>= 6.0 SP4) module_min_ff_event_normal <値>

個別状態変化の連続抑制回数です。module_min_ff_event および module_each_ff を参照してください。

(>= 6.0 SP4) module_min_ff_event_warning <値>

個別状態変化の連続抑制回数です。module_min_ff_event および module_each_ff を参照してください。

(>= 6.0 SP4) module_min_ff_event_critical <値>

個別状態変化の連続抑制回数です。module_min_ff_event および module_each_ff を参照してください。

(>= 6.0 SP4) module_ff_timeout <秒>

指定した秒数が経過したら連続抑制回数のカウンターをリセットします。これは、module_min_ff_event に指定した抑制回数の状態変化が module_ff_timeout に指定の秒数以内に発生する必要があることを意味します。

module_description <テキスト>

これは、モジュールにコメントを書くためのものです。こ設定は必須ではありません。この値はエージェント内で定義された値を上書きするわけではありません。もし、ダッシュボードにモジュールが存在しない場合は、学習モードが使われていれば自動的に作成されます。

module_interval <間隔倍率>

Pandora 1.2 より追加された新しいタイプです。それぞれのモジュールの実行間隔を設定することができます。この設定値がエージェントの間隔に対して掛け合わされます。例えば、エージェントが 300 (5 分)間隔の設定であった場合に、あるモジュールだけ 15分間隔にしたいときに、module_interval 3 を設定します。そのモジュールは、300秒 x 3 = 900秒 (5分) 間隔で実行されます。

module_timeout <秒数>

(Windows のみ)

バージョン 3.1 では、Pandora FMS は個々のモジュールごとの処理時間の設定をサポートしています。エージェントはモジュールの実行を待ちますが、ある一定時間 (デフォルトでは 15秒) 以上かかった場合は、モジュールの実行を中止します(モジュールの実装により処理が停止するのを防ぎます)。バージョン 3.1 では Windows のみをサポートしていますが、今後のバージョンでは UNIX エージェントにも実装予定です。

module_postprocess <倍率>

コンソールでデータ保存倍率と同等の処理を行います。エージェントが収集したデータをサーバに渡すときに、ここで設定した倍率を掛けて送ることができます。もし、エージェントが取得した値に 1024 を掛けたい場合は、1024 を設定します。また、1024 で割りたい場合は、1/1024 を意味する 0.000976563 を設定します。

module_save <変数名>

バージョン 3.2 から、環境変数でモジュールの戻り値を保存することができます。これにより、結果を他のモジュールで再利用することが可能です。値は、定義された順番でモジュールが実行されるタイミングで更新されることに注意してください。

例:

module_begin
module_name echo_1
module_type generic_data
module_exec echo 41121
module_save ECHO_1
module_end
module_begin
module_name echo_2
module_type generic_data
module_exec echo $ECHO_1
module_end
module_crontab <分> <時間> <日> <月> <曜日>

バージョン 3.2 から、モジュールを指定した日時に実行させるようにすることができます。この設定は、module_crontab にて、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

モジュールは、期間内に一度だけ実行されます。もし、期間中実行し続けたい場合は、次のように module_cron_interval 0 オプションを定義します。

module_begin
module_name crontab_test2
module_type generic_data
module_exec script.sh
module_crontab * 12-15 * * 1
module_cron_interval 0
module_end

コマンドを毎時 10分に実行したい場合は、次のようにします。

module_begin
module_name crontab_test3
module_type generic_data
module_exec script.sh
module_crontab 10 * * * *
module_cron_interval 0
module_end
module_condition <評価式> <コマンド>

バージョン 3.2 から、モジュールが特定の値を返す場合にコマンドを実行させることが可能です。次に示すオプションの一つを定義します。

  • > [値]: モジュールの値が指定された値よりも大きい場合にコマンドを実行します。
  • < [値]: モジュールの値が指定された値よりも小さい場合にコマンドを実行します。
  • = [値]: モジュールの値が指定された値と同じ場合にコマンドを実行します。
  • != [値]: モジュールの値が指定された値と異なる場合にコマンドを実行します。
  • =~ [正規表現]: モジュールの値が指定された正規表現にマッチする場合にコマンドを実行します。
  • (値, 値): モジュールの値が指定された値の範囲の場合にコマンドを実行します。

以下のように、同一のモジュールに複数の条件を設定することも可能です。

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_begin
module_name Precondition_test1
module_type generic_data
module_precondition (2, 8) echo 5
module_exec monitoring_variable.bat
module_end

module_condition と同様に、複数の事前状態定義を利用することができます。モジュールは、すべての事前状態定義にマッチした場合のみ実行されます。

module_begin
module_name Precondition_test2
module_type generic_data
module_precondition (2, 8) echo 5
module_precondition < 3 echo 5
module_exec monitoring_variable.bat
module_end
  • 注意: Windows プラットホームでは、コマンドの実行にはそれが正しく実行されていることを確認するために cmd.exe /c を利用することをお勧めします。例えば次の通りです。
module_begin
module_name Precondition_test3
module_type generic_data
module_precondition (2, 8) cmd.exe /c script.bat
module_exec monitoring_variable.bat
module_end
(>= 5.x) module_unit <単位>

これは、モジュールの値に付与する単位です。

例:

module_unit %

(>= 5.x) module_group <値>

これは、モジュールグループ名です。モジュールの存在しないグループは、モジュール無しで作成されます。

例:

module_group Networking

(>= 5.x) module_custom_id <値>

モジュールのカスタム ID です。

例:

module_custom_id host101

(>= 5.x) module_str_warning <値>

文字列タイプのモジュールで警告状態を定義する正規表現です。

例:

module_str_warning .*NOTICE.*

(>= 5.x) module_str_critical <値>

文字列タイプのモジュールで障害状態を定義する正規表現です。

例:

module_str_critical .*CRITICAL.*

(>= 5.x) module_warning_instructions <値>

モジュールが警告状態に変化したときのオペレータへの指示です。

例:

module_warning_instructions Increase incident priority

(>= 5.x) module_critical_instructions <値>

モジュールが障害状態に変化したときのオペレータへの指示です。

例:

module_critical_instructions Call to sys department

(>= 5.x) module_unknown_instructions <値>

モジュールが不明状態に変化したときのオペレータへの指示です。

例:

module_unknown_instructions Open incident

(>= 5.x) module_tags <値>

カンマ区切りでモジュールに割り当てるタグを指定します。システムに存在するタグのみ割り当てられます。

例:

module_tags tag1,tag2,tag3

(>= 5.x) module_warning_inverse <値>

警告閾値を定義と反対にするかどうかを指定するフラグ(0/1)です。

また、負の値を設定した場合、例えば -50 より小さい値を警告状態にするのであれば、min_warning を -50 にし、このパラメータを設定します。

例:

module_critical_inverse 0

(>= 5.x) module_critical_inverse <値>

障害閾値を定義と反対にするかどうかを指定するフラグ(0/1)です。

また、負の値を設定した場合、例えば -75 より小さい値を警告状態にするのであれば、min_critical を -75 にし、このパラメータを設定します。

例:

module_critical_inverse 1

(>= 5.x) module_native_encoding <値>

(Win32 のみ)

この設定トークンは、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 の設定が無い場合は、変換は行われません。

(>= 5.x) module_quiet <値>

モジュールを静観モードとするかどうかを定義するフラグ(0/1)です。静観時はイベントやアラートは発生しません。また、データの保存を行いませんので、SLA レポートには影響しません。

例:

module_quiet 1

(>= 5.x) module_ff_interval <値>

収集データに揺らぎがあるような場合に、それを変化としてとらえるべきかを判断する期間のデータ収集間隔です。(秒単位)

例:

module_ff_interval 2

(>= 5.x) module_macro<macro> <値>

コンソールのコンポーネントマクロシステムで生成されたマクロです。ローカルコンポーネントで生成されたモジュール用のため、設定ファイルからこのパラメータを設定することはあまり有用ではありません。

例:

module_macro_field1_ 8080

(>= 5.1 SP4) 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>
<![CDATA[92]]>
</module>
module_end

モジュール定義の終わりを表します。必須項目です。

情報を取得するためのディレクティブ

次に、それぞれのモジュールで情報を取得するためのディレクティブを示します。それぞれのモジュールで、1回ずつ利用できます。

module_exec <コマンド>

これは、コマンド実行により情報収集するための一般的な手法です。UNIX および Windows エージェントの両方にあります。このディレクティブは、一つだけ設定でき、一つのコマンドのみ定義可能です (コマンドの実行にパイプを使うことはできます)。このディレクティブは、コマンドを実行しその戻り値を取得します。この設定は Windows エージェントでも可能です。

Windows エージェントでのデータ取得のためのディレクティブは他にもあります。以下に示します。

Template warning.png

実行コマンドがエラー等で 0 以外のリターンコードを返した場合、情報は収集されません。

 


リターンコードが 0 以外であってもコマンドの実行結果に問題が無い場合は、リターンコードを 0 にするために他のコマンドへパイプします。例えば次の通りです。

top -n 1 

リターンコードはエラーの 1 となります(echo $? で確認してください)。それを 0 で返すためには、次のようにします。

top -n 1 | grep ""


エージェントのデータ取得のためのガイドラインは他にもあります。以下に示します。

module_service <サービス>

指定したサービスが実行中であるかどうかをチェックします。サービス名にスペースが含まれる場合は、" " でくくるのを忘れないようにしてください。

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

サービスは、Windows サービスマネージャに表示される短い名前 (サービス名) で識別されます。他に "表示名" と呼ばれる長い名前がありますが、Pandora FMS でのプロセスの識別には利用していません。 サービスにプロセスが関連付けられています。以下のスナップショットでは、上記モニタ設定例に対応した短い名前 (サービス名) が表示されています。ここで、大文字と小文字は区別されることに注意してください。例えば、DHCP と Dhcp は同じではありません。

Service name id.png

Unix

Unix でも Windows と同様に動作します。しかし、Unix ではサービスとプロセスは同じ意味です。例えば、sshd プロセスが動作しているか見るには、次のように設定します。

module_begin
module_name Service_sshd
module_type generic_proc
module_service sshd
module_description Process SSHD running
module_end

Unix エージェントでは、サービスのウォッチドッグおよびサービスの非同期検出はできません。

非同期モード

Pandora FMS は通常、(モジュールによって定義される)一定の秒間隔にてチェックを実行します (デフォルトでは、300秒 = 5分)。そのため、チェックの直後にサービスがダウンすると、それがダウンであると認識するのに、さらに 300秒かかります。非同期モジュールでは、Pandora に "今すぐ" サービスの障害を通知するようにできます。これは、非同期操作モードと呼んでいます。非同期モードにするには、以下のディレクティブを設定してください。

module_async yes

サービスのウォッチドッグ

サービスがダウンしたときに再起動するためのウォッチドッグモードがあります。サービスを起動するためのパラメータは Windows が認識しているため必要ありません。設定は簡単で、以下に例を示します。

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
module_proc <プロセス>

指定した名前のプロセスがいるかどうかをチェックします。プロセス名にスペースが含まれていても、" " は使わないでください。プロセス名に拡張子 .exe がつくかどうかを良く確認してください。モジュールは、指定した名前で実行されているプロセスの数を返します。プロセス名は Windows のタスクマネージャに表示されるそれと、スペースや大文字小文字を含め、完全に一致している必要があります。例えば、cmd.exeCMD.exe は同じではありません。

以下に cmd.exe プロセスをモニタリングする例を示します。

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

Unix

UNIX では、このモジュールは module_service のように動作します。非同期およびウォッチドッグモードはサポートしません。

非同期モード

サービスと同じように、モニタリングしているプロセスにて何らかの原因で障害が発生することがあります。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" が設定されている点です。

プロセスのウォッチドッグ

ウォッチドッグは、ダウンしたプロセスを見つけた場合にそれをすぐに起動させることができます。Pandora FMS の Windows エージェントは、プロセスがダウンしたときにウォッチドッグとして動作させることができます。これを、プロセスのウォッチドッグモードと呼びます。

プロセスの実行には、いくつかのパラメータが必要です。このモジュールには、いくつかの追加設定オプションがあります。ウォッチドッグモードは、モジュールタイプが非同期の場合のみ動作することに注意してください。ウォッチドッグでの 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

以下に、ウォッチドッグを行う場合の module_proc の追加パラメータを示します。

  • module_retries:ウォッチドッグによりプロセスを起動させるリトライ回数を指定します。指定した回数に達した場合、該当モジュールのウォッチドッグは無効になり、ユーザによる復旧 (少なくともエージェントの再起動) がされるまでプロセスの起動を行わなくなります。デフォルトでは上限はありません。
  • module_startdelay:プロセスのダウンを認識した後、最初にプロセスを起動させるまでの待ち時間をミリ秒単位で指定します。起動に時間がかかるようなプロセスの場合、再びプロセスのチェックを開始するまでの待ち時間をこのパラメータで調整します。例では 3秒に設定しています。
  • module_retrydelay:上記のパラメータに似ていますが、これはプロセスダウンを検知した後に起動に失敗た場合の再実行の待ち時間です。Pandora がプロセス再起動の失敗を検知したときに、ここで指定したミリ秒単位の時間待ったのち、プロセスが起動したかどうかのチェックを実施します。

ウォッチドッグ機能を利用したい場合は、Pandora FMS をサービスとして実行しておく必要があり、Pandora FMS エージェントのプロパティにて、"Interactive access with desktop" を有効にしておく必要があります。以下にスナップショットを示します。

Service interactive.png

また、Pandora FMS は "SYSTEM" アカウントのサービスとして動作するため、実行されるコマンドはこのユーザおよびこのユーザの環境で動作することに注意してください。したがって、特定のプロセスを特定のユーザで実行したい場合は、環境変数の設定やその他事前処理を行う呼び出し用スクリプト (.bat など) を用意し、そのスクリプトをウォッチドッグの起動プログラムとして設定する必要があります。

module_cpuproc <プロセス> (Unix のみ)

特定のプロセスの CPU 使用率を返します。

module_begin
module_name myserver_cpu
module_type generic_data
module_cpuproc myserver
module_description Process Command line
module_end
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 <ドライブ名:>|<ボリューム>

このモジュールは、UNIX および Windows 双方で利用できます。ディスクの空き容量をチェックします。(ドライブ名のあとに ":" を忘れないようにしてください。) UNIX であれば、/var などのボリュームを指定します。

module_freepercentdisk <ドライブ名:>|<ボリューム>

このモジュールは、ディスクの空きをパーセントで返します。Windows であれば、ドライブ名: (":"を忘れないようにしてください) で、UNIX であれば、/var などのボリュームを指定します。

 module_begin
 module_name freepercentdisk
 module_type generic_data
 module_freepercentdisk C:
 module_end
module_begin
module_name disk_var
module_type generic_data
module_freepercentdisk /var
module_end
module_occupiedpercentdisk <ドライブ名:>|<ボリューム>

(Unix のみ)

このモジュールは、/var 等の Unix ファイルシステムのディスク使用率(%)を返します。

module_begin
module_name disk_var
module_type generic_data
module_occupiedpercentdisk /var
module_end
module_cpuusage <cpu id>

このモジュールは、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

(Windows のみ)

このモジュールは、指定された IPアドレスおよびポート番号への接続確認を行います。成功すると 1 が返り、失敗すると 0 が返ります。なお、タイムアウトを設定する必要があります。

module_begin
module_name tcpcheck
module_type generic_proc
module_tcpcheck www.artica.es
module_port 80
module_timeout 5
module_end
module_regexp

(Windows のみ)

このモジュールは、正規表現を使ってファイル(ログ)の内容の比較を行います。モニタリングを開始した時点ですでに存在している行については無視します。モジュールが返す値はモジュールタイプにより異なります。

  • generic_data_string, async_string: 正規表現にマッチした行全体を返します。
  • generic_data: 正規表現にマッチした行数を返します。
  • generic_proc: 正規表現にマッチしたら 1、そうでなければ 0 を返します。
  • module_noseekeof: 0 がデフォルトです。これを有効にすると、それぞれのモジュールの実行において、ターゲットのファイル更新からは独立して、ファイルの EOF を確認することなくチェック処理が実行されます。これにより、常に検索パターンにマッチするすべての行が XML 出力に展開されます。
module_begin
module_name regexp
module_type generic_data_string
module_regexp C:\WINDOWS\my.log
module_pattern ^\[error\].*
module_noseekeof 1
module_end

正規表現の詳細の書式については、こちら [2] を参照してください。

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

(Win32 のみ)

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 パフォーマンスモニタは、モニタリングに利用できる何百ものパラメータを持つ強力なツールです。各ベンダにより独自のモニタ項目も追加されているため、システムパラメータだけでなく、そのシステムで動作しているデバイスの情報もモニタすることが簡単にできます。

パフォーマンスカウンタの項目の構文は、言語に依存しています。例えば、ドイツ語の Windows と英語の Windows では、項目を特定するための文字列が異なります。異なる言語で利用するのは難しいです。

利用できる値を探すために、モニタできるパフォーマンス項目の文字列を確認するには、Windows のツールである "パフォーマンス" を利用できます。

以下に Windows パフォーマンスモニタのスナップショットを示します。

Perfcounter screen1.png

このスナップショットでは、新たなモニタ項目を追加したいときの画面を示しています。

ここで、Procesador(スペイン語) のいくつかのパラメータが表示されています (スペイン語)。また、異なるサブ項目があります。プロセッサ時間のパーセンテージ とサブ項目を選択しています。この場合、我々はトータル _ Total に注目しています。

Perfcounter screen2.png

このように、OS のツールを使うことにより、システムパフォーマンスのさまざまな要素を取り込むことができます。この場合、モジュールの設定は次のようになります。

module_begin
module_name Processor_Time
module_type generic_data_inc
module_perfcounter \Procesador(_Total)\% de tiempo de procesador
module_end

デフォルトでは、カウンタの生データが表示されます。調整値を取得するには、module_cooked 1 を設定します。

module_begin
module_name Disk_E/S_Seg
module_type generic_data
module_cooked 1
module_perfcounter \DiscoFísico(_Total)\E/S divididas por seg.
module_end

多くのデータは、カウンタ値として返ってきます。そのため、データタイプとしては generic_data_inc を使う必要があります。また、とても大きなスケール (数百万) のデータが返ってくることがありますので、事前処理モジュールで 0.000001 などを設定して値を小さくすると良いです。

module_inventory

(Win32 のみ。Linux/Unix ではエージェントプラグインとして実装されています。)

前述の WMI を利用することにより、このモジュールはソフトウエアおよびハードウエアの違った情報を取得します。

モジュールは、取得した情報の種類を分類し収集します。以下に情報の種類の一覧を示します。

  • cpu: システムの CPU 情報を取得します。(プロセッサ名、クロック数、説明)
  • CDROM: CD-ROM の情報を取得します。(名称およびドライブ名)
  • Video: ビデオカードの情報を取得します。(説明、RAM容量、プロセッサ)
  • HDs: ハードディスクの情報を取得します。(モデル、サイズおよび、システムにおける名前)
  • NICs: ネットワークコントローラの情報を取得します。(説明、MAC アドレスおよび、IPアドレス)
  • Patches: インストール済のパッチ情報を取得します。(ID、説明、コメント)
  • Software: MSI パッケージの情報を取得します。(名前およびバージョン)
  • RAM: RAM モジュールの情報を取得します。(タグ、容量および名前)
  • Service: インストールされたサービスの情報を取得します。最初のカラムに、Pandora FMS がサービスのモニタリングに使う、サービスの短い名前が表示されます。

追加モジュールパラメータ:

  • module_interval: このモジュールは、日単位で情報収集するための間隔を定義する追加設定です。

このモジュールの利用例を以下に示します。

module_begin
module_name Inventory
module_interval 7
module_type generic_data_string
module_inventory RAM Patches Software Services
module_description Inventory
module_end
module_logevent

(Win32 のみ)

このモジュールは、Windows イベントログファイルの情報を取得します。パターンにマッチした項目や、発生元やイベントタイプでフィルタリングした情報が返ります。このモジュールは、バージョン 2.0 から存在していますが、 (遅い) WMI を利用するのではなく、Win32 のネイティブ API を利用するように改善しました。これにより、処理が早くなり、多くの項目を扱えるようになりました。新たな実装はまた、以前のバージョンよりも多くのフィールドをフィルタリングできます。モジュールの基本的な書式を以下に示します。

module_begin
module_name MyEvent
module_type async_string
module_logevent
module_source <logName>
module_eventtype <event_type/level>
module_eventcode <event_id>
module_application <source>
module_pattern <text substring to match>
module_description
module_end

すでに表示されたものを再度表示するのを防ぐために、エージェントが実行された最終時間より後のイベントのみを対象とします。

module_logevent には、次のパラメータを設定できます。(すべて大文字小文字を区別します)

  • module_source: イベントソース (System, Application, Security) を指定します。このフィールドは必須項目です。
  • module_eventtype: イベントタイプ (Error, Information 等) を指定します。このフィールドはオプションです。
  • module_pattern: 検索するパターン (文字列) を指定します。このフィールドはオプションです。
  • module_eventcode: 5112 等のイベント ID 番号です。このフィールドはオプションです。
  • module_application: イベント発生元のアプリケーションを指定します。イベントが検索される名前やログファイルを示す module_source と混同しないように注意してください。

例えば、system の error に分類される全てのイベントを表示するには、次のように設定します。

module_begin
module_name log_events
module_type generic_data_string
module_description System errors
module_logevent
module_source System
module_eventtype error
module_end

PandoraAgent という文字を含む全イベントを表示するには次のようにします。

module_begin
module_name log_events_pandora
module_type async_string
module_description PandoraAgent related events
module_logevent
module_source System
module_pattern PandoraAgent
module_end

その他例として、以下にイベントフィルタリングのスナップショットを示します。

Event sample.png


module_begin
module_name MyEvent
module_type async_string
module_source Application
module_eventtype Information
module_eventcode 6000
module_application Winlogon
module_pattern unavailable to handle
module_description
module_end

Pandora FMS は、ログを収集するシステムではないということを理解してください。このツールは、これらのクリティカルまたは重要なイベントを選択し、監視するためのシステムです。すべてのイベントを未分類で収集すると、データベースが飽和状態になりシステムパフォーマンスが著しく低下し、長期的に問題をもたらします。Pandora FMS を一般的なイベント収集ツールとして使うべきではありません。

module_plugin

プラグインエージェントから取得したデータを定義するためのパラメータです。これは、特殊なモジュールで、XML 全体を生成し、module_begin や module_type などの識別子は必要ありません。次のような書式です。

module_plugin plugin_filename parameter_1 parameter_2 parameter_3

プラグインに追加のパラメータを設定する場合は、次のように通常の書式を利用します。

module_begin
module_plugin plugin_filename parameter_1 parameter_2 parameter_3
module_interval 2
module_condition (0, 1) script.sh
module_end

それぞれのプラグインは個別の書式を持っています。エージェントにデフォルトで付属している正規表現プラグインで説明します。

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"

ファイルコレクションとプラグイン

ファイルコレクションを使う場合は、同様に設定できますが、ファイルが配置されている場所を理解する必要があります。ファイルコレクションは、最初にコレクションを作成した時の "ハンドル" もしくは短い名前を利用します。"fc_2" というような名前です。ファイルコレクションを使って module_plugin を利用するいくつか例を見てみましょう。

Unix:

module_plugin /etc/pandora/collections/fc_1/always_1.sh 

Windows:

module_plugin cscript //B "%ProgramFiles%\pandora_agent\collections\fc_2\df_percent.vbs"

プラグインの実行では、複数モジュールの値を返すことができることを認識しておくことがとても重要です。なぜなら、プラグインは XML 構造のデータを返します。例えば、Windows で /util/df.vbs プラグインの出力は次のようになります。

<module>
    <name><![CDATA[C:]]></name>
    <description><![CDATA[Drive C: free space in MB]]></description>
    <![CDATA[2361]]>
</module>
<module>
    <name><![CDATA[D:]]></name>
    <description><![CDATA[Drive D: free space in MB]]></description>
    <![CDATA[32020]]>
</module>
<module>
    <name><![CDATA[Z:]]></name>
    <description><![CDATA[Drive Z: free space in MB]]></description>
    <![CDATA[10168]]>
</module>
module_ping <ホスト>

(バージョン 4.0.1 以降、Windows のみ)

このモジュールは、指定したホストに ping を行い、応答があれば 1、そうでなければ 0 を返します。ping.exe のラッパーです。

次のパラメータを設定できます。

  • 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

(バージョン 4.0.1 以降、Windows のみ)

このモジュールは snmpget を実行し、その応答を返します。snmpget.exe のラッパーです。

次のパラメータを設定できます。

  • 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

イベントログが動作しているかをチェックする Windows モジュールの例を示します。

module_begin
module_name ServicioReg
module_type generic_proc
module_service Eventlog
module_description Eventlog service availability
module_end

Unix モジュールの例を示します。

module_begin
module_name cpu_user
module_type generic_data
module_exec vmstat | tail -1 | awk '{ print $14 }'
module_min 0
module_max 100
module_description User CPU
module_end

ソフトウエアエージェントの拡張機能

Pandora FMS はどんなシステムでもモニタできます。システムにインストールされたソフトウエアエージェントを通してモニタ対象システムのデータを収集したり、サーバで実行されるエージェントから成る "サテライトエージェント" として SNMP やユーザによって定義したコマンド等によりデータを収集することができます。

ソフトウエアエージェントは、Windows もしくは UNIX のエージェントです。エージェントは以下の説明に従ってインストールできます。 サテライトエージェントを設定するには、モニタ対象マシンにネットワーク的に到達できるサーバにソフトウエアエージェントをインストールし、モニタ対象マシンのデータを snmpgetping 等を利用してリモートから収集するように設定すれば良いだけです。

Unix/Linux エージェント

UNIX には、簡単にデータを収集できるいくつかのコマンドラインツールがあります。UNIX エージェントはこれをベースにしており、次の 2つの種類があります。

  • ShellScript:さまざまな OS にある、bash、ksh、csh などのシェルスクリプトを用いたエージェントです。Linux や MAC 向けにはすべての機能が実装されていますが、伝統的な UNIX システム (Solaris、AIX、HPUX) 向けには、すべての機能は実装されていません。
  • Perl:全ての UNIX システムで動作する、Perl 5.8 をベースにしたマルチプラットフォームエージェントです。Perl 5.8 以上が必要です。

シェルスクリプトエージェントは、古い UNIX (HPUX11.0、AIX 4.1、Solaris 2.6 など) でも動くように作られています。ただし、機能は制限されており、Tentacle クライアントがありません。サーバにモニタデータをアップロードするには、FTP もしくは SSH を利用する必要があります。

Pandora FMS Unix エージェントの設定

AIX、Solaris および GNU/Linux の間にはほとんど違いはありません。以下に重要なパラメータとディレクトリパスについて説明します。

インストーラを実行すると、Pandora FMS エージェントインストールされるメインディレクトリもしくは "ホーム" ディレクトリは、/usr/share/pandora_agent/ になります。ポリシー的にこれを受け入れられないシステムでは、実際のインストールパスから、/opt/pandora -> /usr/share/pandora_agent などのリンクを張ることをお勧めします。

その他重要なディレクトリを以下に示します。

  • /var/spool/pandora/data_out: エージェントが収集したデータを置くディレクトリです。
  • /etc/pandora/pandora_agent.conf: エージェントのメインの設定ファイルです。ここにデータの収集に使うコマンドの定義がされています。
  • /usr/local/bin/pandora_agent: Pandora FMS エージェント本体です。これは、pandora_agent.conf で設定されたデータ収集を行うシェルスクリプトです。これはまた、Pandora サーバにデータパケットを送信します。通常、/usr/bin/pandora_agent にリンクされています。
  • /usr/local/bin/tentacle_client: サーバにデータファイルを送信する Tentacle クライアントです。これは、Perl 5.8 で動作します。通常、/usr/bin/tentacle_client にリンクされています。
  • /etc/init.d/pandora_agent_daemon: エージェントの起動スクリプトです。pandora_agent を呼び出します。オプションとして、start/stop を利用できます。AIX システムでは、/etc/rc.pandora_agent_daemon です。
  • /var/log/pandora/pandora_agent.log: Pandora FMS エージェントがデバッグモードで動作している時にログが出力されるログファイルです。
  • /etc/pandora/plugins: エージェントプラグインを置くディレクトリです。これは /usr/share/pandora_agent/plugins にリンクされています。
Unix エージェントの実行

Pandora FMS エージェントをすると、設定ファイル /etc/pandora/pandora_agent.conf に設定された方法により Pandora FMS サーバへデータをコピーします。コピーの方法 (Tentacle、SSH、FTP) は、事前に定義されている必要があります。

エージェントの起動は次のように行います。

/etc/init.d/pandora_agent_daemon start

IPSO システムでは、エージェントはプライオリティ -10 で起動されます。システムの CPU 処理で最低の優先順位です。CPU 待ちをしている他の優先順位の高いプロセスが実行されます。IPSO エージェントには、Checkpoint/NOKIA のシステムにおいて、CPU プロセスを制御する特殊なパラメータ (harmless_mode) があります。これはとても特殊なケースです。

BSD システムでは、優先順位最大が +20 で、最小が -20 です。

エージェントを停止するには、次のコマンドを実行します。

/etc/init.d/pandora_agent_daemon stop
Unix エージェントの拡張設定

Pandora FMS の実際の能力は、エージェントでユーザ定義スクリプトを実行できることです。これにより特定のデータを収集したり、欲しい値を得るための操作を作成したりできます。これが、プラグイン構造のねらいです。より詳細は、補足資料のエージェントプラグインの作成を確認してください。

Unix エージェントの実装例

例 1: Aapche ウェブサーバでのメインページへのアクセス数を計算します。(大量のレコードがある場合は、パフォーマンスが落ちる可能性があります。)

module_begin
module_name WEB_Hits
module_type generic_data_inc
module_exec cat /var/log/apache/access.log | grep "index" | wc -l
module_end

例 2: DNS(named) が起動しているかどうかをチェックします。

module_begin
module_name DNS_Daemon
module_type generic_proc
module_exec ps -Af | grep named | grep -v "grep" | wc -l
module_end
Unix エージェントでシステム情報を取得する別の方法

これは、Unix の Perl エージェントでのみ実現可能です。(バージョン 3.2 以上)

「ブラックボックス」として動作するいくつかのモジュールがあります。ユーザはどのような処理を行っているかを意識する必要はありません。それらは以下のモジュールです。

  • module_procmem
  • module_freedisk
  • module_freepercentdisk
  • module_cpuproc
  • module_proc
  • module_procmem
  • module_cpuusage
  • module_freememory
  • module_freepercentmemory

例えば、cpuusage モジュールは、システムの CPU 使用率を % で返します。ユーザはコマンドを定義する必要は無く、Pandora が UNIX や Windows システムでどうすれば良いかを把握しています。

Pandora Unix エージェントでは、あらかじめコマンドが定義されており、OS により異なる方法でデータを取得します。

	linux => 'vmstat 1 2 | tail -1 | awk \'{ print $13 }\,
	solaris => 'vmstat 1 2 | tail -1 | awk \'{ print $21 }\,
	hpux => 'vmstat 1 2 | tail -1 | awk \'{ print $16 }\

テストしたシステムと若干違うシステムを使っている場合は、コマンドが正しくないかもしれません。その場合は、module_exec を使うか、pandora の内部コマンドを再定義します。そのためには、Pandora FMS Unix エージェントのコードを若干編集する必要があります。Perl のプログラムで簡単な修正で実現できますので心配しないでください。

Pandora エージェントは、通常 /usr/bin/pandora_agent にインストールされます。vi 等 (テキストエディタ) で開き、コマンドの設定部分を探します。次のようなコードが見つかります。

# 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}\
};

これは、pandora がシステムのトータルメモリを取得するためのコードの一部です。AIX では同様の情報を得るコマンドが無いため AIX の定義はありません。さらに、次のような設定があります。

# 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}\
};

これらは、ディスクの情報 (容量、空き容量、マウントポイント) を KB 単位で取得するコマンドです。情報を取得するための定義済の設定を変更するには、コマンドを編集します。ただし、以下の点に注意してください。

  1. 1行が、";" で終わっていること。
  2. コマンドは、' ' でくくられていること。
  3. コマンドで、' を使う場合は、\ でエスケープしていること。例えば次ような場合です。
df -P | awk 'NR > 1 {print $2, $4, $6}'

これは、次のように設定します。

df -P | awk \'NR > 1 {print $2, $4, $6}\'

これは、定義済のものと同じ書き方です。定義済の記述も参考にしてください。

Pandora FMS Windows エージェント

Windows エージェント動作の確認

Pandora FMS Windows エージェントの動作は、C:\program files\pandora_agent\pandora_agent.log により確認できます。これは、プレーンテキストのファイルでエージェントの実行状況が出力されます。

Tentacle や SSH が動作しているかどうかをチェックするには、tentacle_client コマンドおよび --test-ssh オプションを利用します。最初のコマンドは、転送するアドレスやファイルが特定できないとエラーを出力します。ただし、これはシステムに含まれる Tentacle クライアント(tentacle-client) を確認するだけです。後者のオプションを使った場合は、Pandora FMS への接続に SSH を利用し、ssh.test というファイルをコピーします。SSH を使いたい場合は、生成した鍵をサーバに設定することにより SSH を正しく設定する必要があることに注意してください。

Pandora FMS エージェントサービスの確認

Pandora FMS 3.0 では、すべての種類のメモリリークの回避や、プロセス、ファイル、TCP/IP ポートの扱いについて、注意深いチェックとデバッグを行っています。とても安定しており、すべての Windows プラットフォームでテストしています。しかしながら、いくつかのシステムではサービスのダウンが発生するかもしれません。そこで、システムの再起動や、エージェントの制御をしたい場合のために、いくつかの解決策を示します。

エージェントを制御するには、2つの方法があります。最初の方法は、Windows のタスク制御の AT コマンドにより、指定した日数間隔でエージェントを強制的に再起動することです。

AT による再起動

月曜と金曜に再起動するようにスケジューリングする方法:

at 00:00 /every:Monday,Friday "c:\program files\pandora_agent\scripts\restart_pandora_agent.bat"

スケジューリングされたタスクを確認するには、次のコマンドを実行します。

at

スケジュールされたタスクが表示されます。

Automatic control of the service in case of falls

サービスがダウンしたときの自動制御

Windows では、サービスがダウンしたときに再起動する方法が提供されています。これにより、サービスがダウンしたときに、Windows が自動的にそれを再起動します。それを設定するには、Windows サービスのダッシュボードへ行き、Pandora FMS エージェントのプロパティをクリックします。"Recovery" タブにて、デフォルトの設定を変更します。

Service control restart.png

これにより、サービスがダウンしたときに自動的に再起動するようになります。しかし、それは 1日に 1回のみ実行されます。何度も再起動することによりシステムの負荷を上昇させたり、何度もダウンすることによりより大きな問題を引き起こすことを防ぐためです。もちろん、Pandora FMS は頻繁にダウンするようなことはありません。いずれにしても、Pandora FMS サービスがダウンした時にシステムによって起動させるように調整することができます。

Pandora FMS Windows エージェントの設定

すべての設定は、pandora_agent.conf にて行います。このファイルは、前述したディレクティブと値の組みになっています。以下にサンプルを示します。

# General Parameters
# ==================
 
server_ip mypandoraserver.host.com
server_path /var/spool/pandora/data_in
temporal "c:\windows\temp"
interval 300
agent_name myagent_name
 
# Module Definition
# =================
 
# Counting OpenedConnections (check language string)
module_begin
module_name OpenNetConnections
module_type generic_data
module_exec netstat -na | grep ESTAB | wc -l | tr -d " "
module_description Conexiones abiertas (interval 2)
module_interval 2
module_end
 
# Is Eventlog service running ?
module_begin
module_name ServicioReg
module_type generic_proc
module_service Eventlog
module_description Servicio Registro de sucesos
module_end
 
# Is lsass.exe process alive ?
module_begin
module_name Proc_lsass
module_type generic_proc
module_proc lsass.exe
module_description LSASS.exe process.
module_end
 
# Received packets.
# Please notice that "Paquetes recibidos" string must be replaced by
# the correct string in your Windows system language.
module_begin
module_name ReceivedPackets
module_type generic_data
module_exec netstat -s | grep  "Paquetes recibidos  " |  tr -d " " | cut -f 2 -d "=" | tr -d "\n"
module_description Conexiones abiertas (interval 2)
module_end
 
# Free space on disk
module_begin
module_name FreeDiskC
module_type generic_data
module_freepercentdisk C:
module_description Free space on drive C:
module_end

module_begin
module_name FreeMemory
module_type generic_data
module_freepercentmemory
module_description Amount of free memory.
module_end
VB スクリプトによるエージェントの機能拡張

Windows エージェントには、プラグインがありません。しかし、VB スクリプトをベースにした外部スクリプトの実行は可能です。以下に、システムの CPU 全体の使用量を得る VB スクリプトコードを示します。

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
   & "{impersonationLevel=impersonate}!\\" _
   & strComputer & "\root\cimv2")

   Set object1 = objWMIService.Get( _
   "Win32_PerfRawData_PerfOS_Processor.Name='_Total'") 
   N1 = object1.PercentProcessorTime
   D1 = object1.TimeStamp_Sys100NS
   Wscript.Sleep(1000)
   set object2 = objWMIService.Get( _
   "Win32_PerfRawData_PerfOS_Processor.Name='_Total'")
   N2 = object2.PercentProcessorTime
   D2 = object2.TimeStamp_Sys100NS

   ' CounterType - PERF_100NSEC_TIMER_INV
   ' Formula - (1- ((N2 - N1) / (D2 - D1))) x 100
   PercentProcessorTime = (1 - ((N2 - N1)/(D2-D1)))*100

   Wscript.Echo PercentProcessorTime

このファイルは "CPUTotal.vbs" として、c:\program files\pandora_agent\util に置きます。

次のように、新たにモジュールタイプ module_exec を作成します。

cscript.exe /NoLogo c:\program_filespandora_agent\util\CPUTotal.vbs

これで、VB 外部スクリプトにより、収集した CPU の全使用量を返すモジュールの準備が完了です。 VB スクリプトを通して取得できるデータはたくさんあります。VB スクリプトに関しては、Microsoft が MSDN にすばらしいオンラインドキュメント[3]を用意していますので、確認してみてください。

SYSTEM 以外のユーザでの Pandora FMS エージェントの実行

Windows エージェントで、異なるユーザで実行するように設定することができます。この設定を行うには、異なるユーザでのサービス起動の設定を行い、ユーザに特別な権限を設定する必要があります。実行ユーザは、"administrators" グループに属している必要があります。

WMI コンソールでは、"administrators" グループの全ユーザは全権限が付与されています。

これは、ユーザと ROOT スペースの WMI 設定の例です。デフォルトでは、root の権限を (階層的に) 持ちます。


Service image001.png



Service image002.png


これに関する、Microsoft のリンクは、[4] [5] にあります。

ソフトウエアエージェントの自動アップグレード

Pandora FMS 3.2 には、"ファイルコレクション" と呼ばれる新しい機能があります。ファイルコレクションは、いくつかの章で説明していますが、コンソールから動作中の Pandora FMS ソフトウエアエージェントへファイル (バイナリ、スクリプト、データ) をコピーするための、ファイル配布システムです。

この仕組と特別なツールを使って、ソフトウエアエージェントの自動アップグレードを行うことができます。 これは、次のように動作します。

1. エージェントが、例えば次のようなファイルコレクションの incoming ディレクトリに新たなバイナリを受信します。

c:\program files\pandora_agent\collections\fc_1\pandoraAgent.exe

2. エージェントでは、pandora_update ツールを実行するための特別なモジュールを利用します。このツールは、ファイルコレクションハンドル (または短い名前) を一つパラメータとして受け取り (この例では fc_1) 、pandoraagent.exe (unix では pandora_agent) というファイルをチェックします。また、実行中の pandora_agent とファイルコレクションで提供されたバイナリファイルの両方のサイズおよび内容を (HASH を使って) チェックします。

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 agent 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 agent and update itself
module_end

注意: pandora_update コマンドの 2つ目のパラメータは、Pandora FMS のインストールパスです。このパラメータは、デフォルトのパスとは異なる場所に Pandora FMS をインストールした場合にのみ必要です。

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 agent and update itself
module_end

以前のバージョンから 3.2 へのエージェントの自動アップグレード手順

まず最初に、Pandora FMS エージェントおよび pandora_update ツール (Windows では pandoraAgent.exe および pandora_update.exe、Unix では、pandora_update) から実行ファイルを取得します。

以下に手順を示します。

1. アップデートしたいシステムへファイルをコピーします。この機能は Pandora FMS バージョン 3.2 では提供されています (ファイルコレクション) が、バージョン 3.2 へのアップグレードなのでこの機能はありません。他の方法を使うことを想定します。

2. エージェントのリモート設定管理が有効になっており動作しているとします。この場合は便利です。いくつかのディレクトリを作成し、Pandora FMS エージェントの設定に新たなモジュールを設定します。

Windows 環境

システムパスが通っている場所もしくは、pandora の /util ディレクトリのいずれかのディレクトリに pandora_update をコピーします。

以下に Pandora FMS がインストールされていると仮定します。

C:\Archivos de programa\pandora_agent

pandora_update.exe を以下のディレクトリにコピーします。

C:\Archivos de programa\pandora_agent\util

そして、以下の 2つのディレクトリを作成します。

C:\Archivos de programa\pandora_agent\collections
C:\Archivos de programa\pandora_agent\collections\fc_1

このあと、新たなエージェントのバイナリファイルを最後に作成したディレクトリへコピーします。

C:\Archivos de programa\pandora_agent\collections\fc_1\PandoraAgent.exe

次のように、エージェントにモジュールを作成します。

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 agent and update itself
module_end

pandora_update 実行ファイルを使った、この特別なモジュールは、特別なツール (pandora_update) を実行します。これは、現在の実行ファイルと /collectgions/xxxx ディレクトリ内のファイルを比較します。ここで、xxxx は、モジュールへ渡されるパラメータです。この場所は、ファイルコレクションによって定義されるものと同等です。バージョン 3.2 以降では、エージェントの新たな .exe ファイルの配布はファイルコレクションを通して行われます。そして、この識別子は、どのファイルコレクションが実行ファイルであるかの場所を示すのに必要です。

UNIX 環境

Windows 環境と同じような方法で、Unix エージェントの実行ファイルおよび pandora_update をコピーします。もし、標準ではないインストール方法でパスを変更している場合は、どのファイルが編集されるかに十分注意してください。

pandora_update をエージェントの plugins ディレクトリにコピーします。

/etc/pandora/plugins/pandora_update

そして、/etc/pandora ディレクトリに、collection/fc_1 ディレクトリを作成します。

/etc/pandora/collections/
/etc/pandora/collections/fc_1

pandora_update の呼び出しは、プラグインのパスで実行します。この場合、標準の /etc/pandora/plugins/pandora_update です。

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 agent and update itself
module_end

注意: pandora_update および pandora_agent が、適切なパーミッションおよびオーナーになっていることを確認してください。実行パーミッションがあり、pandora_agent の実行ユーザと同じになっている必要があります.


Pandora FMS Drone エージェント

Drone エージェントとは ?

Pandora FMS Drone エージェントは、Pandora FMS ソフトウエアエージェントの一つの実行モードです。この実行モードは、Windows および Linux マシンでのみ動作します。

Pandora FMS Drone エージェントは、マシンへのアクセスが制限された複雑な環境を扱うために開発されました。Drone エージェントには、2つの主な機能があります。

  • プロキシモード
  • ブローカーモード

加えて、Drone エージェントとしての実行時も、通常の Pandora FMS ソフトウエアエージェントのすべての機能を利用でき、データを送ることができます。

Drone エージェントを使った Pandora FMS の構成を以下に示します。

Architecture il1.png

プロキシモード

プロキシモードは、通信が制限されているネットワークに対してとても便利です。このモードで動作しているエージェントでは Tentacle プロキシサーバが有効になり、それを通して他のエージェントが Pandora FMS サーバと通信することができます。

新たなバージョンの Tentacle は、プロキシ (HTTP接続) の利用をサポートしています。そのため、エージェントは途中の通常のプロキシを使って、サーバへ接続することができます。また、新たな Tentacle プロキシサーバを利用することもでき、そのプロキシサーバは、Pandora FMS とエージェント間の通信をとりまとめ、ファイル管理やポリシーによるモニタリングのためのリモート設定が可能です。Tentacle プロキシサーバの詳細はこちらにあります。

この機能により、プロキシのすべての機能を利用できますが、Pandora FMS ソフトウエアエージェントを通して設定管理を行います。このモードには、root では実行できないのと、UNIX エージェントで利用する場合はroot 以外のユーザでインストールしなければいけない(プロキシモードでエージェントを動かすユーザと同じユーザ)という制限事項があります。

Tentacle プロキシサーバを設定するための全パラメータは、エージェント設定ファイルに存在し、次のようなものです。

server_ip

Pandora FMS サーバの IP アドレスもしくはホスト名です。プロキシモードでは、このパラメータは 172.0.0.1、localhost、0.0.0.0 やそれに類するものは設定できないことに注意してください。

proxy_mode

プロキシモードのステータスを設定します。proxy_mode が 1 であれば、Drone エージェントのプロキシ機能が有効になります。proxy_mode が 0 であれば、この機能は無効になります。デフォルトでは無効です。

proxy_max_connection

プロキシの同時接続数です。デフォルトでは 10 接続が許可されています。

proxy_timeout

プロキシのタイムアウトです。デフォルトは 1秒です。

利用例

Pandora FMS サーバへの接続が 1つのみの場合

この状態は、Pandora FMS Drone エージェントにとって問題ではありません。プロキシモードを設定するために、server_ip に Pandora FMS の IP アドレスを設定し、proxy_mode パラメータを 1 に設定します。必要であれば接続数とタイムアウトパラメータを設定します。この設定で、エージェントと Tentacle プロキシサーバが起動し、そのマシンから Pandora FMS サーバへ接続ができます。

他のエージェントでは、server_ip パラメータを、プロキシモードで動作している Drone エージェントの IP アドレスに設定するだけです。エージェントは、Pandora FMS サーバへの接続に Drone エージェントを利用します。

2段プロキシ接続が必要な場合

Drone エージェントが他の Drone エージェントへ接続する必要がある場合でもとても簡単です。

2段プロキシを実現するには、Pandora FMS サーバへ接続できる Drone エージェントにて server_ip を Pandora FMS の IP アドレス、proxy_mode を 1 に設定します。その他パラメータは必要に応じて設定します。

2つ目の Drone エージェントの設定では、server_ip を 1つ目の Drone エージェントの IP アドレスに設定し、もちろんプロキシモードを有効にするために proxy_mode を 1 に設定します。

この設定で、2つ目の Drone エージェントに接続したエージェントが、Pandora FMS サーバへ 2つのプロキシを通してデータを送信できるようになります。

ブローカーモード

ブローカーモードは、サーバにインストールされた一つのソフトウエアエージェントから、異なるエージェントを "再生成" するために設計されています。ブローカーエージェントは、異なる設定で同一サーバに複数インストールされたエージェントのように、異なる処理を行います。それぞれの設定ファイルは独立しており、インベントリモジュールなど、それぞれ別のプラグインを持つことができます。もちろん、他のエージェントと同様に、リモートからの管理もできます。これにより、サーバやネットワークデバイスを完全にモニタリングできます。また、監視サーバから監視対象ルータに接続できないが、接続可能なホストにエージェントのインストールが可能といった場合に便利です。たとえば、一つのエージェントで 10台のルータを監視することができ、Pandora FMS コンソールには 11 のエージェント(10台のルータと 1台のホスト)として表示されます。

ブローカーエージェント自身の設定内では、broker_agent の記述は無視されることに注意してください。

pandora_agent.conf を次のように編集します。

broker_agent router_1
broker_agent router_2
broker_agent router_3

自動的に、'router_1.conf'、'router_2.conf' および 'router_3.conf' という新たなファイルが、"agent_name" の設定を除き、オリジナルの "pandora_agent.conf" ファイルのコピーにて作成されます。

異なる設定ファイルで 4つのエージェントが存在することになり、それぞれの設定ファイルに異なるモジュールを追加できるようになります。例えば、"router_1.conf" を編集し以下を追加します。

リモートチェック例

module_begin
module_name Check SSH Status
module_type generic_proc
module_tcpcheck 192.168.1.1
module_port 22
module_timeout 5
module_end

この機能は、バージョン 4.0 から実装されています。

XML ファイルからのエージェント・モジュールの自動作成 / 学習モード

Pandora FMS は、XML で情報を受け取り(データサーバ)、エージェントやモジュールの自動作成ができます。サーバの autocreate パラメータを無効にしていなければ、この動作は自動的に行われます。作成は、エージェントのデータが最初にサーバに届いたときだけ行われます。つまり、情報の作成は行えますが、以降に説明する例外を除いて XML を受け取るごとにエージェントやモジュールの情報の更新はできません。



Learning mode.png

この動作は、各エージェントで 学習モード を無効にすることにより無効化できます。この機能を無効化すると、新たなモジュールの情報を含む XML を受け取っても、新たなモジュールは作成されません。

自動無効化モード: バージョン 6.1 から、エージェントにはこの 3つ目のモードが存在します。エージェントとモジュールの作成では学習モードと全く同じで、XML が届くと初回であればエージェントが作成され、新しいモジュールがあればそれも自動的に追加されます。しかしながら、自動無効化モードのエージェントの全モジュールが不明状態になると、エージェントは自動的に無効化されます。エージェントからの通信が再開されると、再度有効化されます。

エージェント作成時に XML からロードされるデータ

エージェントのデータは次の通りです。

バージョン 4.x

  • エージェント名
  • IP アドレス
  • エージェントの説明
  • 親エージェント
  • タイムゾーンオフセット
  • グループ
  • OS
  • エージェント実行間隔
  • エージェントバージョン

バージョン 5.x

バージョン 4.x と同じ項目に加え、次の項目も含まれます。

  • カスタムフィールド
  • カスタム ID
  • URL アドレス

バージョン 6.1

  • エージェントモード: (Learning -デフォルト-、No-learn、Autodisable)

XML を受け取ったときに修正されるデータ (学習モード有効時)

  • エージェントの IP アドレス
  • 親エージェント (サーバ設定で定義されている場合、バージョン 4.x の親は常に更新されます。)
  • OSバージョン
  • エージェントバージョン
  • タイムゾーン
  • カスタムフィールド

Info.png

GIS データは、学習モードが有効であるか無効であるかに関わらず、常に更新されます。

 


学習モードが有効の場合、XML ファイルで受け取った新たなモジュールは、Pandora で作成されます。

作成時にモジュールに追加されるデータ

各モジュールで初回の XML 受信時に XML から読み込まれるデータは次の通りです。

バージョン 4.x

  • 名前
  • タイプ
  • 説明
  • フィルタの最大・最小値
  • 保存倍率
  • モジュール実行間隔
  • 障害の最大・最小値
  • 警告の最大・最小値
  • 無効化モジュール

バージョン 5.x

4.x と同じ項目に加え、次の項目が追加されます。

  • ユニット
  • モジュールグループ
  • カスタムID
  • 警告/障害の文字列
  • 障害の説明
  • 警告の説明
  • 不明の説明
  • タグ
  • 障害反転モード
  • 警告反転モード
  • 静観モード
  • 最小の連続抑制回数
  • アラートテンプレート (5.1SP4以降)

バージョン 6.x

  • Crontab

モジュールがすでに存在する場合に反映されるデータ

すでに存在するモジュールの情報を含む XML がデータサーバで処理される場合は、情報の一部が上書き更新されます。バージョン 5.x では、説明と拡張情報(次の説明を参照)のみが更新されます。

バージョン 4.x での動作は異なり、サーバは、説明、拡張情報、モジュールデータのみ更新します。

注意: GIS データは、エージェントで GIS の更新が無効になっていなければ常に更新されます。(これは、エージェントの GIS 設定で指定します)

拡張モジュール情報

この章は、拡張 / 開発環境のためのものです。(独自のアプリケーションや pandora エージェントとは別のソースを使って)カスタム XML を送信することができます。例えば、この XML には 2つの "カスタム" タグ (rack_number と severity) があります。


<module>
    <name><![CDATA[battery_level]]></name>
    <description><![CDATA[The actually device battery level]]></description>
    <type><![CDATA[generic_data]]></type>
    <data><![CDATA[61]]></data>
    <rack_number>2</rack_number>
    <severity>MAJOR</severity>
  </module>

これは、次のように表示されます。



Extended module xml.png

注意: このフィールドは、履歴が保存されるのではなく最後に受信した XML の値のみが保存されます。