目次

アラートシステム

Pandora FMS におけるアラート設定

概要

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

アラートにはいくつかのタイプがあります。

  • 単一アラート
  • イベントアラート
  • SNMPトラップアラート

この章では、最初の 2つのタイプにおけるアラートシステムについて説明します。

アラートシステムの概要

Pandora FMS では、アラートはいくつかの発報条件、そのアラートのために選択されたアクション、そして、設定されたアクションの実行を担当する Pandora FMS サーバにおけるいくつかのコマンド実行の定義によって動作します。

一般的なアラートシステムは、各モジュールに一つのアラートを関連付けます。アラートは、一つ以上のアクションを実行できます。

ビデオチュートリアル «Do not panic: we talk about alert systems» も参照ください。

アラートの仕組

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

  • コマンド: アラートが発生したときに Pandora FMS サーバが実行するコマンド定義します。コマンドの例としては、ログへの書き込み、email または SMS の送信、スクリプトの実行などです。
  • アクション: これは「どのように行われるか」を定義するものであり、コマンドの引数のカスタマイズです。モジュール名やエージェントなどの特定のパラメータをコマンドに渡して、コマンド実行をカスタマイズすることができます。
  • テンプレート: これは、「いつ実行されるのか」を指定し、アクションを引き起こす条件を定義します。 たとえば、モジュールが障害状態になった場合などです。

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

アクションとテンプレートを定義するとき、'フィールド1'、'フィールド2'、'フィールド3' といったアラートをカスタマイズするために使う一般的なフィールドがあります。

これらのフィールドは、テンプレート → アクション → コマンド という情報の伝達の優先順位に従って適用され、最後にはコマンドの実行パラメータとして使われます。

次のステップの Fieldn フィールドに情報が定義されていないと、前のステップの情報が引き継がれます。 つまり、フィールドまたはパラメータが上書きされるというのは、アクションのフィールド設定はテンプレートのフィールド設定を上書きするということです。(たとえば、テンプレートに field1 が定義されていて、アクションも定義されている場合、アクションの field1 の設定が利用されます。)

次の図は、テンプレートからコマンドへのこのパラメータの受け渡しを示しています。

これは、テンプレートの値がアクションの値で上書きされる例です。

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

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

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

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

フィールド2 と フィールド3 については、テンプレートで定義された値が使われますが、フィールド1 の場合は、アクションで定義された値が使用されます。

アラートコマンド

概要

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

アラートのコマンド作成

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

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

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

コマンド アラートが発報したときに実行されるコマンドです。マクロを使用すると、アラートで設定されたパラメータを置き換えることができます。 使用できるマクロは、以降のマクロの章で詳しく説明します。

アラートのコマンドを作成するときは、これらのコマンドが Pandora FMS サーバによって実行されることを考慮する必要があります。アラートは、Pandora FMS サーバを実行するユーザの権限で実行されます。

コマンドを定義するときには、コマンドラインからコマンドの実行が成功し、期待した結果(電子メールの送信、ログファイルへのエントリの生成など)が得られることをテストしてください。

グループ

コマンドグループです。どのアラートのコマンドが関連付けられるかを定義します。ユーザが"すべて"グループに属してない場合は、アラートコマンドを作成するユーザが属するグループのみを割り当てることができます。

フィールドの説明(Field description) および フィールドの値(field values): カスタムフィールドごとに、以下を設定できます。

  • フィールドの説明(Field description): コマンドアクションの設定フォームのテキストボックスの横にあるラベル。
  • とり得る値(Possible values): そのフィールドがとり得る値のコレクション。 フィールドが設定されている場合(空ではない場合)、テキストボックスではなく選択コンボになります。 コンボには、可能な値ごとにタグ(表示オプション)と値(送信オプション)が必要です。 サポートされている構文は次のとおりです。
value1,tag1;value2,tag2;value3,tag3
  • 隠す(Hide): フィールドにパスワードなどを含める場合、このオプションでコンテンツをアスタリスクで隠すことができます。

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

すべてのパラメータを入力したら、作成(Create) ボタンをクリックします。

最初の4つの数字を選択できる単純なフィールド:

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

コマンド(command) フィールドを設定する必要があります。

アクション(action) へ行くと、次のような画面が見られます。

コマンドマクロ

コマンド設定で使用できるマクロは、この章の最後の マクロ一覧 にあります。

定義済のコマンド

Pandora FMS アラートシステムで利用できるようにあらかじめ定義されたコマンドがあります。

eMail

Pandora FMS サーバからメールを送信します。Perl の sendmail モジュールを利用します。メールは HTML 形式で送信されるため、視覚的に魅力的なテンプレートを作成できます。メールの受信者は、画像などテンプレートで使用されるリソースにアクセスできる必要があることに注意してください。

Internal audit

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

Pandora FMS Event

Pandora FMS イベントマネージャにカスタムイベントを生成します。

Pandora FMS Alertlog

/var/log/pandora/pandora_alert.log に、プレーンテキストのログファイルとしてアラートを出力します。

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

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

Remote agent control

このコマンドは、UDP サーバが有効になっているエージェントにコマンドを送信するために使用します。UDP サーバは、エージェント(Windows および UNIX)にエージェントの実行を “リフレッシュ” するように命令するために使用されます。つまり、エージェントにデータの実行と送信を強制します。

Generate Notification

このコマンドを使用すると、任意のユーザまたはグループに内部通知を送信できます。

アラートのコマンド編集

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

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

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

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

アラートコマンドの操作

削除(Delete): アラートを削除するには、アラートの右側にあるグレーのごみ箱アイコンをクリックします。

複製(Copy): アラートはコピーすることができます。フィールドやグループなどの詳細を変更することで、既存のコマンドと似たのコマンドを作成する場合に便利です。

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

コマンドの例

Jabber でのアラート送信

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 認証を利用する必要がある場合があります。Pandora FMS には、コンソールの一般設定 に通常のメール転送に必要なすべてのものがあり、メール転送システムを確認するためにテストメールを送信することもできます。 しかし、sendmail の認証設定を行う代わりに Expect スクリプトを使う方が簡単で融通がきくかもしれません。

Expect は、 telnet, ftp, passwd, fsck, rlogin, tip などのインタラクティブな操作が必要なアプリケーションを自動化するツールです。 Expect はそれらを簡単なものにし、同じアプリケーションをテストすることも役立ちます。 Expect は、他のツールでは通常不可能なほど困難なあらゆる種類のタスクを簡単にすることができます。 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 が正しく動作するかどうか確認してください。

#!/usr/bin/expect -f

spawn date
sleep 20
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秒かかります。

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

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

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

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

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

ssh [email protected] [_field1_]

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

アラートアクション

概要

アクションは、コマンド (前章にて説明) に、フィールド1、フィールド2 …、フィールド10 を関連付けた、アラートのコンポーネントです。

アクションは、どのように コマンドを起動するかを定義できます。

アクションの作成

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

accion1.jpg

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

accion2.jpg

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

名前(Name)

アクションの名前です。

グループ(Group)

アクショングループです。ユーザが"すべて"グループに属してない場合は、アクションを作成するユーザが属するグループのみを割り当てることができます。コマンドに 全て(All) 以外のグループが割り当てられている場合、コマンドに関連付けられたグループまたは 全て(All) グループのみをアクショングループとして設定できます。何らかの理由でこれが実行できない場合は、必要な権限を持つユーザによる修正を求める警告メッセージが表示されます。

コマンド(Command)

アラートが発生したときに実行されるコマンドをこのフィールドで定義します。Pandora にあらかじめ定義されているコマンド以外も選択できます。

しきい値(Threshold)

アクション実行の閾値です。

実行されるコマンドのプレビュー(Command Preview)

このフィールドは編集できません。システムで実行されるコマンドが自動的に表示されます。

フィールド 1-10(Field 1-10)

'_field1_' から '_field10_' までのマクロの値をここで定義します。必要に応じて、コマンドとともに使用することを目的としています。 これらのフィールドは、設定されている場合、テキストフィールドまたは選択メニューになります。

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

boton1.jpg

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

障害通知の “フィールド” に値を設定すると、デフォルトでは 異なる値を割り当てない限り、同じ値が復旧通知用にも使われます。

アクションマクロ

アクションで利用できるマクロは、この章の最後のマクロ一覧にあります。

アクションの編集

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

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

アクションの削除

アクションを削除するには、アクションの右にあるグレーのごみ箱アイコンをクリックします。

sipo.jpg

アラートテンプレート

概要

テンプレートは、アラート発報条件を定義します(いつ アクションを実行する必要があるか)。

アラートテンプレートはモジュールに関連付けられ、テンプレートの条件にマッチすると関連するアクションが実行されます。

Pandora FMS で多くの場合に利用される個々の汎用テンプレートグループを用意しておくことができます。

テンプレートの作成

アラートメニュー > テンプレート(Templates) へ行きます。作成ボタンをクリックすることにより、新たなテンプレートを作成することができます。

planti.jpg

ステップ 1: 一般

templform.jpg

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

  • 名前(Name): テンプレートの名前です。
  • グループ(Group): テンプレートに割り当てられるグループです。ユーザが"すべて"グループに属してない場合は、テンプレートを作成するユーザが属するグループのみを割り当てることができます。
  • 説明(Description): テンプレートの説明を入力します。他のテンプレートと区別するのに便利です。
  • 優先度(Priority): アラートに関する情報を提供するフィールドです。 アラートが発報されると、生成されたイベントはこの優先度を継承します。 アラートを検索する際のフィルタリングに役立ちます。

以下から優先順位を選択します。

  • メンテナンス(Maintenance)
  • 情報(Informational)
  • 正常(Normal)
  • 警告(Warning)
  • 障害(Critical)
ステップ 2: 状態

templform2.jpg

この設定でのフィールドは次のとおりです。

曜日(Days of Week)

アラートが発報される日です。アラートはチェックしたものに適用されます。

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

休日や特別は出勤日など、特別日一覧の利用有無を有効化・無効化します。

開始時間(Set initial time)

アラートアクションが実行される開始時間です。

終了時間(Set end time)

アラートアクションが実行される終了時間です。

再通知間隔(Time Threshold)

アラームカウンターをリセットする時間です。

これは、アラートがアラートの最大数を超えて再通知されないようにする時間間隔を定義します。

指定された間隔の後、カウンターはリセットされます。 アラートが復旧しない状態では、カウンターはリセットされません。正常な状態に戻ってアラートが復旧した場合は、すぐにカウンターはリセットされます。

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

テンプレートに設定された条件を何回(モジュールの連続抑制回数パラメータで定義された数から数えます)満たした場合にアラートを発報するかの定義です。デフォルトは '0' です。これは、条件を満たす値が最初に受信されたときにアラートを発報することを意味します。これはフィルターとして機能することを目的としており、誤検知を排除するのに役立ちます。

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

同じ時間間隔(再通知間隔)内で連続して送信できるアラートの最大数です。これは最大アラートカウンタ値です。 指定した数を超えるアラートは再通知間隔内では発報されません。

アラートが継続しない場合にカウンターをリセット(Reset counter for non-sustained alerts)

これを有効化すると、示された条件が連続して繰り返されない場合にアラートカウンターがリセットされます。これの有効化は、“最小アラート数” に示されている数が 0 より大きいことにも依存します。

“最小アラート数” フィールドの値が 2の場合、モジュールは “条件種別(Condition type)” で割り当てられた状態を 3回経てアラートを発報することを意味します。

これの動作には 2つのオプションがあります。

  • この設定を有効化しない、次のようなシーケンスの後にアラートが発生します。
 正常 -> 障害 -> 正常 -> 障害 -> 正常 -> 障害
  • この設定を有効化すると、障害の数は連続している必要があります。そうでない場合、カウンターはリセットされます。
 正常 -> 障害 -> 障害

イベントの無効化(Disable event)

これをチェックすると、アラートが発報されるときのイベントが生成されません。

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

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

条件種類(Condition Type)

モジュールの値がどのような状態の時にアラートとするかを定義します。選択した種類によって、追加の設定があります。以下に説明します。

  • 正規表現(Regular Expression): 正規表現が使用されます。 モジュールの値が特定の要件を満たしている場合、アラートが発報されます。

regular.jpg

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

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

'以下の値にマッチしたら、条件を満たしたと判断する(Trigger when matches the value)'をチェックすると、値が最大と最小の間の範囲に入った場合にアラートを発報します。チェックしないと、値が範囲に入っていないときにアラートを発報します。

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

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

  • 同じ値(Equal to): モジュールの値が指定した値と同じになった場合にアラートが発生します。これは、最大/最小と同じように、234 や 124.35 のように、数値データに対してのみ利用できます。

  • 異なる値(Not Equal to): 上記と同じですが条件が逆です。(論理的に NOT)

notequal.jpg

  • 警告状態(Warning Status)/障害状態(Critical)/不明状態(Unknown status): モジュールの状態が利用されます。モジュールが指定の状態の場合にアラートが発生します。

ステップ 3: 高度なフィールド

Click on the image to enlarge

復旧アラート (Alert Recovery)

復旧アラートを有効にするかどうかを設定します。復旧アラートが有効になっている場合、モジュールがテンプレートで示された条件を満たさなくなったときに、このカラムに定義されているフィールドで指定された引数で関連付けられたアクションが実行されます。

フィールド 1 (Field 1) ~ フィールド 10 (Field 10)

後述するマクロを利用できます。

適切なフィールドをすべて入力したら、'終了(Finish)' をクリックします。

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

Field1 、… Field10 のすべてで使用できるマクロ(アラートテンプレートだけでなく、コマンドおよびアクションも含む)は、この章の最後にあるマクロ一覧に示します。これらのマクロのキーワードは、実行される際に値に置き換えられます。値は、アラートが発報した時間、エージェントなどによって異なります。

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

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

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

テンプレートの編集

アラート(Alerts)テンプレート(Template) へ行き、テンプレート名をクリックして編集します。

plantilla.jpg

テンプレートの削除

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

cruz.jpg

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

アラートシステムに関する基本的な情報がわかったところで、アラートをモジュールへ割り当てる方法を示します。

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

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

アラート(Alerts) > アラート一覧(List of Alerts) へ行きます。その画面から、鉛筆アイコン(アラートビルダ)をクリックして新しいアラートを作成し、フィールドの設定をします。

pinar.jpg

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

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

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

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

modifica.jpg

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

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

desha.jpg

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

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

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

filter.jpg

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

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

エージェント管理画面から、関連するタブをクリックすることにより新たなアラートを追加することができます。

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

モジュール(Module)

エージェントモジュール一覧。

アクション(Actions)

アラートが発報されrたときに実行されるアクション。

テンプレートにデフォルトがある場合は、デフォルトのままにします。

テンプレート(Template)

アラート発報設定を含むテンプレート。

閾値(Threshold)

アラートが発報された回数に関係なく、アラートアクションは action_threshold

秒ごとに1回の実行になります。

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

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

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

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

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

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

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

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

一般的なアラートの概要

しきい値の設定

以下のスクリーンショットでは、障害と警告のしきい値を設定したい “CPU Load” というモジュールがあります。

cpu1.jpg

次のスクリーンショットに示すように、モジュール編集フォームにアクセスしてしきい値を設定します。

ローカルモジュールの変更は、Enterprise 版のコンソールからのみ可能であることに注意してください。それ以外の場合は、エージェント設定ファイルを直接編集する必要があります。

変更を承認して保存します。 モジュール 'CPU Load' の値が 70〜90 の場合、そのステータスは警告となり、91〜100 は障害となり以下のように赤色で表示されます。

cpu3.jpg

アクションの設定

次に、“オペレータに電子メールを送信する” アクションを作成する必要があります。 アラート > アクション のメニューへ行き、新しいアクションを作成するボタンをクリックします。

このアクションは、メールの宛先アドレス、サブジェクト、およびメッセージ本文に対応する 'Field1'、 'Field2'および 'Field3' という名前のフィールドとともに、'Send email' コマンドを利用します。

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

障害状態のモジュールに対して一般的なアラートテンプレートが作成され、デフォルトのアクションは電子メールでオペレータのグループに通知することです。“テンプレート” セクションからテンプレートを定義します。

ステップ 1:

ここで設定された優先度は、アラートが発報されたときに特定の色でイベントを表示するために使用されます。

ステップ2では、特定の発報条件を決定するパラメータ(モジュールに必要な状態やシステムが動作する時間範囲など)を指定します。

ステップ 2:

このステップで最も重要なパラメータは次の通りです。

  • 条件種別(Condition type: 状態変化、値の変化などによってアラートが発報されるかどうかを決定します。アラートが必要に応じて機能するために最も重要なパラメータです。 モジュールが障害状態になったときにアラートを発報するには、障害状態(Critical status) の条件を使用します。
  • 通常のアクション(Default action): アラートが発報されたときに実行されるデフォルトのアクションです。オプションです。
  • 再通知間隔(Time threshhold): デフォルトでは 1日です。例では 1日ですが、5分に設定すると、モジュールが常にダウン状態の場合、5分間隔でアラート通知されます。もし、1日 (24時間) に設定すると、ダウンしたときに、まず一度アラート通知します。モジュールが復旧し、再びダウンすると、再びアラート通知します。しかし、二度目のダウンからダウン状態が続いても、24時間以内であればアラートを通知しません。
  • 最小アラート数(Min. Number of alerts): Pandora FMS がアラートテンプレートで定義したアクションを実行する状態変化 (この例では、モジュールの障害状態) の回数です。この設定により、正常状態と障害状態を繰り返す大量のアラートが発生を避けることができます。ここに 1を設定すると、モジュールの一度の障害状態は無視します。0 を設定すると、モジュールの初回の障害状態でアラート通知がされます。
  • 最大アラート数(Max. Number of alerts): 1 は、アクションを一度だけ実行することを意味します。もし、ここに 10 を設定すると、アクションを 10回実行します。この設定により、アラートの実行回数を制限することができます。

ステップ 3: Click to zoom in

ステップ3では、フィールド1、フィールド2、フィールド3 などのフィールドがあります。前に説明したように、テンプレートからアクション、およびアクションからコマンドへのパラメータが転送されます。 さらに、この第3のステップでは、障害発生状況が正常に戻ったときに別のアクションを実行することができる アラートリカバリ を有効または無効にすることができます。

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

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

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

スケーリングアラート

モジュールにアラートを関連付けしたら、連続して複数回繰り返されるアラートがあった場合にアクションを追加することができます。これが、スケーリングアラートです。

追加のアクションを加え、次の画面キャプチャのように、アラートが何回連続したかでアクションを実行するかを定義します。

alert1.jpg

アラート発生数に達した場合、発生数を定義したアクションだけでなく、その時点まで実行されたすべてのアクションが再実行されます。

さらに、2つ目の間隔を設定することができます。このとき、指定の間隔内に複数回アラートを送信することはできません。

インスタントメッセージングによるアラートメッセージの転送

  1. Telegram は、Pandora FMS からアラートメッセージを受信できるインスタントメッセージングプラットフォームです。 詳細については、このビデオチュートリアル "Notifications Telegram: Pandora FMS" をご覧ください。 このビデオチュートリアルでは、Pandora FMS アラートのすべてのコンポーネントを作成および設定する方法がわかります。

スタンバイアラート

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

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

関連障害検知抑制

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

関連障害検知抑制は、エージェントの設定で有効にできます。“関連障害検知抑制” のチェックボックスをチェックします。

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.

サービスペースの関連障害検知抑制

バージョン NG 727 以上

サービス監視 は、同じインシデントを報告する複数の同一ソースのアラートを回避するために使用できます。

サービスベースの関連検知抑制を有効化すると、サービス要素(エージェント、モジュール、他のサービス)は問題を通知せず、サービス自身が影響を受けている要素の代わりにアラートを発します。

つまり、次の図のようになります:

要素 <i>192.168.10.149</i> が障害状態になりサービスには影響がない場合、オペレータは <i>192.168.10.149</i> がダウンした旨の通知を受けます。しかし、サービス <i>Service</i> は正しく動作しています。

この情報を受け取るためには、<i>根本原因分析</i>マクロである _rca_ を使って新たなアラートテンプレートを作成または編集します。

_rca_

このマクロはサービス内で影響を受ける 'パス' の情報をオペレータへ提供します。

例えば、図中のサービスステータスに対応するマクロ <i>_rca_</i> の値は次のようになります。

[Service -> web_service -> 192.168.10.149]

サービスの状態は正常ですが、障害状態のコンポーネントが 50% を超えないためです。(これについての詳細は、サービス監視を参照ください。

考察: 根本原因分析で表される一連のイベントは、サービス内の障害状態の要素を表しているため、どの要素が自分のサービスに影響を与えているかを確認できます。

モジュールベースの関連障害検知抑制

親エージェントのモジュールが障害状態になった場合に、親エージェントのモジュールの状態を使用してエージェントアラートを回避することができます。

セーフオペレーションモード

エージェントの拡張オプションでセーフオペレーションモードを有効化することができます。

選択したモジュールの状態が障害になった場合、それが警告もしくは正常状態に戻るまで該当エージェントの残りのモジュールが無効化されます。これにより、例えば、接続障害が発生した場合にリモートモジュールを無効化することができます。

特別日一覧

Pandora FMS では、休日や休暇の特別日一覧をテンプレートとして定義して、特別日にアラートが発報されないようにすることができます。

特別日の作成

新たに特別日を作成するには、“アラート(Alerts)” → “特別日一覧(List of special days” へ行き、カレンダー内の “作成(Create)” ボタンをクリックします。

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

日付(Date)

特別日の日付です。日付のフォーマットは YYYY-MM-DD です。毎年同じ日を指定したい場合は、YYYY に '*' を設定することができます。

グループ(Group)

特別日を適用するグループを選択します。ユーザが"すべて"グループに属してない場合は、特別日を作成するユーザが属するグループのみを割り当てることができます。

同一曜日(Same day of the week)

曜日を選択します。上記の日付がここで指定した曜日と同様に扱われます。

説明(Description)

特別日の説明です。

フィールドに入力したら、作成(Create) をクリックします。

実例1

2021年5月1日が休日だと仮定しましょう。2021-05-01 を '日曜' と定義すると、その日は日曜日と同じように扱われます。

実例2

毎年 5月1日が休日だと仮定します。*-05-01日曜 と定義すると、その日は日曜日と同じように扱われます。

実例3

月曜から金曜の午前 8時から午後 6時までの間にアラートを発報し、土曜と日曜はアラートを発報しないテンプレートがあったとします。8月15日が水曜日で祝日だったとします。このとき、特別日を設定し、同一の日 を土曜か日曜に設定します。そうすると、8月15日は、(土曜または日曜として扱われ)このテンプレートでは障害があってもアラートが発報されなくなります。

フィールドを選択して、“作成(Create)” をクリックします。

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

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

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

特別日の編集

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

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

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

特別日の削除

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

アラートの例

アラートの SMS 送信

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

smstools など、SMS を送信できるツールをインストールする必要があります。 ここではすでに SMS アカウントが設定済であると仮定します。以下のコマンドを実行します。

> sendsms

宛先とメッセージの2つのパラメータを入力します。

<destination> 'Full message'

完全な宛先番号(例: スペインの電話番号の場合は 346276226223)と、単純な引用符で囲まれたメッセージ(' および ')を入力します。

これにより、Pandora FMS 管理インターフェースで作成されるアラートで コマンド を使用できます。

このコマンドの場合、Field 1 は宛先の電話番号になり、Field 2 はメッセージ自体になります。これらのフィールドはアラートに追加されたものに送信され、値が置き換えられる可能性があることに注意してください。前の画像のその読み取りでは、宛先の電話番号 は “123456789” でした。

次に、コマンド を使うアクション を設定します。

このアクションは、あらかじめ定義された コマンド を実行し、Field 1Field 2 をカスタム値に置き換えます。 Field 1 は宛先の電話番号(前の画像の例では “346666666666”)になり、Field 2 はこのアクション用に定義されたテキスト(前の画面例では “Hello”)になります。

Pandora FMS では、宛先の電話番号に単語(英数字)を使用できますが、一部の携帯電話会社は英数字の ID を適切に管理していないことに注意してください。

次の手順では、既存のアラートテンプレートまたは新しいアラートテンプレートを使用できます。

この場合、アラートテンプレートは、モジュールが障害 状態になったときにのみ発報されます。

これを定義したら、アラートを最大で1日1回発生するように設定します。 ただし、復旧した場合も再び発報します。 次の図を参照してください。

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

CPUワークロードモジュールで、メッセージ転送をテストできるように 20未満の値を設定します。 次の画面を見てください。

最後に、アラートの実行を “強制” することができます。つまり、エージェントのアラートをすぐに実行します。 エージェントのアラートビューに移動し、緑色の円のアイコンをクリックします。

次の図に示すように、携帯電話で SMS を受信するはずです。 テストメッセージが “aeryn” に置き換えられていることに注意してください。さらに、CPUワークロード値は “N/A” を示します。これは、アラートを強制すると、データを取得する時間がなく 、モジュールが実際のデータを受信しないためです。

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

Pandora FMS には柔軟性があるため、いろいろな場面において便利です。次の手順は高度な手順であり、常に例外的なものとして扱う必要があります。時には、このような定義も必要になるでしょう。

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

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

DATE_HOUR - NAME_AGENT -NAME_MODULE -VALUE- PROBLEM DESCRIPTION

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

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

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

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

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

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

アラートは、“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 に出力されている定義されたアラートの実行ログを探します。


バージョン NG 754 以降では、高可用性(HA)環境における手動での起動・停止の追加オプションがあります

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

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

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

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

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

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

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

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

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

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

Pandora FMS でのアラートメール設定クイックガイド

一般的なコンソール設定 で説明しているように、Pandora FMS にはメールを送信する機能があります。

ただし、柔軟性があるため、さまざまなプラットフォームで電子メールを送信できます。

Gmail アカウントを使った Email 設定

Pandora FMS サーバが (Gmail) を介してアラートを送信するには、コンソールの一般設定 または Pandora FMS サーバ 設定を行い、資格情報(ドメイン、ユーザ名、パスワードなど)を入力します。

アクション設定

たとえば、Mail to Admin という名前のアクションを追加し、メールの宛先を設定するには、コマンド eMail を使用します。

アラート設定

この場合、 'モジュール > アラート の設定で、次のモジュールを含む新しいアラートが生成されます。

アラートが発生したら、アクションで選択されたメールがどのように到達するかを確認できます。

Office365 でのメール設定

Pandora FMS は、次の設定で Office365 を使うことができます。

  • Office365 アカウントを持っている必要があります。

アラート相関: イベントおよびログアラート

バージョン NG 741 以上

Pandora FMS バージョン 741 から、受信したイベントまたはログ収集システムによって収集されたログに基づくアラートを作成できます。論理関係を持つ一連の表現を用いて、単純なものから複雑なものまでのアラートを作成できます。 この機能は、以前のイベントアラートの機能を置き換えるものです。

Pandora FMS では、特定のモジュールの状態に応じてアラートが生成されるだけでなく、異なるエージェントの複数の異なるモジュールによって生成されたイベントに基づいてアラートを生成できるため、かなり柔軟な設定ができます。

イベントアラートは、論理演算子

  • and
  • or
  • xor
  • nand
  • nor
  • nxor

を使用して定義された、フィルタリングルールに基づいて一致するイベントを検索し、一致するものが見つかった場合にアラートが発報されます。

また、アラートが動作する日などのいくつかのパラメーターを定義したテンプレートを利用します。 ただし、この場合、テンプレートはイベントアラートがいつ発報されるかを定義しません。しかし、フィルタールールを介して一致するイベントが検索され、対応するアラートが発報されます。

バージョン 741 から、アラートを視覚的に作成できる新しいルールエディターを使用できます。古いイベントアラートエディタも、しばらくの間は継続して利用できます。

Pandora FMS データベースに保存できるイベントの数が多い場合、サーバは、pandora_server.conf 設定ファイルで 'event_window' という名前のパラメータで定義された最大イベントウィンドウで動作します。指定された時間範囲外に生成されたイベントは、サーバで処理されません。そのため、サーバで設定された時間範囲よりも広い時間範囲をルールで指定することには意味がありません。

イベントアラートを作成するには、次のパラメータを定義する必要があります: agent, module, event

相関アラートの作成

イベント相関アラートが機能するためには、Pandora FMS サーバ設定ファイルのパラメーター eventserver 1 でイベント相関サーバを有効化する必要があります。

相関アラート / テンプレート

相関アラートを設定するには、メニューから 'アラート相関(Alert correlation)' へアクセスします。

フィールドの概要は次の通りです。

ソート(Sort)“pass” または “drop” として設定されているかを評価する相関アラートの評価順序のマークです。リストの上位にあるほど、先にアラート評価されます。

名前(Name)

アラートの名前です。

グループ(Group)

まとめられたグループです。ユーザが"すべて"グループに属してない場合は、ユーザが属するグループのみを参照することができます。

マッチ(Matched)

現在のしきい値の発報ルールと一致するイベントが検出された回数です。

発報(Triggered)

設定されたしきい値でアラートが発報された回数です。

アクション(Action)

アラートで設定されたアクションを表示します。

オプション(Options)

アクションを無効にしたり、スタンバイ状態にしたり、アクションを追加したり、編集または削除などを行う操作ができます。

ルールを作成し動作を定義します。(アラートテンプレートに似ています)

相関アラートのテンプレート構成パラメータは、モジュールアラートの構成パラメーターに似ています。イベントアラート固有のパラメーターは 2つだけです。

  • ルール評価モード(Rule evaluation mode): 通過(Pass)破棄(Drop) の 2つのオプションがあります。“通過” とは、イベントがアラートと一致した場合、残りのアラートが引き続き評価されることを意味します。 “破棄” は、イベントがアラートと一致した場合、残ったアラートが評価されなくなることを意味します。
  • グループごと(Group by): エージェント、モジュール、アラート、またはグループごとにルールをグループ化できます。 例えば。 2つの障害イベントを受信したときにルールがオフになるように設定され、エージェントによってグループ化されている場合、2つの障害イベントが同じエージェントから送信される必要があります。 これは無効にできます。

ログルールを含むアラートの場合、エージェントによるグループ化にのみ影響します。 別のグループ化を選択した場合、ログベースのエントリのアラートは決して一致しません

各ルールは、特定のタイプのイベントまたはログの一致によりオフになるように設定されます。 ルールまたはその演算子によって定義された論理評価が満たされると、アラートが発報されます。

相関アラートのルール

ビデオチュートリアル «What's new in Pandora FMS Workshop» もご覧ください。

これらのルールを定義するには、要素を左側から右側の “ドロップ領域” にドラッグして作成します。

設定可能な項目:

これらの要素は、ユーザがルールの文法を満たすようにするガイドをします。ここで、使用される文法についてさらに説明します。

S -> R | R + NEXUS +R
R -> FIELD + OPERATOR + C | FIELD + OPERATOR + C + MODIFIER
C -> VARIABLE

ここで、S は、相関アラートに対して定義されたルールのセットです。

ルール定義エリアに要素をドラッグします。

たとえば、画面は次のようになります。

比較演算子 == および != では、テキスト文字列が文字通り比較されます。 より柔軟な比較には、正規表現 を用いる REGEX の利用を検討ください。

すべての変更をクリーンアップして元に戻すには、'クリーンアップ(Cleanup)' および 'リセット(Reset)' ボタンを使用します。

'次(Next)' ボタンを押さないうちは、変更は保存されません。

条件を満たすブロックが同時にあることに注意してください。

(A and B)

分析された要素(イベントまたはログ)が A と B を同時に満たすようにします。

A and B

評価ウィンドウで両方のルール(A)と(B)が満たされるようにします。 つまり、最後の数秒間('log_window' および 'event_window' パラメータで定義される)には、両方のルールを満たすエントリが存在する必要があります。

相関アラートのフィールド

この操作に関しては、"アラートシステム" を参照してください。

相関アラートの発報

ここでは、アラートが発報されたときに実行するアクションを設定と、そのようなアクションを実行する間隔と頻度を設定します。

ここでは、アクションの実行を設定するときの確認のために、“条件” セクションで行った設定のプレビューを行います。

下のフィールドでアクションを設定できます。

  • アクション(Actions): 実行したいアクションです。
  • 一致するアラート数(Number of alerts match): アクションを実行するためにアラートが発生してから何回分の実行間隔を待つかの設定です。常にアクションを実行する場合は、このフィールドを空白のままにする必要があります。
  • しきい値(Threshold): アラート発報後、アクションが再度実行される状態になるまでの間隔です。

次に、設定したアクションの一覧を表示します。この一覧の “発報(triggering)” フィールドには、 “一致するアラート数” で設定したアクションが実行される間隔が表示されます。さらに、“オプション” 列で、設定したアクションを削除または変更できます。

複数の相関アラート

複数のアラートがある場合、これらには特定の評価順序があります。それらは常にリストの最初から順番に評価されます。

'通過(PASS)' ルール評価モードが構成されている場合、相関アラートが実行されると、次のアラートも評価されます。 これは “通常” のモードです。

'破棄(DROP)' ルール評価モードを設定する場合、このモードで設定された相関アラートが実行されると、次のルールの評価は停止します。 この機能により、関連アラート抑制が可能になります。

例:

  • 一般的なアラート
  • 特別なアラート

一般アラートが失敗した場合、特定のアラートを評価する必要はありません。 両方を破棄(DROP) で設定します。

順序アイコンをクリックしてドラッグし、ルール評価の順序を変更します。

残りの相関ルール(アクションフィールドとアクションアプリケーション)は、他の Pandora FMS アラートと同様に機能するため、追加の説明は行いません。

イベントアラートマクロ

イベントアラートで利用できるマクロはこの章の最後のマクロ一覧を参照ください。

マクロ一覧

コマンドマクロアクションマクロ および イベントアラートマクロ は、_modulelaststatuschange_, _rca_ および _secondarygroups_ を除き共通です。

  • _address_: アラートを発報したエージェントのアドレス。
  • _address_n_ : “n” で示される位置に対応するエージェントのアドレス。 例) address_1_ , address_2__
  • _agent_: アラートを発報したエージェントの別名。別名が定義されていない場合は、代わりにエージェント名になります。
  • _agentalias_: アラートを発報したエージェントと別名。
  • _agentcustomfield_n_: n 番のエージェントカスタムフィールド。(例: _agentcustomfield_9_).
  • _agentcustomid_: エージェントのカスタム ID。
  • _agentdescription_: アラートを発報したエージェントの説明。
  • _agentgroup_ : エージェントグループ名。
  • _agentname_: アラートを発報したエージェント名。
  • _agentos_: エージェントの OS。
  • _agentstatus_ : エージェントの現在の状態。
  • _alert_critical_instructions_: モジュールの障害状態時の手順。
  • _alert_description_: アラートの説明。
  • _alert_name_: アラート名。
  • _alert_priority_: アラートの数値での重要度。
  • _alert_text_severity_: テキストでの重要度。 (Maintenance, Informational, Normal Minor, Major, Critical).
  • _alert_threshold_: アラートの閾値。
  • _alert_times_fired_: アラートが発報された回数。
  • _alert_unknown_instructions_: モジュールの不明状態時の手順。
  • _alert_warning_instructions_: モジュールの警告状態時の手順。
  • _all_address_ : アラートを発報したエージェントの全アドレス。
  • _data_: アラートを発報する原因となったモジュールデータ。
  • _email_tag_: モジュールのタグに関連付けられた Email。
  • _event_cfX_: (イベントアラートのみ) アラートを発報したイベントカスタムレポートキー。例えば、IPAM というキーのカスタムフィールドがある場合、その値は、_event_cfIPAM_ マクロを用いて取得します。
  • _event_description_: (イベントアラートのみ) イベントのテキストでの説明。
  • _event_extra_id_: (イベントアラートのみ) 拡張 ID。
  • _event_id_: (イベントアラートのみ) アラートを発報したイベントの ID。
  • _event_text_severity_: (イベントアラートのみ) イベントのテキストでの重要度 (Maintenance, Informational, Normal Minor, Warning, Major, Critical)
  • _eventTimestamp_: イベントが作成されたタイムスタンプ。
  • _fieldX_: ユーザ定義フィールド X。
  • _groupcontact_: グループ連絡情報。グループ作成時に設定されます。
  • _groupcustomid_: グループカスタム ID。
  • _groupother_: グループに関する他の情報。グループ作成時に設定されます。
  • _homeurl_ : 公開 URL。設定の一般オプションで設定されます。
  • _id_agent_: エージェント ID。コンソールの該当ページに直接行く URL を生成するのに便利です。
  • _id_alert_: エージェントの数値 ID(ユニーク)。他のソフトウエアとの連携に利用します。
  • _id_group_ : エージェントグループ ID。
  • _id_module_: モジュール ID。
  • _interval_: モジュール実行間隔。
  • _module_: モジュール名。
  • _modulecustomid_: モジュールカスタムID。
  • _moduledata_X_: このマクロ(“X” はモジュール名)を使用することにより、そのモジュールの最新のデータを取得でき、それが数値の場合、コンソールの設定で指定された 10進形式で、その単位とともに返されます。 たとえば、同じエージェントの他のモジュールに関する情報をアラートメールで送信する場合に役立ちます(これは非常に重要です)。
  • _moduledescription_: アラートを発報したモジュールの説明。
  • _modulegraph_nh_: (コマンド eMail を利用するアラートのみ) n 時間の間のモジュールグラフを base64 でエンコードして返します。(例: _modulegraph_24h_) サーバとコンソールのAPI間の接続を正しく設定する必要があります。 この設定はサーバの設定ファイルで行います。
  • _modulegraphth_nh_: (コマンド eMail を利用するアラートのみ) モジュールの障害および警告しきい値が定義されている場合にのみ、前のマクロと同じ操作を行います。
  • _modulegroup_: モジュールのグループ名。
  • _modulestatus_: モジュールの状態。
  • _modulelaststatuschange_: モジュールの最後の状態変更日時。
  • _moduletags_: モジュールタグに関連付けられた URL。
  • _name_tag_: モジュールに関連したタグの名前。
  • _phone_tag_: モジュールタグに関連付けられた電話番号。
  • _plugin_parameters_: モジュールプラグインパラメータ。
  • _policy_: モジュールが所属するポリシー名。(該当する場合)
  • _prevdata_: アラートが発報される前のモジュールデータ。
  • _rca_: 根本原因分析チェーン。 (サービスのみ)
  • _server_ip_: エージェントに割り当てられたサーバ IP。
  • _server_name_: エージェントに割り当てられたサーバ名。
  • _target_ip_: モジュールのターゲット IP アドレス。
  • _target_port_: モジュールのターゲットポート番号。
  • _timestamp_: アラートが発報された日時。(yy-mm-dd hh:mm:ss)
  • _timezone_: _timestamp_ のタイムゾーン。