Pandora: Documentation ja: Alerts

From Pandora FMS Wiki
Jump to: navigation, search

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

Contents

アラート

概要

アラートは、モジュールの値が変化したときに Pandora FMS が行う動作の定義です。このような動作は設定可能で、管理者へメールやSMS を送ったり、SNMP トラップの送信、システムログへのインシデントの記録などができます。アラートは、基本的に、モジュールを実行している Pandora FMS サーバが動作している OS 上で、アクションから起動させるスクリプトです。アラートには、個別のアラート、イベントアラート、SNMP トラップアラートの 3種類があります。この章では、全体および個別アラートにおけるアラートシステムについて説明します。

現在のアラートシステムの概要

Pandora FMS のアラート定義は複雑だと良く言われます。バージョン 2.0 以前は、アラートの設定は簡単でした。個々のアラートで状態を定義し、それぞれの場合においてアクションが実施されなかった時に何をするかを定義していました。これは "直感的" です (しかし、それぞれが閾値の設定を持っており、多くの人の頭痛の種になっていました)。シンプルではありますが、良くは無いのではないでしょうか。

一人のユーザ (たくさんのエージェントをインストールし、Pandora FMS を良く利用していました) が、2000 のモジュール全てに対して、アラートを 設定 しなくてはいけないという点でとても大変であるということを言及しました。この点とその他問題のために、我々はアラートシステムをモジュール化し、アラートが発生したときに実行するアクション (アラートアクション) および、アクションによって実行されるコマンド (アラートコマンド) から、アラートを発生させる定義 (アラートテンプレート) を分割するよう改変を行いました。モジュールとアラートテンプレートの組み合わせにより、アラートが発生します。

この方法で、"Host alive" というモジュールを持ち、"Host down" というアラートテンプレートが関連付けられた 1000 のシステムがあったとします。このとき、"Call to the operator" というアラートがデフォルトで実行されます。そして、オペレータへ通知する前に何回のアラート検知までを許容するか(何回目まではオペレータへ通知しないか)を変更したいと考えたとき、テンプレートの定義を変更するだけで実現できます。1000個のアラート設定を一つ一つ設定変更する必要はありません。

Pandora FMS で、何人かのユーザは、数十のマシンのみを管理していますが、数百を管理しているユーザもいます。また、数千ものシステムをモニタしているユーザもいます。我々は、Pandora FMS で、すべての種類の環境の管理を可能にしなければいけません。

アラートの仕組


Esquema-alert-structure.png


アラートは次の組み合わせです。

  • コマンド
  • アクション
  • テンプレート

コマンドは、アラートが発生したときに実行する操作を定義します。コマンドの例としては、ログへの書き込み、email または SMS の送信、スクリプトの実行などです。

アクションは、テンプレートと共にコマンドに関連付けられており、フィールド1、フィールド2、フィールド3の 3つのパラメータを使ってコマンドを実行するようにカスタマイズできます。これらのパラメータは、コマンド実行時の引数として渡すことができるため、コマンドの実行をカスタマイズできます。

テンプレートでは、アラートの発生条件、アクション、復旧通知といった一般的なパラメータを定義します。

  • 発生条件: アラートが発生する条件で、例えば、データが閾値を越えた場合や、状態が障害になった場合などです。
  • 実行アクション: アラートが発生した時に、実行するアクションの設定です。
  • 復旧通知: アラート発生後にシステムが復旧したときに実行するアクションの設定です。

アラートシステムの情報の流れ

アクションとテンプレートを定義するとき、フィールド1、フィールド2、フィールド3というフィールドがあります。これらはコマンド実行時にパラメータとして渡されます。このパラメータの値は、テンプレートからアクションへ、そしてコマンドへ引き渡されます。テンプレートからアクションへの引き渡しは、アクションでフィールドが定義されていない場合のみ実行されます。アクションで定義されている場合はそれが使われます。


Esquema-parameters-carrying.png


以下は、どのようにテンプレートの値がアクションの値で上書きされるかの例です。


Alertas esquema6.png


例として、次のフィールド設定で、アラート発生時にメールを送信するテンプレートを作成します。

  • テンプレート:
    • フィールド1: [email protected]
    • フィールド2: [Alert] The alert was fired
    • フィールド3: The alert was fired!!! SOS!!!
  • アクション:
    • フィールド1: [email protected]
    • フィールド2:
    • フィールド3:

コマンドに渡される値は次のようになります。

  • コマンド:
    • フィールド1: [email protected]
    • フィールド2: [Alert] The alert was fired
    • フィールド3: The alert was fired!!! SOS!!!

アラートコマンド (Pandora FMS 5.0 以上)

異常値を検知した場合、Pandora FMS はさまざまな動作ができます。syslog への記録、メールや SMS の送信、また、Pandora FMS サーバ上でのスクリプトの実行が可能です。

これらの Pandora の設定は、アラートメニューのコマンドオプションから行えます。



Susi2.png



ここでは、アラートのコマンドを編集したり追加したりできます。

アラートのコマンド作成

新たなアラートコマンドは、システム管理メニュー内のアラート管理のコマンドにて、作成(Create) ボタンをクリックすることにより作成できます。

作成(Create) をクリックすると次のような画面が表示されます。



Susi3 5.png



以下に、各フィールドについて説明します。

名前

コマンドの名前です。解りやすく簡潔に書きます。例えば、「ログ出力」など。

コマンド

モジュールの値が異常値となった場合に実行するコマンドです。パラメータを引き渡すためのマクロを利用することができます。次のマクロが利用できます。

  • _field1_: ユーザ名、電話番号、ファイル、メールアドレス等に割り当てられます。
  • _field2_: メールの Subject など、短いイベントの説明に割り当てられます。
  • _field3_: 説明フィールドです。メールや SMS では、本文の文字列となります。
  • _agent_: エージェント名です。
  • _agentcustomfield_n_: エージェントのカスタムフィールド番号 n です。(例: _agentcustomfield_9_)
  • _agentcustomid_: エージェントのカスタム ID です。
  • _agentdescription_: アラートが発生したエージェントの説明です。
  • _agentgroup_: エージェントグループ名。
  • _agentos_: エージェントの OS。
  • _address_: アラートが発生したエージェントのアドレス。
  • _timestamp_: 日時です。アラートが実行される日時に置き換えられます。
  • _timezone_: _timestamp_ で使用されるタイムゾーン名 (>=5.0SP1)。
  • _data_: アラートのきっかけとなったデータの値です。
  • _alert_description_: アラートの説明。
  • _alert_threshold_: アラートの閾値。
  • _alert_times_fired_: アラートが発生した回数。
  • _module_: モジュール名
  • _modulecustomid_: モジュールのカスタム ID です。
  • _modulegroup_: モジュールグループ名。
  • _moduledescription_: アラートが発生したモジュールの説明。
  • _alert_name_: アラート名。
  • _alert_priority_: アラートの優先度の数値。
  • _event_text_severity_: (イベントアラートのみ) アラートを発報するテキストイベントの 'maintenance', 'informational', 'normal', 'minor', 'warning', 'major' 'critical' といった重要度です。
  • _event_id_: (イベントアラートのみ) Pandora FMS イベントの数値 ID です。外部プロセスとのデータの関連付けに便利です。あとから API/CLI を使ってイベントを承諾できます。
  • _event_description_: (イベントアラートのみ) Pandora FMS イベントの説明 です。
  • _id_agent_: エージェントID。Pandora FMS コンソールへの直接のリンクを生成するのに便利です。
  • _id_alert_: アラートの(ユニークな)数値ID。他の外部ソフトウエアに情報を渡すのに利用します。
  • _policy_: モジュールが属するポリシー名。(適用されている場合)
  • _interval_: モジュールの実行間隔。
  • _plugin_param1_ - _plugin_param10_ (11以上もあり得る): 対応するプラグインパラメータの値
  • _plugin_param1_desc_ - _plugin_param10_desc_ (11以上もあり得る): 対応するプラグインパラメータの説明
  • _groupcontact_: グループコンタクト情報。グループ作成時に設定されます。
  • _groupcustomid_: グループのカスタム ID です。
  • _groupother_: グループに関するその他情報。グループ作成時に設定されます。
  • _email_tag_: モジュールタグに関連付けられた Email。
  • _phone_tag_: モジュールタグに関連付けられた電話番号。
  • _alert_critical_instructions_: モジュールの障害状態時における手順。
  • _alert_warning_instructions_: モジュールの警告状態時における手順。
  • _alert_unknown_instructions_: モジュールの不明状態時における手順。

アラートのコマンドを作成する時、データサーバやネットワークサーバのように、エージェントのモジュールを処理する Pandora FMS サーバでコマンドが実行されることに注意してください。アラートはまた、Pandora FMS サーバを実行しているユーザ権限で実行されます。コマンドを定義したときに、コマンドの実行が成功し、期待した結果が返るかどうか(メール送信、ログファイルへの記録等)、コマンドラインからテストすることをお勧めします。

説明

アラートのコマンドの詳細説明です。

フィールドととり得る値の説明

各フィールド:

  • 説明(Description): コマンドアクションの設定フォーム内のテキストボックスの近くのタブです。
  • とり得る値(Possible values): フィールドがとり得る値です。

フィールドを設定したら、テキストボックスの代わりに選択になりす。それぞれの値(送信される値)に対して、選択にはタグ(表示される値)が必要です。

サポートしている書式は次の通りです。

value1,tag1;value2,tag2;value3,tag3

例:

1,Number one;2,Number two;3,Number three;4,Number four



Possible values 1.png





Possible values 2.png



Info.png

バージョン 6.0 から、コマンドフィールドの値として _html_editor_ というトークンが指定されていると、アラートアクションの作成や編集のコマンドフィールドに HTML エディタを表示することができます。

 




Susi4 5.png



設定したら、作成(Create) ボタンをクリックします。

アラートのコマンド編集

アラート(Alerts) -> コマンド(Commands) をクリックすることにより、新たに作成されたアラートコマンドを編集できます。



Susi5.jpg



アラートのコマンドを編集するには、コマンド名をクリックします。



Susi6 5.png



選択したコマンドの編集を行ったら、更新(Update) ボタンをクリックします。

eMail, Internal Audit および、Pandora FMS Event は変更できません。

アラートコマンドの削除

コマンドを削除するには、右側のグレーのゴミ箱をクリックします。



Susi7.png



eMailInternal Audit および、Pandora FMS Event は削除できません。

定義済のコマンド

アラートを実行するシステムの内部コマンドとして、いくつか定義済のコマンドがあります。開発チームでは、RedHat Linux、CentOS、Debian および Ubuntu Server にてこれらのコマンドのテストをしています。

eMail

Pandora FMS サーバからメールを送信します。Perl の sendmail モジュールを利用します。Pandora FMS では、アラートの実行に特定のツールが必要です。libmail-sendmail-perl xprobe2 パッケージがインストールされている必要があります。

バージョン 6.0 からは、このアクションはよりビジュアルなテンプレートが作成できる HTML でメール送信します。これはメールの受信者が(画像、フォントなど)のテンプレートで使用されるリソースにアクセスできることを考慮する必要があります。

Internal audit

これは、Pandora FMS の内部監査システムに記録を残す内部アラートです。これは、Pandora FMS のデータベースに保存され、コンソールのイベントビューワから確認することができます。

Pandora FMS Event

Pandora FMS のカスタムイベントを生成し記録します。

LogFile

情報テキストファイル (file.log) へ出力します。指定したフォーマットでファイルに書き出したい場合にこのコマンドを利用します。Pandora FMS は、ファイルローテートはしないことおよび、アラートを実行した Pandora FMS サーバプロセスの権限にてファイルに書き込める必要がある点に注意してください。

SNMP Trap

SNMP トラップを送信します。

Syslog

アラートを syslog に飛ばします。システムの logger コマンドを利用します。

Sound Alert

アラートが発生した時に音を鳴らします。

Jabber Alert

事前に定義したサーバのチャットルームに jabber アラートを送信します(先に .sendxmpprc ファイルを編集します)。フィールド3 をテキストメッセージに利用し、フィールド1 が発信者の名前、フィールド2 がチャットルーム名です。

SMS Text

指定した携帯に SMS を送信します。ただし、これが実行できるようにアラートを事前に定義しておく必要があります。また、Pandora FMS から SMS を送信できるように設定したゲートウェイが必要です。また、SMS を送信するのみ Gnokii をインストールすることも可能です。この場合、ノキアの携帯を USB ケーブルで接続して直接送信できます。具体的方法は別途説明しています。

Validate Event

モジュールに関連するすべてのイベントを承諾します。エージェント名とモジュール名を指定します。

コマンドの例

Jabber IM のアラート

Jabber サーバを通して、アラートを送信するように Pandora FMS を設定するのはとても簡単です。Jabber はログだけでなく、アラートをリアルタイムで送ることができるシステムで、アラートを受け取る人のグループを設定することができます。

Jabber サービスのインストール

クライアント側の手順:

  1. Gaim (Pidgin) などの Jabber クライアントをインストールします。
  2. アカウントを登録します。(Pigdin にて、"Accounts" タブをクリックしてアカウントを設定します。)
  3. 登録したアカウントでログインします。

Pandora FMS サーバ側の手順:

  1. sendxmpp をインストールします。このツールにより、Pandora FMS サーバが Jabber サービスにメッセージを送信できるようになります。
  2. /home 以下に、.sendxmpprc ファイルを作成します。
  3. ファイルを編集し、次のような設定を行います。
  [email protected] password
  1. ファイルのパーミッションを変更します。
  chmod 0600 .sendxmpprc

以上で、次のようにコマンドラインからメッセージを送信できるようになります。

  $ echo "Hello" | sendxmpp -s pandora [email protected] 

Pandora FMS のウェブコンソールにアラートを登録するには、新たなコマンドを追加し、その設定を行います。次のようにすると良いでしょう。

  • フィールド1: Jabber アドレス
  • フィールド2: テキスト

コマンドを次のように定義します。

  echo _field2_ | sendxmpp -s pandora _field1_
Jabber 利用例

チャットルームへメッセージを送信します:

  $ echo "Dinner Time" | sendxmpp -r TheCook --chatroom [email protected]

ログの出力を Jabber に送信します:

  $ tail -f /var/log/syslog | sendxmpp -i [email protected]

注意: 公開 Jabber サーバに負荷をかけたり、利用を拒否されないように気をつけてください。

expect によるメール送信

メールの送信をするのに、SMTP 認証を利用する必要がある場合があります。このとき、sendmail の認証設定を行う代わりに EXPECT スクリプトを使う方が簡単で融通がきくかもしれません。ここでは、Exchange サーバを使ってメールを送信する場合に、EXPECT を使う例を示します。

/root/smtp というファイルを以下の内容で作成します。

#!/usr/bin/expect -f
set arg1 [lindex $argv 0] 
set arg2 [lindex $argv 1]
set arg3 [lindex $argv 2]
set timeout 1 
spawn telnet myserver.com 25 
expect "220"
send "ehlo mymachine.mydomain.com\r"
expect "250"
send "AUTH login\r"
expect "334"
send "2342348werhkwjernsdf78sdf3w4rwe32wer=\r"
expect "334"
send "YRejewrhneruT==\r"
expect "235"
send "MAIL FROM: [email protected]\r"
expect "Sender OK"
send "RCPT TO: $arg1\r"
expect "250"
send "data\r"
expect "354"
send "Subject: $arg2\r"
send "$arg3 \r\r"
send ".\r"
expect "delivery"
send "quit"
quit

ファイルのパーミッションに実行権限を付けます。

chmod 700 /root/smtp 

テストを行う前に、/usr/bin/expect が正しく動作するかどうか確認してください。

Pandora FMS でこれを利用するには、新たなコマンドを作成する (もしくは既存のメール送信コマンドを編集する) 必要があります。Pandora FMS アラートコマンドの "コマンド(Command)" フィールドで次の設定をします。

/root/smtp _field1_ _field2_ _field3_

もちろん、スクリプトはシステムのどこにあっても構いません。アラートスクリプトは、データを処理するサーバから起動されるということだけ認識しておいてください。ネットワークデータであれば、ネットワークサーバです。XML ファイルを通してエージェントから送られてくるデータであれば、データサーバです。

もし、複数のサーバがある場合は、アラートを実行したい全 Pandora FMS サーバに対して、同じスクリプトを同じ場所に同じユーザおよび同じパーミッションでコピーする必要があります。

コマンドは、Pandora FMS サーバのプロセスを実行しているユーザの権限にて実行されます。

Gnokii による SMS 送信

Nokia の携帯電話もしくは、Gnokii に対応した携帯電話 (対応携帯かどうかは Gnokii プロジェクトページを確認してください) を利用するために、Gnokii を利用できます。また、Pandora FMS サーバから SMS アラートを送信するには、携帯電話と接続するための USB ケーブルが必要です。

Gnokii は、多くの Nokia 携帯 (やいくつかのその他携帯) をサポートしています。

Gnokii を使って、コマンドラインから SMS を送信することができます。この方法は、インターネットを通して SMS を送信するゲートウェイを利用する必要がなく、専用の高い GSM のハードウエアを使う必要もなく、Pandora FMS サーバから直接 SMS を送信するのにとても簡単な方法です (ネットワークがダウンしていても使えます)。

Gnokii の他には、Gammu というプロジェクトもあります。

Gnokii で SMS を送信するコマンドラインの例を示します。

echo "PANDORA: Server XXXX is down at XXXXX" | gnokii --sendsms 555123123

Gnokii は、画像を添付しての SMS 送信はできません。しかしメッセージを受信したときに参照する URL を次のように送信することができます。

echo "Image capture sample" | gnokii --sendsms 555123123 -w http://artica.homelinux.com/capture.jpg

画像の URL を送信したり、携帯からコンソールへアクセスしたり分析データにアクセスするような URL を送信することができます。

開発チームでは、インターネット接続が出来ない状態での Nokia 6030 携帯から SMS の送信をテストしています。Nokia 6030 携帯では、gnokiirc ファイルの module 6510 の定義を利用します。SMS の送信には約 4秒かかります。

より強力な送信を行える Gammu をインストールすることもできます。

別システム (UNIX) でのリモートコマンド実行

時々、他のシステムでコマンドを実行したい場合があります。その場合は、ssh コマンドを利用します。コマンドを実行するシステムは UNIX システムで、ssh デーモンがインストールされ、起動されている必要があります。

コマンドを実行するマシンにアクセスしたときに、パスワード入力を求められるのを避けるには、リモートでコマンドを実行する Pandora サーバ側の公開鍵を、コマンドを実行するシステムに先にコピーしておく必要があります。

準備が完了したら、次のようにコマンドを設定します。

ssh [email protected] [_field1_]

_field1_ は変数です。好きなようにコマンドを設定できます。

アラートアクション (5.0 を含む Pandora FMS 全バージョン)

アクションは、コマンド (前章にて説明) に、フィールド1、フィールド2 およびフィールド3 をリンクさせた、アラートのコンポーネントです。これらアクションは、データの状態により実行するアクションとして、アラートテンプレートにて利用します。

アクションの作成

アラート(Alerts) -> アクション(Action) および 作成(Create) をクリックすることにより新たなアクションを作成します。



Accion1.jpg



作成(Create) をクリックすると、次のような画面が表示されます。



Accion2.jpg



次に、各フィールドへ入力します。

  • 名前(Name): アクションの名前です。
  • コマンド(Command): アラートが発生したときに実行されるコマンドをこのフィールドで定義します。Pandora にあらかじめ定義されているコマンド以外も選択できます。
  • フィールド 1(Field 1): フィールド 1 の値を定義します。必要に応じてコマンドで利用されます。
  • フィールド 2(Field 2): フィールド 2 の値を定義します。必要に応じてコマンドで利用されます。
  • フィールド 3(Field 3): フィールド 3 の値を定義します。必要に応じてコマンドで利用されます。
  • 実行されるコマンドのプレビュー(Command Preview): このフィールドは編集できません。システムで実行されるコマンドが自動的に表示されます。

フィールドの入力が完了したら、作成(Create) ボタンをクリックします。



Boton1.jpg



システム管理メニューの アラート管理 -> アクション では、すでに作成済みのアクションを編集することも可能です。

アクションの編集



Caca1.png



アクションを編集するには、アクション名をクリックします。



Sugus.png



編集が完了したら、"更新(Update)" ボタンをクリックします。

アクションの削除

アクションを削除するには、アクションの右にある赤い "x" 印をクリックします。



Sipo.jpg



アラートテンプレート

テンプレートは、パラメータを定義した複数のアラートをまとめたものです。エージェントのモジュールに、しきい値超過時等に処理を実行するようなアラートを複数適用する場合に利用します。テンプレートにより、管理者はエージェントへのアラート適用を簡単にできるようになります。

テンプレートの作成

新たなテンプレートを作成するには、システム管理メニューの アラート管理 -> テンプレート で、作成(Create) ボタンをクリックします。
Pandora 6.0: アラート(Alerts) -> テンプレート(Templates) および '作成(Create)' ボタンをクリックすることにより新たなテンプレートを作成します。


Planti.jpg


作成(Create) ボタンをクリックすると、次のような画面が表示されます。


Sabo.jpg


各フィールドに入力します。

  • 名前(Name): テンプレートの名前です。
  • 説明(Description): テンプレートの説明を入力します。他のテンプレートと区別するのに便利です。
  • 優先度(Priority): アラートの情報を設定します。アラートを検索する時に便利です。次の優先度を選択できます。
    • メンテナンス(Maintenance)
    • 情報(Informational)
    • 正常(Normal)
    • 警告(Warning)
    • 障害(Critical)
  • 条件種類(Condition Type): モジュールの値がどのような状態の時にアラートとするかを定義します。選択した種類によって、追加の設定があります。以下に説明します。
  • 正規表現(Regular Expression): 正規表現が使われます。モジュールの値が正規表現にマッチした場合にアラートが発生します。


Regular.jpg


正規表現を選択すると、それにマッチした場合かどうかを選択するチェックボックスが現れます。チェックした場合は、値が正規表現にマッチした場合にアラートが発生します。チェックしない場合は、値が正規表現にマッチしない場合にアラートが発生します。

  • 最大および最小(Max and Min): 最大値と最小値が使われます。


Maximo.jpg


これを選択すると、値がマッチした場合かどうかを選択するチェックボックスが現れます。チェックした場合は、値が最大と最小の範囲の場合にアラートが発生します。チェックしない場合は、値が最大と最小の範囲から外れた場合にアラートが発生します。

  • 最大(Max): 最大値が使われます。モジュールの値が指定した値より大きい場合にアラートが発生します。


Minimo.jpg


  • 最小(Min): 最小値が使われます。モジュールの値が指定した値より小さい場合にアラートが発生します。


Minimo1.jpg


  • 同じ値(Equal to): 同じ値が利用されます。モジュールの値が指定した値と同じになった場合にアラートが発生します。数値および文字列 (例: "OSPF enable" など) を指定できます。


Equal.jpg


  • 異なる値(Not Equal to): 異なる値が利用されます。モジュールの値が指定した値と異なる場合にアラートが発生します。数値および文字列 (例: "OSPF enable" など) を指定できます。


Notequal.jpg


  • 警告状態(Warning Status): モジュールの状態が利用されます。モジュールが警告状態の場合にアラートが発生します。


Estupido.jpg


  • 障害状態(Critical Status): モジュールの状態が利用されます。モジュールが障害状態の場合にアラートが発生します。


Critical.jpg


フィールドの入力が完了したら、"次(Next)" ボタンをクリックします。次のような画面が表示されます。


Pincha.png


次に、詳細のフィールドの設定を行います。

曜日(Days of Week)

アラートを発生させる曜日を設定します。

特別日一覧を利用する(Use special days list)

特別日(祝日および出勤日)一覧を使うかどうかを設定します。

開始時間(Time From)

アラートを発生させる開始時間を設定します。

終了時間(Time To)

アラートを発生させる終了時間を設定します。

再通知間隔(Time Threshold)

アラートの発生条件が継続している場合に、アラートを再通知する間隔を設定します。これを設定したあとに正常値に戻りリカバーした場合は、この設定に関わらずリカバーが通知されます。

最小アラート数(Min number of alerts)

アラートを発生させるまでに、モジュールが何回異常値になることを許容するかを設定します(常に、モジュールの連続抑制回数に定義された数字になってからカウントされます)。デフォルトは 0 で、最初に状態が変化した時にアラートが発生することを意味します。これは、誤検知による通知をフィルターする機能として利用できます。

アラートが継続していない場合カウンタをリセットする(Reset counter when alert is not continuously) (>=6.1)

再通知間隔以内であっても、アラート状態が継続していない場合は、最小アラート数のカウンタをリセットしたくない場合に有効化します。

例えば、最小アラート数を 1に設定し、このオプションをチェックしない場合は、次のように 2回目の障害でアラート通知されます。

OK -> NG -> OK -> OK -> NG(このタイミングでアラート通知) ->....

それに対して、このオプションをチェックすると、つぎのようにアラート通知されます。

OK -> NG -> OK -> OK -> NG -> NG(このタイミングでアラート通知) ->....

最大アラート数(Max number of alerts)

連続で送信する最大のアラート数を設定します。

フィールド 1 (Field 1)

"_field1_" の値を設定します。以降で説明するマクロで利用できます。

フィールド 2 (Field 2)

"_field2_" の値を設定します。

フィールド 3 (Field 3)

"_field3_" の値を設定します。

通常のアクション(Default Action)

ここでは、デフォルトのアクションテンプレートを設定します。テンプレートがモジュールに割り当てられたときにデフォルトで設定されるアクションになります。何も設定しないか、もしくは 1つだけ設定することができます。デフォルトには複数のアクションは設定できません。



Combo.jpg

Create template step3.jpg



次の画面では以下の設定を行います。

復旧アラート (Alert Recovery)

復旧アラートを有効にするかどうかを設定します。復旧アラートを有効にすると、モジュールの値が正常に戻った時に、アラートで設定したフィールド1 と、以下のフィールド2および3 を使って、復旧のアクションが実行されます。

フィールド 2 (Field 2)

復旧アラートの "_field2_" の値を設定します。

フィールド 3 (Field 3)

復旧アラートの "_field3_" の値を設定します。

設定を完了したら、終了(Finish) ボタンをクリックします。

フィールド 1 から 10 までに設定可能なマクロ

(アラートテンプレート、コマンド、アクションにおける) フィールド1、2、3 の全てのフィールドで、次のマクロを使うことができます。これらの "ワード" は、アラートが発生した時点でのエージェントの値に置き換えられます。

  • _field1_: ユーザ定義フィールド1
  • _field2_: ユーザ定義フィールド2
  • _field3_: ユーザ定義フィールド3
  • _field4_: ユーザ定義フィールド4
  • _field5_: ユーザ定義フィールド5
  • _field6_: ユーザ定義フィールド6
  • _field7_: ユーザ定義フィールド7
  • _field8_: ユーザ定義フィールド8
  • _field9_: ユーザ定義フィールド9
  • _field10_: ユーザ定義フィールド10
  • _agent_: アラートを発報したエージェント名
  • _agentcustomfield_n_: エージェントカスタムフィールド番号 n (例: _agentcustomfield_9_)
  • _agentcustomid_: エージェントカスタムID
  • _agentdescription_: アラートを発報したエージェントの説明
  • _agentgroup_: エージェントのグループ名
  • _agentstatus_: エージェントの現在の状態
  • _agentos_: エージェントの OS
  • _address_: アラートを発報したエージェントのアドレス
  • _timestamp_: アラートを発報した時間 (yy-mm-dd hh:mm:ss)
  • _timezone_: 監視サーバのタイムゾーン名 (>=5.0SP1).
  • _data_: アラートを発報するきっかけとなったモジュールのデータ
  • _alert_description_: アラートの説明
  • _alert_threshold_: アラートの閾値
  • _alert_times_fired_: アラートが発報された回数
  • _module_: モジュール名
  • _modulecustomid_: モジュールカスタムID
  • _modulegroup_: モジュールのグループ名
  • _moduledescription_: アラートを発報したモジュールの説明
  • _modulestatus_: モジュールの状態
  • _alert_name_: アラートの名前
  • _alert_priority_: アラートの数値での優先度
  • _alert_text_severity_: テキストでのアラートの重要度 (Maintenance, Informational, Normal Minor, Warning, Major, Critical).
  • _event_text_severity_: (イベントアラートのみ) (アラートを発報した)テキストイベントの重要度(Maintenance, Informational, Normal Minor, Warning, Major, Critical)
  • _event_id_: (イベントアラートのみ) アラートを発報lしたイベントのID
  • _event_description_: (イベントアラートのみ) アラートを発報lしたイベントの説明
  • _id_agent_: エージェントのID。Pandora FMS コンソールへの直接のリンクを生成するのに便利です。
  • _id_group_: エージェントグループのID。 (>=5.1SP4)
  • _id_alert_: アラートのユニークな数値ID。他のソフトウエアとの連携に使います。
  • _policy_: モジュールが属するポリシーの名前
  • _interval_: モジュール実行間隔
  • _target_ip_: モジュールの対象 IP アドレス
  • _target_port_: モジュールのターゲットポート番号
  • _plugin_parameters_: モジュールプラグインパラメータ
  • _groupcontact_: グループ連絡先情報。グループを作成したときに設定されます。
  • _groupcustomid_: グループカスタムID
  • _groupother_: グループに関する他の情報。グループを作成したときに設定されます。
  • _name_tag_: モジュールに関連付けられたタグの名前
  • _email_tag_: モジュールタグに関連付けられたEmail
  • _phone_tag_: モジュールタグに関連付けられた電話番号
  • _moduletags_: モジュールタグに関連付けられたURL
  • _alert_critical_instructions_: モジュールが障害状態の場合の手順
  • _alert_warning_instructions_: モジュールが警告状態の場合の手順
  • _alert_unknown_instructions_: モジュールが不明状態の場合の手順
  • _modulegraph_nh_: (>=6.0) (eMail コマンドを使うアラートのみ) n で示す期間の base64 でエンコードされたモジュールグラフを返します。(例: _modulegraph_24h_) サーバとコンソールの API の設定が正しくできている必要があります。この設定は、サーバの設定ファイルで行います。

マクロと _field*_ を置き換えるコマンド =

コマンド、アクション、そしてテンプレートとは何かの説明の後に、おそらく、フィールド1、フィールド2、フィールド3には何を定義すれば良いか、どんな物なのか、という疑問が沸いていることでしょう。

アラートが発生すると、フィールド* の値はアクションからコマンド及び、テンプレートからコマンドに渡されます。もし、アクションの設定で _field1_ に何らかの値が設定されている場合は、テンプレートの設定はコマンドに渡されず、テンプレートの設定は無視されます。コマンドの引数に _field1_ を設定しない場合は、アクションやテンプレートでのフィールド1の値は無視され、アクションでもテンプレートでも定義できません。コマンドの引数に _field1_ を設定すると、アクションやテンプレートで設定した値に置き換えられます。

アクションでも同様の動作になります。ただし、より細かな動作をします。このフィールドが空の場合、アラート画面のものがコマンドに渡されます。フィールドに何らかの設定を行っている場合は、設定された値が利用され、テンプレートでの設定は無視されます。

これにより、同じ固定パラメータをコマンドやアクションに与えることが出来たりと、柔軟性を常に実現しています。

マクロを使ったアラートの設定例

次のようなフォーマットでログファイルに記録したいとします。

2009-12-24 00:12:00 pandora [CRITICAL] Agent <agent_name> Data <module_data> Module <module_name> in CRITICAL status

コマンド設定

echo _timestamp_ pandora _field2_ >> _field1_

アクション設定

フィールド1 = /var/log/pandora/pandora_alert.log
フィールド2 = <空白>
フィールド3 = <空白>

テンプレート設定

フィールド1 = <空白>
フィールド2 = [CRITICAL] Agent _agent_ Data _data_ Module _module_ in CRITICAL status
フィールド3 = <空白>

復旧通知:

フィールド2 = [RECOVERED] [CRITICAL] Agent _agent_ Data _data_ Module _module_ in CRITICAL status
フィールド3 = <空白>

これにより、アラートが発生するとログに次の行が出力されます。

2009-10-13 13:37:00 pandora [CRITICAL] Agent raz0r Data 0.00 Module Host Alive in CRITICAL status

復旧時には、次の行が出力されます。

2009-10-13 13:41:55 pandora [RECOVERED] [CRITICAL] Agent raz0r Data 1.00 Module Host Alive in CRITICAL status

テンプレートの編集

システム管理メニューの アラート管理 -> テンプレートにて、作成済のテンプレートを編集することもできます。
Pandora 6.0: 'アラート(Alerts)' および 'テンプレート(Templates)' のメニューをクリックすることにより作成したテンプレートの編集ができます。



Plantilla.jpg



テンプレートを編集するには、テンプレート名をクリックします。

テンプレートの削除

テンプレートを削除するには、右側の赤い×印のアイコンをクリックします。



Cruz.jpg



アラートテンプレートのモジュールへの割当

これまでに、Pandora FMS がしきい値超過を検出した場合に利用する、コマンドおよびアクションを定義しました。これらのテンプレートを通して、値がしきい値を越えた場合に Pandora FMS がどう動くかが定義されます。この章では、Pandora エージェントやエージェントのモジュールでのテンプレートとアクションの関係を説明します。この操作は、データがしきい値を越えた場合に Pandora FMS にどのような動作をさせるかを定義するための最後の操作です。

アラートは、アラート管理もしくはエージェント管理のサブメニューの 2つの方法で割り当てが可能です。両方のメニューはシステム管理メニュー内にありますが、ポリシー管理のサブメニュー (ポリシーの章参照) からもいけます。

アラートサブメニューでのアラート管理

アラートサブメニューでのアラート割当

モジュールへのアラートの割り当ては、システム管理メニューのアラート管理にて必要なフィールドへ入力を行い、"追加(Add)" ボタンをクリックすることにより行います。



Pinar.jpg



入力フィールドは次の通りです。

  • グループ(Group): エージェントが属するグループを選択します。
  • エージェント(Agent): アラートを割り当てるエージェント名を入力します。
  • モジュール(Module): アラートを発生させるモジュールを選択します。
  • テンプレート(Template): 割り当てたいアラートテンプレートを選択します。
  • アクション(Actions):テンプレートで定義済のアクションを選択します。あとから複数のアクションを設定することもできます。
  • 閾値(Threshold): アラート発生回数に関係なく、'action_threshold' で指定した秒数内は、一回のみアラートアクションが実行されます。

アラートサブメニューでのアラート設定

アラートを作成すると、テンプレートが持っているアクションのみ編集することができます。

アクションの右側にあるグレーのごみ箱アイコンをクリックすることにより、選択したアラートを削除することもできます。また、"追加(Add)" ボタンをクリックすることにより新たに追加することもできます。



Modifica.jpg



アラートサブメニューでのアラート無効化

作成されたアラートに対して光っている(黄色)電球アイコンをクリックすると、そのアラートを無効化することができます。



Desha.jpg



有効なアラートは黄色の電球アイコン、無効なアラートは青の電球アイコンで表されます。

アラートサブメニューでのアラート削除

アラートの右にある赤い×印のアイコンをクリックすることにより、アラートを削除することができます。



Filter.jpg



エージェント管理メニューでのアラート管理

エージェント管理メニューでのアラート割当

アラートを追加する別の方法としてエージェント管理から実施することもできます。システム管理メニューのエージェント管理をクリックします。すべてのエージェントが表示されます。



Tarantu.jpg



エージェントを選択し、アラートアイコンをクリックします。



Vicho.jpg



次に、入力フィールドへいきます。

  • モジュール(Module): アラートを発生させるモジュールを指定します。
  • テンプレート(Template): アラート設定したいテンプレートを選択します。
  • アクション(Actions): テンプレートで定義されているアクションを選択します。のちほど複数のアクションも選択できます。
  • 閾値(Threshold): アラートアクションは、何件アラートが発生したかに関わらずaction_threshold に指定した秒間は 1回しか実行されません。

エージェント管理メニューでのアラート編集

アラートを作成すると、テンプレートが持っているアクションのみ編集することができます。

アクションの右側にあるグレーのごみ箱アイコンをクリックすることにより、選択したアラートを削除することもできます。また、"追加(Add)" ボタンをクリックすることにより新たに追加することもできます。



Gusano.jpg



エージェント管理メニューでのアラート無効化

作成されたアラートに対して光っている(黄色)電球アイコンをクリックすると、そのアラートを無効化することができます。



Cuca.jpg



有効なアラートは黄色の電球アイコン、無効なアラートは青の電球アイコンで表されます。

エージェント管理メニューでのアラート削除

アラートの右にある赤い×印のアイコンをクリックすることにより、アラートを削除することができます。



Adorno.jpg



アラートの作成

ここで、上記のような例を仮定すると、まずは数値データのモジュールを一つモニタします。以下の例では、system CPU 使用率をモニタするモジュールをとりあげます。温度を返す温度センサーなどでも良いです。まず最初に、モジュールがデータを正しく受け取っているかを見てみましょう。


Qgcpu1.png

このスクリーンショットでは、sys_cpu というモジュールがあり、現在の値が 7 であるということが解ります。この例では、この値が 20以上になったらアラートを上げたいと考えます。そのためには、20以上の値になったら、障害状態になるようにモジュールを設定します。設定するには、スパナアイコンをクリックします。


Qgcpu2.png


以下の画面の赤で囲っている部分の値を設定します。


Qgcpu3.png

設定を反映させます。これで、CPU モジュールの値が 20以上になるとステータスが障害状態になり、次のように赤い表示になります。


Qgcpu4.png

以上で、どのような時が正常 (正常で緑表示) で、どのような時が異常 (障害で赤表示) かをシステムが認識するようになりました。次のすべきは、モジュールが障害状態になったときにメール通知する設定です。そのためには、Pandora FMS アラートシステムを利用します。

この設定をするには、まずは、必要なコマンド (メールを送る) が一つあるということを認識する必要があります。この例では、Pandora FMS にあらかじめ定義されているメール送信コマンドを利用するので簡単です。

アクションの設定

まずは、"Send an email to the operator" というアクションを作成する必要があります。
新たなアクションを作成するには、以下の画面のようにシステム管理メニューから、アラート管理 -> アクションの順にクリックします。
Pandora 6.0: 以下の画面のように、'アラート(Alerts)' -> 'アクション(Actions)' をクリックし、新たなアクションを作成するボタンをクリックします。


Qgcpu5.png

このアクションでは、eMail というメールを送信するコマンドを使います。これはとても簡単で、一つのフィールド (フィールド 1) だけ設定すれば良く、他の 2つの設定は不要です。フィールド1、2、3 は何かというのは、Pandora FMS のアラートシステムの中で最もわかりにくい部分の一つです。

これらのフィールドは、アラートテンプレートの情報をコマンド設定へ "渡す" ために利用されます。また、そこから、実際に実行されるコマンドに渡されます。つまり、テンプレートとコマンド設定の両方から、異なる情報を実行されるコマンドに与えることができます。この場合、コマンドに対してフィールド 1のみを指定し、フィールド 2 と 3 は設定していません。

フィールド 1 にはオペレータのメールアドレスを設定します。この例では、"[email protected]" 宛にメールを送ります。

テンプレートの設定 (アラートテンプレート)

次に、後から使えるように可能な限り一般的な内容で、アラートテンプレートを作成する必要があります。これは、"モジュールが障害状態であることを認識" し、デフォルトとして、オペレータにメールを送信します。
そのためには、システム管理メニューから、「アラート管理」->「テンプレート」をクリックして、「作成」ボタンをクリックします。
Pandora 6.0: 以下に示すように、'アラート(Alerts)' -> 'テンプレート(Templates)' をクリックし、新たなアラートテンプレートを作成するボタンをクリックします。


Qgcpu6.png

"条件種別(Condition)" フィールドにて状態を定義します。この場合、"障害状態(Critical stateus)" を選択しています。これにより、モジュールが障害状態になった時にアラートが通知されます。ここで、"cpu sys" モジュールに対して、20以上の値になった場合に障害状態となるように設定しています。

ここで、優先度(priority)に "障害(Critical)" を設定していますが、これはアラートの優先度になります。モジュールの "障害" 状態の設定ではありません。アラートの危険度は、イベント参照など他の画面でのちほど見ることができます。

ステップ2 へ進むために、"次(next)" ボタンをクリックします。


Qgcpu7.png

ステップ2 では、アラートテンプレートのアラート通知に関する全ての設定を行います。最初のいくつかはとても簡単で、アラートを発生させる日や時間を定義します。

最も重要なパラメータは次の通りです。

  • 再通知間隔(Time threshhold): デフォルトでは 1日です。例では 1日ですが、5分に設定すると、モジュールが常にダウン状態の場合、5分間隔でアラート通知されます。もし、1日 (24時間) に設定すると、ダウンしたときに、まず一度アラート通知します。モジュールが復旧し、再びダウンすると、再びアラート通知します。しかし、二度目のダウンからダウン状態が続いても、24時間以内であればアラートを通知しません。
  • 最小アラート数(Min. Number of alerts): Pandora FMS がアラートテンプレートで定義したアクションを実行する状態変化 (この例では、モジュールの障害状態) の回数です。この設定により、正常状態と障害状態を繰り返す大量のアラートが発生を避けることができます。ここに 1を設定すると、モジュールの一度の障害状態は無視します。0 を設定すると、モジュールの初回の障害状態でアラート通知がされます。
  • 最大アラート数(Max. Number of alerts): 1 は、アクションを一度だけ実行することを意味します。もし、ここに 10 を設定すると、アクションを 10回実行します。この設定により、アラートの実行回数を制限することができます。

再び、"フィールド1(field1)"、"フィールド2(field2)"、"フィールド3(field3)" があります。フィールド1(field1)には何も書かれていませんが、これによりアクションを設定したときに定義したものが使われます。フィールド2(field2)およびフィールド3(field3)は、メール送信のアクションで件名と本文として使われます。ここで、フィールド1(field1)は、受信アドレス (カンマ区切りで複数書けます) の定義をすることもできます。テンプレートは、マクロを使って件名と本文を定義します。この例では、次のようなメールが送信されます。("Farscape" というエージェントのモジュールを想定)

To: [email protected]
Subject: [PANDORA] Farscape cpu_user is in CRITICAL status with value 20
Texto email:
This is an automated alert generated by Pandora FMS
Please contact your Pandora FMS for more information. *DO NOT* reply this email.

下に、前もって定義したデフォルトのアクションが表示されます。このテンプレートを利用する全てのアラートは、設定を変更しなければデフォルトでこの定義済アクションを利用します。

次のステップ3では、障害状態が復旧したときの通知に関する設定をみていきます。


Qgcpu8.png

ほとんど一緒ですが、フィールド1(field1)がありません。なぜなら、(アラート通知時に) 実行されたアクションと同じだからです。この例では、cpu-syst モジュールが復旧したということを示す件名のメールを送るだけです。

復旧アラートはオプションです。復旧アラートのデータはここのフィールド(フィールド2 および 3)で定義されるという点が重要です。アクションのフィールド設定内容は "無視され、上書き" され、ここの設定が参照されます。唯一変更できないのは、フィールド1(field1)です。

アラートのモジュールへの関連付け

以上で、必要な設定が完了しました。あとは、アラートテンプレートをモジュールに関連づけるだけです。そのためには、エージェントのモジュールのアラートタブへいきます。


Qgcpu9.png

設定は簡単です。この画面ショットでは、 "Last_Backup_Unixtime" というモジュールに対して、事前に定義した "Module critical" というアラートが設定されています。加えて、ここでは下の画面を操作して、モジュール "cpu-sys" と、アラートテンプレート "Module critical" を関連づけようとしています。デフォルトで、このテンプレートで設定した "Sancho Lerena へメールを送信する" というアクションが表示されています。

アラートスケーリング

アラートスケーリングは、状態の重要度に応じて異なるアクションを実行する仕組みです。 状態の重要度は、しきい値超過が何回発生したかで考えます。例えば、システム CPU 使用率が 90% の時にアラートが発生するとした場合、アラート発生時は常に email 送信をしますが、5回以上発生した場合は SMS を送信するといった設定が可能です。

このアラートスケーリングは、複数のアクションを設定し、開始(From) および 終了(To) を定義することにより実現します。



Ciempies.jpg



アラートが復旧した時は、開始(From), 終了(To) の設定にマッチするものだけでなく、すべてのアクションが再度実行されます。

スタンバイアラート

アラートは、有効化、無効化、スタンバイにできます。無効化とスタンバイには次の違いがあります。無効化ではアラートは実行されずアラート表示にも表示されません。スタンバイでは動作しアラート表示に表示されますが、表示のみで割り当てられたアクションは実行せずイベントは生成しません。

スタンバイアラートは、何が発生したかを確認するのに便利です。ただし、通知 / アクションの実行が無効化されます。

関連障害検知抑制

関連障害検知抑制は、ある範囲のエージェントへの通信が切れた場合に大量のアラートが発生するのを避けるための Pandora FMS の機能です。ルータやスイッチ等の中間のデバイスがダウンすると、その先の全てのデバイスに対して Pandora FMS との通信ができなくなるような場合を考えます。おそらく、デバイスは正しく動作していますが、Pandora FMS は ping で疎通確認がとれないため、ダウンと認識します。



Recursive cascade protection ilustration.png



関連障害検知抑制は、エージェントの設定で有効にできます。"関連障害検知抑制" のチェックボックスをチェックすると有効になり、チェックを外すと無効になります。



Down1.jpg



関連障害検知抑制が有効に設定されると、親の単一もしくは複数の障害状態がチェックされます。この方法により、親で障害アラートが発生していたら、その子となるエージェントのアラートは発生しません。親エージェントに障害状態のモジュールが無かったり、障害状態より下の状態であれば、アラートは発生します。条件をすべて満たす場合にアラートが発生するということを理解してください。

関連障害検知抑制を正しく動作させるためには、すべての親エージェントでデバイスがダウンしたら障害状態になるようなアラートを設定するのが便利です。合わせて、親エージェントの他のアラートでは、障害状態を定義すべきではありません。

次のようなモニタ設定があったとします。

- ルータ: ICMP のチェックと、標準の OID を使って ATM ポートの状態を確認する SNMP チェックを設定されています。また、上流のプロバイダのルータとの遅延を見ています。

- ウェブサーバ: Pandora FMS エージェントでの、CPU 使用率、メモリ使用量、apache のプロセスチェックといった、内部チェックが設定されています。また、4ステップの HTTP チェックの遅延をチェックしています。

- データベースサーバ: Pandora FMS エージェントでの、CPU 使用率、メモリ使用量、データベースのプロセスチェックといった、内部チェックが設定されています。また、いくつかのデータベース整合性チェックがあります。さらに、プラグインにてリモートから、ログイン、クエリの実行を行い終了、応答タイミングをみるチェックをしています。

ここで、いくつかの単一アラートを定義します。

-ルータ: ICMP チェック / 障害状態 -> メール送信アクション SNMP チェック / 障害状態 -> メール送信アクション 遅延 > 200ms / 警告状態 -> アクション無し、関連付けのみ

-ウェブサーバ

CPU / 警告状態 -> アクション無し、関連付けのみ メモリ / 警告状態 -> アクション無し、関連付けのみ プロセス / 障害状態 -> メール送信アクション HTTP 遅延 / 警告状態 -> アクション無し、関連付けのみ

-データベースサーバ

CPU / 警告状態 -> アクション無し、関連付けのみ メモリ / 警告状態 -> アクション無し、関連付けのみ プロセス / 障害状態 -> メール送信アクション SQL 遅延 / 警告状態 > メール送信アクション

データベースおよびウェブサーバの親としてルータを設定します。関連障害検知抑制を両方のエージェント (データベースおよびウェブ) で有効にします。

ここで、データベースに関連付けアラートを割り当てます。

ルータ ICMP チェックが正常

かつ(AND)

ルータ SNMP チェックが正常

かつ(AND)

ウェブサーバプロセスが正常

かつ(AND)

データベースサーバプロセスが障害状態

であれば、

次のメールを送信: "Service DOWN: Database Failure"

ここで、さらにデータベースに関連付けアラートを割り当てます。

ルータ ICMP チェックが正常

かつ(AND)

ルータ SNMP チェックが正常

かつ(AND)

ウェブサーバプロセスが障害状態

かつ(AND)

データベースサーバプロセスが正常

であれば、

次のメールを送信: "Service DOWN: WebServer Failure"

さらに、次のようなアラートを定義します。

ルータ ICMP チェックが正常

かつ(AND) ルータ SNMP チェックが正常 かつ(AND)

ウェブサーバの HTTP 遅延が正常 かつ(AND)

データベースサーバの SQL の遅延が発生

かつ(AND)

データベースサーバの CPU 使用率が正常

かつ(AND)

データベースサーバのメモリ使用量が超過

であれば、

次のメールを送信: Database is getting exhausted. Please check it ASAP.

特別日一覧 (バージョン <= 6.0)

バージョン 5.0 の Pandora FMS から、特別日機能があります。これにより、アラートテンプレートに休日や特別な出勤日を定義することができます。特別日一覧に定義された日は、選択した曜日と同じ日として扱われます。

特別日の作成

新たに特別日を作成するには、システム管理メニューのアラート管理から、特別日一覧(Special days list) の作成(Create)ボタンをクリックします。
Pandora 6.0: 新たに特別日を作成するには、'アラート(Alerts)' -> '特別日一覧(List of Special Days List)' をクリックし、'作成(Create)' ボタンをクリックします。



Creating special day1.png



作成(Create)をクリックすると、次のような画面が表示されます。



Creating special day2.png



次に、フィールドに以下に示す情報を入力します。

  • 日付: 特別日の日付です。日付のフォーマットは YYYY-MM-DD です。毎年同じ日を指定したい場合は、YYYY に '*' を設定することができます。
  • 同一曜日(Same day of the week) 曜日を選択します。上記の日付がここで指定した曜日と同様に扱われます。
  • 説明(Description): 特別日の説明です。

例えば、2012年5月3日が休日だとします。2012-05-03 を日曜と定義すると、その日は日曜日と同様に扱われます。

入力が完了したら、作成(Create)ボタンをクリックします。

注意: 特別日一覧を有効にするには、アラートテンプレート(ステップ2)で "特別日一覧を利用する" をチェックする必要があります。

特別日の編集

特別日は、システム管理メニューのアラート管理内の特別日一覧から編集することができます。



Editing special day1.png



特別日編集するには、日付をクリックします。



Editing special day2.png



修正が完了したら、"更新(Update)" ボタンをクリックします。

特別日の削除

特別日を削除するには、右側のゴミ箱アイコンをクリックします。



Deleting special day.png



特別日一覧 (バージョン >= 6.1)

バージョン 6.1 の Pandora FMS から、カレンダー形式での特別日機能があります。これにより、アラートテンプレートに休日や特別な出勤日を定義することができます。特別日一覧に定義された日は、選択した曜日と同じ日として扱われます。

特別日の作成

新たに特別日を作成するには、'アラート(Alerts)' -> '特別日一覧(List of special days)' をクリックし、カレンダー内のプラスボタンまたは、画面下の '作成(Create)' ボタンをクリックします。



Creating special day61-1.png



プラスまたは作成(Create)をクリックすると、次のような画面が表示されます。



Creating special day2.png



次に、フィールドに以下に示す情報を入力します。

  • 日付: 特別日の日付です。日付のフォーマットは YYYY-MM-DD です。毎年同じ日を指定したい場合は、YYYY に '*' を設定することができます。
  • グループ: 特別日を反映させるグループを選択します。
  • 同一曜日(Same day of the week) 曜日を選択します。上記の日付がここで指定した曜日と同様に扱われます。
  • 説明(Description): 特別日の説明です。

例えば、2012年5月3日が休日だとします。2012-05-03 を日曜と定義すると、その日は日曜日と同様に扱われます。

入力が完了したら、作成(Create)ボタンをクリックします。

注意: 特別日一覧を有効にするには、アラートテンプレート(ステップ2)で "特別日一覧を利用する" をチェックする必要があります。

iCalendar(.ics) ファイルを使った特別日の一括作成

特別日は、iCalendar(.ics)ファイルを使っても作成できます。iCalendar ファイルは、画面の上部からアップロードできます。 アップロードが完了すると、当月以降のデータが登録されます。



Creating special day ics.png



特別日の編集

特別日は、アラート管理の特別日一覧から編集することができます。



Editing special day61-1.png



特別日を編集するには、該当の日の右にあるスパナアイコンをクリックします。



Editing special day2.png



修正が完了したら、"更新(Update)" ボタンをクリックします。

特別日の削除

特別日を削除するには、該当日の右側のゴミ箱アイコンをクリックします。



Deleting special day61.png



アラートの例

アラートの SMS 送信

ここでの例として、良く質問される SMS 送信について見てみます。

これを行うために、我々のウェブサイト (http://pandorafms.org) のモジュールライブラリで公開されているスクリプトを利用します。このスクリプトは、商用の HTTP ゲートウェイ (アカウントを作成する必要があり、費用がかかります) を用いて SMS を送信するために、商用の Perl の API を利用します。これはとても簡単で、一度アカウントを作成しスクリプトを設定 (ユーザ名とパスワードのみ) したら、準備は完了です。

SMS アカウントが設定されており、Pandora FMS サーバにスクリプトがインストールされていると仮定します。ここで、次のコマンドを実行します。

> sendsms 

You must give three parameters:  <source> <destination> 'Full message'
Don't forget to send the message with single quotes (), and put the destination number 
with international code (346276223 for spanish phones, for example)

最初のステップとして、アラートコマンドに定義するための、SMS の sendsms コマンドが使えるようになっているかを確認します。Pandora FMS の管理インタフェースでコマンドを定義します。



Smsalert sample1.png



このコマンドで、"346666666666" は発信者番号です。単語(アルファベット)を使うこともできますが、いくつかの携帯キャリアではアルファベットの ID は扱えません。フィールド1およびフィールド2は、コマンドの動作に使われます。携帯電話の写真では、"Aeryn" という文字列を SMS で受信しています。アラートアクションで定義される、フィールド1は送信先の電話番号、フィールド2は送信文字列です。

ここで、アラートアクションを定義します。フィールド1およびフィールド2に設定した値を使って、コマンドを実行します。特殊なケースとして、テンプレートは、SMS にデータを送りません。すべての情報はアラートのアクションで定義されます。



Smsalert sample3.png



フィールド1が自分の電話番号 (実際に夜中にかけて欲しくないので隠してますが...) です。フィールド2が SMS で送信する文字列になります。アラートが発生した時に、実行時に置き換えられるいくつかのマクロを使っています。

最後のステップとして、アラートテンプレートを作成します。(定義済であれば省略できます) モジュールが障害状態になった時に実行する、とても簡単なアラートテンプレートを作成したいと思います。アラートは、最大で1日に1回発生します。ただし、復旧したときも通知されます。



Smsalert sample5.png





Smsalert sample6.png



ここで、モジュールにアラートテンプレートとアクションを割り当てます。



Smsalert sample4.png



アラートが発生するためには、モジュールが障害状態でなければなりません。次の画面ショットでは、障害状態のしきい値を確認できるモジュール設定を表示しています。しきい値が設定されていなければ、アラートは発生しません。なぜなら、障害状態をトリガにしているからです。この例では、しきい値を 5に設定しています。値が 6 になったとき、モジュールが障害状態となり、アラートが発生します。



Smsalert sample7.png



以上で準備完了です。強制的にアラートを実行してテストすることができます。強制実行するには、エージェントのアラートビューへ行き、緑の丸いアイコンをクリックします。



Smsalert sample8.png



以下の写真に示したように、SMS が携帯電話に届きます。アラートを強制実行したために、データは "N/A" になっており、実際のデータは受信していません。



Smsalert sample9.png



メール送信以外のアラートコマンドの利用

メール送信は、Pandora FMS の内部コマンドであり、フィールド1、フィールド2、フィールド3 はそれぞれメール送信先、件名、本文として使うように定義されており変更することはできません。では、別のアクションを自分で定義したい時はどうすれば良いでしょうか。

この場合は、新たなコマンドの定義画面へ行き、自分で定義を行います。検知したアラートそれぞれのログファイルを作成したいとします。ログファイルのフォーマットは次のようなものを想定します。

DATE_HOUR - NAME_AGENT -NAME_MODULE -VALUE- PROBLEM DESCRIPTION

ここで、VALUE は、そのときのモジュールの値です。コマンドを呼び出すアクションごとに、ログファイルができます。アクションでは、説明と、どのイベントをファイルに書くかを定義します。

そのためには、次のようにコマンドの作成へ行きます。


Qgcpu11.png


そして、アクションを定義します。


Qgcpu12.png

作成したログを見ると次のようになっています。

2010-05-25 18:17:10 - farscape - cpu_user - 23.00 - Custom log alert #1

アラートは、"farscape" エージェントの "cpu_sys" モジュールで、18:17:10 に発生したこと、また、現在のデータは "23.00" であり、アクションで設定した説明が含まれていることがわかります。

コマンド実行時に、フィールドやその他がどのように引き渡されて実行されたかは簡単にはわかりません。それを確認する簡単な方法は、pandora サーバの設定ファイル /etc/pandora/pandora_server.conf にて、デバッグトレースを有効にする (verbose 10) ことです。 そして、Pandora FMS サーバがどのようにコマンドを実行しているか確認するには、サーバを再起動し (/etc/init.d/pandora_server restart)、/var/log/pandora/pandora_server.log に出力されている定義されたアラートの実行ログを探します。

マクロを使ったアラートの例

1行ごとに次のフォーマットでログを生成したいと仮定します。

2009-12-24 00:12:00 pandora [CRITICAL] Agent <agent_name> Data <module_data> Module <module_name> in CRITICAL status

コマンド設定

echo _timestamp_ pandora _field2_ >> _field1_

アクション設定

Field1 = /var/log/pandora/pandora_alert.log
Field2 = <En blanco>
Field3 = <En blanco>

テンプレート設定

Field1 = <En blanco>
Field2 = [CRITICAL] Agent _agent_ Data _data_ Module _module_ in CRITICAL status
Field3 = <En blanco>

復旧セクション:

Field2 = [RECOVERED] [CRITICAL] Agent _agent_ Data _data_ Module _module_ in CRITICAL status
Field3 = <En blanco>

アラートを実行すると、次の行がログに追加されます。

2009-10-13 13:37:00 pandora [CRITICAL] Agent raz0r Data 0.00 Module Host Alive in CRITICAL status

復旧したときは、次の行が追加されます。

2009-10-13 13:41:55 pandora [RECOVERED] [CRITICAL] Agent raz0r Data 1.00 Module Host Alive in CRITICAL status

カスタムモジュールアラートマクロ

任意の数のカスタムモジュールマクロをエージェントモジュールに追加することができます。



Add module macros.png


マクロには次の特徴があります:

  • モジュール設定のセクションで定義します
  • 情報はデータベースに保存します
  • 次のような任意の名前を持てます: _pepito_
  • エージェント設定ファイル(pandora_agent.conf)には影響しません
  • アラートシステムでのみ利用できます
  • ローカルコンポーネントには追加できません
  • ポリシー内のモジュールに追加できます

これらのマクロは、モジュールマクロセクションを展開することにより追加できます。



Module macros.png


マクロの値はアラート定義のフィールドの一部として利用できます。 例:

xxx へのメール送信アクションにマクロを含め、アラートが発生したときにメール送信するには、e-mail 本文のフィールドに次のような設定をする必要があります。



Campos alertas.png


定義済のカスタムマクロ無しでモジュールが追加された場合は、アラートが発生したときに e-mail の本文内のマクロの値は表示されません。