2014/05/01 CentOS6.5/PandoraFMS5.0SP3





SNMPトラップアラートを作成する

PandoraFMS OSE版はSNMPトラップのアラームが苦手です。
一つ一つ定義しなくてはならず、さらに定義しづらいようにできてます。

一番ネックなのは、SNMPトラップに独自MIBを使用することができないので、常に生OIDとvarbind値と
戦わなくてはならないことです。

さらに以下の仕様があります。
・トラップアラートはシステムイベントとは別に処理される。
 障害トラップアラートを発生しても、該当エージェントは障害状態にならない。
 SNMPコンソール内の障害アラートとして表示される。
・障害イベントと回復イベントを「対」にできない。トラップにより回復を把握したい場合は
 回復トラップアラートを別に定義する。もちろん自動回復もしない。
 障害トラップアラートと回復トラップアラートは別々に発生し、そのまま過ぎていきます。

多数かつ複雑なSNMPトラップに対応しなくてはならない監視システムであれば、一考すべきでしょう。

SNMPトラップのPandoraFMSドキュメント




1.SNMPトラップ受信を有効にする

SNMPトラップを受け入れるため、コミュニティ名を設定します。
/etc/snmpd.confを編集します。

#vi /etc/snmp/snmptrapd.conf

(以下の値を追記します。コミュニティ名publicは任意の値です)
authCommunity log public

ここで注意するのは、snmptrapdを起動してはいけないことです。
SNMPTrapデーモンは、PandoraFMSによって起動されます。
一応自動起動はオフにしておきましょう。
#service snmptrapd stop
#chkconfig snmptrapd off

ファイアウォールで162番ポートを開放します。
#vi /etc/sysconfig/iptables

(追加)
-A INPUT -p udp --dport 162 -j ACCEPT

#services iptables restart




2.PandoraFMSのSNMPトラップコンソールを有効にする

デフォルトではSNMPトラップは無視されるので、コンフィグで有効にします。

#vi /etc/pandora/pandora_server.conf

以下の値を変更します(トラップコンソールを有効化)
snmpconsole 1

変更を反映させるには、サーバを再起動します。
#service pandora_server restart




3.トラップコンソールを確認する

管理メニューの[SNMP]-[SNMPコンソール]を選択します。

トラップコンソールにログが延々と出力されます。
機器がトラップを生成していないのなら、ためしにLinuxからSNMPトラップを生成してみます。

LinuxSNMPトラップコマンド(OIDは適当です)

#snmptrap -v 1 -c public localhost .1.3.6.1.4.1.8072.99999 localhost 6 1 '' .1.3.6.1.4.1.8072.99999 s "Hello"

受信したトラップが表示されます。


トラップを受信できていない場合、ファイアウォールもしくはSNMPトラップデーモンの設定がミスしてます。
あるいはSNMPトラップデーモンが起動したまま、PandoraFMSを再起動したかです。
SNMPTrapデーモンを止めてから、PandoraFMSサーバを再起動しましょう。

SNMPコンソールが有効になっていると、/var/log/pandora/pandora_snmptrap.logが生成され、そちらに
トラップのログが蓄積されます。
(つまりトラップコンソールは、このログの内容を画面表示しているだけ、というわけです)




4.テストアラートの作成

操作メニューから[SNMP]-[SNMPアラート]を選択し、作成をクリックします。

説明 テストトラップアラーム
OID .1.3.6.1.4.1.8072.99999
トラップタイプ なし
カスタムOID/Data#1 Hello (文字列などの引数の一致をチェック)
Destination address 警報メールの宛先として指定(関連付けるアクションによって異なります)
Subject [BIZ-System] Test _agent_ (メールタイトルに相当します)
Text メール本文に相当します。
最小アラート数 0 (SNMPトラップのアラートを即発生させます。1を指定したら、1回目のトラップは無視します)
最大アラート数 1 (再通知時間内は1回のみアラートを発生させます)
再通知間隔 0秒
優先度 障害
アクション メール送信
位置 (低位のアラートが最初に評価されます。とありますが、あまり利用しなさそう)



最大アラート数と再通知間隔

トラップの種類によって異なりますが、一度に多数のトラップが発生しうるイベントの場合、最大アラートと再通知間隔を設定しましょう。さもないと膨大なメールが送信されることになります。

最大アラート数 1
再通知間隔 5分 の場合

再通知間隔が5分に設定されているため、5分以内に同じ種類のトラップを受け取った場合は、アラートを発生させません。(コンソールには表示されます。カラーリングはされません)
5分経過すると最大アラート数がクリアされるので、トラップを受信するとアラートとして認識されます。

なお、再通知間隔を0秒、最小アラートを1とするとアラートイベントが発生しません。
0秒でカウントがクリアされるため、「毎回1つ目」(抑制対象)として認識されるからです。




5.トラップを発生させる

再度、コマンドから同じSNMPトラップを生成します。

#snmptrap -v 1 -c public localhost .1.3.6.1.4.1.8072.99999 localhost 6 1 '' .1.3.6.1.4.1.8072.99999 s "Hello"

同じトラップが、今度は障害として認識されました。







prev.gif