GroundWork Monitor は、受信したSNMP トラップを構文解析して、人の読める形式のアラームとウェブインタフェース内表示ににフォーマットするために、SNMP trap translator (SNMPTT)を使用します。使用者のニーズによって各トラップの重大度をカスタマイズすることもできます。
SNMPTT(SNMP Trap Translator: SNMP トラップ・トランスレータ)は、Net-SNMP/UCD-SNMP の snmptrapd プログラム用にPERL で書かれたSNMPトラップハンドラです。SNMPTT は Linux、Unix、Windows に対応しています。
ネットワークスイッチ、ルータ、リモートアクセスサーバ、UPS、プリンタ、Unix や Windows NT などのオペレーティングシステム、その他多くのネットワーク機器には、ネットワーク管理ステーションで動作するSNMP マネージャに通知を送信する 機能があります。通知は、SNM Pトラップ、SNMP 通知メッセージのいずれかです。
通知にはポート障害、リンク障害、アクセス違反、停電、紙詰まり、ハード・ドライブ障害など、さまざまな情報が含まれています。ベンダーが提供する MIB(Management Information Base)によって、各機器がサポートする通知が決まります。
MIB ファイルにはTRAP-TYPE(SMIv1) または NOTIFICATION-TYPE(SMIv2)定義が記述されています。これらは、特定のイベントが発生したときに管理ステーションに渡される変数を定義します。
Net-SNMP プログラムの snmptrapd は、SNMP トラップを受信して記録し、TCP/IP を通じてメッセージを送信するアプリケーショ ンです
SNMPTT - http://www.snmptt.org
Net-SNMP - http://www.net-snmp.org
以下は、ドライブアレイが再構築中であることを通知する、CompaqのcpqDa3LogDrvStatusChange トラップ用の syslog エントリ例です:
Feb 12 13:37:10 server11 snmptrapd[25409]: 192.168.110.192: Enterprise Specific Trap (3008) Uptime: 306 days, 23:13:24.29, .1.3.6.1.2.1.1.5.0 = SERVER08, .1.3.6.1.4.1.232.11.2.11.1.0 = 0, .1.3.6.1.4.1.232.3.2.3.1.1.4.8.1 = rebuilding(7)
または
Feb 12 13:37:10 server11 snmptrapd[25409]: 192.168.110.192: Enterprise Specific Trap (3008) Uptime: 306 days, 23:13:24.29, sysName.0 = SERVER08, cpqHoTrapFlags.0 = 0, cpqDaLogDrvStatus.8.1 = rebuilding(7)
snmptrapdの出力は、-O オプションによって、OID を数値またはシンボル、その他の表示形式によって表示するように変更できます。しかしながら、通常は「変数名=値, 変数名=値」のような書式に従います。
SNMPTT の変数の代入により、内容がよりわかりやすいトラップメッセージを生成できます。以下は SNMPTT によって記録した同じトラップです:
Feb 12 13:37:13 server11 TRAPD: .1.3.6.1.4.1.232.0.3008 Normal "XLOGONLY" server08 - Logical Drive Status Change: Status is now rebuilding
SNMPTT 設定ファイルの cpqDa3LogDrvStatusChange トラップの定義は、次のようになります:
FORMAT Logical Drive Status Change: Status is now $3.
$3は、MIB ファイルに定義された3番目の変数を意味し、この特定のトラップの場合は変数 cpqDaLogDrvStatus です。
下記はSNMPTT 設定の別のエントリ例です:
FORMAT Compaq Drive Array Spare Drive on controller $4, bus $5, bay $6 status is $3.
次のような出力が得られます:
"Compaq Drive Array Spare Drive on controller 3, bus 0, bay 3 status is Failed."
SNMPTT は、テキストのログ、syslog、NT イベントログ、SQLデータベースを記録先とすることができます。変換されたトラップを電子メール・クライアント、ポケットベル・ソフトウェア、Nagios などに渡す外部プログラムを実行することもできます。
変数の代入に加えて、SNMPTT では次のような複雑な設定も可能です:
ホスト名、IP アドレス、ネットワーク範囲、トラップ・エンタープライズ変数内の変数の値などに応じたトラップの受け入れ、棄却機能。
ポケットベル・メッセージ、電子メールなどを送信する外部プログラムの実行。
変換されたメッセージに対する、正規表現の検索と置換。例えば、変数の値 "Building alarm 4"(建造物警報4)を"Moisture detection alarm" (高湿検出警報)などに置換します。