受信したSNMP Trapをアラートとして保存するために必要となるアラート定義ファイルの作成方法について説明します。
【 事前知識 】
SNMP Trapには、「一般トラップ」と「ベンダ定義トラップ」の2種類があります。
下記のとおり、SNMPv1 Generic Code(Type)、または SNMPv2 Trap OID で区別します。
トラップ種別 | SNMPv1 Generic Code(Type) | SNMPv2 Trap OID | 意味 |
---|---|---|---|
一般トラップ | 0 | 1.3.6.1.6.3.1.1.5.1 | coldStart |
1 | 1.3.6.1.6.3.1.1.5.2 | warmStart | |
2 | 1.3.6.1.6.3.1.1.5.3 | linkDown | |
3 | 1.3.6.1.6.3.1.1.5.4 | linkUp | |
4 | 1.3.6.1.6.3.1.1.5.5 | authenticationFailure | |
5 | 1.3.6.1.6.3.1.1.5.6 | egpNeighborLoss | |
ベンダ定義トラップ | 6 | ベンダ固有定義 | ベンダ固有定義 |
「一般トラップ」については、RFC1215、RFC2578 などで上記表のとおり意味が規定されていますが、
「ベンダ定義トラップ」については各ベンダがMIBファイルにて意味を定義します。
各トラップ種別によりアラート定義ファイル作成方法が異なります。詳細は以下を確認ください。
1. アラート定義ファイルを作成する
・ベンダ定義トラップ
・一般トラップ
2. アラート定義ファイルを適用する
3. アイコンを登録する
4. トラブルシューティング
【 準備 】
ベンダより提供されているMIBファイルを準備します。
ベンダ定義トラップ用のアラート定義ファイルの作成には、アラート定義ファイル作成支援ツールを使用します。
ツールの使用方法については、「支援ツール使用方法.txt」を参照ください。
ベンダ定義トラップは、ベンダより提供されるMIBファイル中の下記のようなマクロにより定義されています。
【TRAP-TYPEマクロ例】
trapNameV1 TRAP-TYPE
ENTERPRISE enterpriseOidName
VARIABLES { objName1, objName2, objName3 }
DESCRIPTION "sample of trap-type macro."
::= specificCode
【NOTIFICATION-TYPEマクロ例】
trapNameV2 NOTIFICATION-TYPE MACRO
OBJECTS { objName1, objName2, objName3 }
STATUS current
DESCRIPTION "sample of notification-type macro."
::= { trapOidParent trapOid }
VARIABLES、OBJECTS節で定義されているobjNameN を「付加情報」と呼びます。
付加情報の値をアラートの概要や詳細に埋め込んだり、
付加情報の値に応じた重要度でアラートを表示したりすることができます。
付加情報の数は可変で、付加情報が無い場合は VARIABLES、OBJECTS節は未定義となります。
アラート定義ファイルの各定義は、「キー定義」と「アラート定義」の2つにより構成されます。
キー定義は、受信したSNMP Trapに対してどの定義を使用してアラートを生成するかを検索する際に使用します。
下記項目となります。
・エンタープライズ
・一般トラップコード
・特定トラップコード
キー定義はMIBファイルに定義されている内容です。このため、アラート定義ファイル作成支援ツールでの編集は行いません。
アラート定義は、受信したSNMP Trapに対してどのような内容でアラートを生成するかを定義します。
下記項目となります。
・重要度
・概要
・詳細
・対処
・製品名
・アラートとして保存する/しない
・文字コード
アラート定義ファイル作成支援ツールにより、アラート定義ファイルに出力される内容は下記となります。
■ Enterprise
キー定義の「エンタープライズ」の出力です。
アラート定義ファイル作成支援ツールは、MIBファイル中の下記定義をエンタープライズとして使用します。
【TRAP-TYPE】
enterpriseOidName の OID。
【NOTIFICATION-TYPE】
trapOidParent の OID。末尾が”.0”となる場合は、”.0”は削除します。
■ GenericCode
キー定義の「一般トラップコード」の出力です。
ベンダ定義トラップを示す”6”固定です。
■ SpecificCode
キー定義の「特定トラップコード」の出力です。
アラート定義ファイル作成支援ツールは、MIBファイル中の下記定義を特定トラップコードとして使用します。
【TRAP-TYPE】
specificCode
【NOTIFICATION-TYPE】
trapOid
■ 重要度
アラート定義の「重要度」の出力です。
アラート定義ファイル作成支援ツールは、MIBファイルからの雛形作成時に「情報(2)」を固定で使用します。
MIBファイルを確認し、アラート定義ファイル作成支援ツールで適宜編集します。
「固定」/「VARIABLESの」ラジオボタンの選択により出力が異なります。
「固定」選択時:
Severity
リストで選択した「情報(2)」/「警告(3)」/「異常(4)」のいずれかの整数値が出力されます。
「VARIABLESの」選択時: (ESMPRO/BASE Ver. 8.0S 以降で利用可能です。)
Severityoid
「番目の」エディットボックスに入力した整数値が出力されます。
重要度を決定するための情報が、付加情報の何番目に通知されるのかの指定となります。
Severitymap
「であれば、情報/警告/異常」エディットボックス入力値が出力されます。
Severityoid で定義した付加情報の値がどの値だった場合にどの重要度とするかのマッピング情報となります。
<書式> Severitymap: #2,[情報にマッピングする値],#3,[警告にマッピングする値],#4,[異常にマッピングする値]
受信した値が入力値以外の場合は、情報にマッピングされます。
■ Summary
アラート定義の「概要」の出力です。
アラート定義ファイル作成支援ツールは、MIBファイル中の下記定義を概要として使用します。
アラート定義ファイル作成支援ツールで適宜編集します。
【TRAP-TYPE】
trapNameV1
【NOTIFICATION-TYPE】
trapNameV2
文字列中に付加情報に含まれる値を埋め込みたい場合は、埋め込みたい位置に
%値の順番%
を定義します。
※ 付加情報に含まれる値にマルチバイト文字が含まれる場合は文字コードを確認ください。
Shift-JIS以外の場合は"CharCode"で文字コードを定義します。
※ 概要文字列への付加情報の埋め込みは、ESMPRO/BASE Ver. 8.0S以降で利用可能です。
■ Detail
アラート定義の「詳細」の出力です。
アラート定義ファイル作成支援ツールは、MIBファイル中のDESCRIPTION節を詳細として使用します。
アラート定義ファイル作成支援ツールで適宜編集します。
文字列中に付加情報に含まれる値を埋め込みたい場合は、埋め込みたい位置に
%値の順番%
を定義します。
また、%all と指定すると、下記形式で受信した付加情報すべてを表示します。
MIB名=値
MIB名=値
:
※ 付加情報に含まれる値にマルチバイト文字が含まれる場合は文字コードを確認ください。
Shift-JIS以外の場合は"CharCode"で文字コードを定義します。
■Action
アラート定義の「対処」の出力です。
■ ESMKind
アラート定義の「製品名」の出力です。
省略した場合の製品名は、"ESMPRO/BASE" となります。
■ Logging
アラート定義の「ログに保存する」の出力です。
”0”(アラートログに保存する)/”1”(アラートログに保存しない)のいずれか(省略可)となります。
省略した場合は、”1”となります。
”0”を設定した場合は、受信したSNMPトラップは破棄されます。
■ CharCode
アラート定義の「文字コード」の出力です。(ESMPRO/BASE Ver. 8.0S 以降で利用可能です。)
重要度、概要、詳細 いずれかで 付加情報 の値を参照/表示する定義を行い、かつ
付加情報に含まれる文字列の文字コードが Shift-JIS 以外の場合は、文字コードを設定してください。
付加情報に含まれる文字列を、設定した文字コードから Shift-JIS に変換します。
省略した場合はShift-JISへの変換は行われません。文字コードが Shift-JIS 以外の場合は正しく表示できません。
指定可能な文字コードは下記となります。
・SJIS
・EUC
・UTF-8
・UTF-16
・UTF-16BE(ビックエンディアン)
・UTF-16LE(リトルエンディアン)
※ UTF-16指定時は、BOMの有無で下記のように識別されます。
BOMなし ビックエンディアン
BOMあり(0xfeff) ビックエンディアン
BOMあり(0xfffe) リトルエンディアン
【ベンダ定義トラップ定義例】
Enterprise 1.3.6.1.4.1.119.5.5.6.7、SpecificCode 15 の SNMP Trap を受信する定義例
Enterprise: 1.3.6.1.4.1.119.5.6.7
GenericCode: 6
SpecificCode: 15
Severity: 3
Summary: しきい値超過
Detail: しきい値(%1%)を越えました(値=%2%)
Logging: 1
Enterprise 1.3.6.1.4.1.119.1.2.3 のSNMP Trap を受信しない定義例
Enterprise: 1.3.6.1.4.1.119.1.2.3
GenericCode: 6
SpecificCode: *
Logging: 0
一般トラップの場合は、エンタープライズが送信元システムのシステムOID となる場合があります。
例のように GenecicCode のみで定義を作成してください。
【 作成 】
一般トラップの場合は、アラート定義ファイル作成支援ツールは使用せず、
下記定義例を <NVWORK>\public\trap\*.def ファイルに直接記述します。
※ Enterprise、GenericCode、SpecificCode 以外については変更可能です。
【一般トラップ定義例】
Enterprise: *
GenericCode: 0
SpecificCode: *
Severity: 2
Summary: coldスタート
Detail: SNMPエージェントがスタートしました
Logging: 1
Enterprise: *
GenericCode: 1
SpecificCode: *
Severity: 2
Summary: warmスタート
Detail: SNMPエージェントが設定変更なしで再初期化されました
Logging: 1
Enterprise: *
GenericCode: 2
SpecificCode: *
Severity: 2
Summary: インタフェースダウン
Detail: インタフェース%1%がダウンしました
Logging: 1
Enterprise: *
GenericCode: 3
SpecificCode: *
Severity: 2
Summary: インタフェースアップ
Detail: インタフェース%1%がアップしました
Logging: 1
Enterprise: *
GenericCode: 4
SpecificCode: *
Severity: 3
Summary: 認証エラー
Detail: SNMPコミュニティ名が不正です
Logging: 1
Enterprise: *
GenericCode: 5
SpecificCode: *
Severity: 3
Summary: EGP隣接ダウン
Detail: ノード%1%でEGP Neighborが停止しました
Logging: 1
1. 作成したアラート定義ファイルを、ESMPRO/BASEインストール機器の <NVWORK>\public\trap\*.def ファイルに格納します。
<NVWORK>は、ESMPRO/BASEワークフォルダで、デフォルトでは製品インストールフォルダ下に存在します。
確認が必要な場合は、レジストリエディタで HKEY_LOCAL_MACHINE\SOFTWARE\NEC\NVBASE\WorkDir を確認ください。
※ 64bit OSの場合は、以下のようにフォルダ、レジストリは、適宜リダイレクトされます。
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\NEC\NVBASE\WorkDir
定義ファイルの読み込み順は、nvbase.def → ***.def → user.def となります。
キー定義が重複している場合は、後から読み込んだ定義が有効となります。
すでに他の定義ファイルで定義済みの内容を更新したい場合は、user.defで再定義してください。
2. 格納したアラート定義ファイルを有効とするために、Windowsのサービス画面より「ESM Alert Service」の再起動を行います。
※ ESMPRO/ServerManager Ver6以降をご使用の場合は、ESMPRO/ServerManagerの全サービスの再起動が必要となります。
ESMPRO/ServerManagerの全サービスの一覧に関しては、「ESMPRO/ServerManager Ver.6 インストレーションガイド
(Windows編)」中の「4章 付録」の「3. サービス一覧」を参照ください。
アラートビューアのコンポーネント名は、受信したSNMPトラップの送信元アドレスを
オペレーションウィンドウ上に登録されているアイコンより検索して決定します。
オペレーションウィンドウ上にアイコンが登録されていないと、アラートビューアの
コンポーネント名が”{不明なサーバ}”となります。
”{不明なサーバ}”と表示される場合は、
オペレーションウィンドウ [ツール]- [自動発見] -[手動起動]-[TCP/IPホストの発見]メニューより自動発見を実行しアイコンを登録します。
自動発見によりSNMPエージェントを発見できない場合は手動でアイコンを登録してください。
※ ESMPRO/ServerManager Ver6以降をご使用の場合は、オペレーションウィンドウは使用しません。
グループ情報タブの[コンポーネントの追加]から、[手動登録]-[アラート受信のみ管理]にてSNMP Trap送信元機器を登録します。
アラート定義ファイルを作成しても SNMP Trapを表示することができない場合は、ネットワークキャプチャツールを使用する、
またはアラート定義ファイルに受信したSNMP Trapをすべて表示するための下記定義を追加し、実際にどのようなエンタープライズ、
特定トラップコードが送信されているのかを確認します。
【 受信したSNMP Trapすべてを表示する定義例 】
Enterprise: *
GenericCode: *
SpecificCode: *
Severity: 2
Summary: SNMP TEST
Detail: %all
Logging: 1
送信される エンタープライズ、特定トラップコードがMIBファイルの定義どおりでない場合は、MIBファイル提供元に確認を行います。