WebNMS Framework アプリケーション開発 - 第1章 監視デバイスのモデリングとディスカバリ
このチュートリアルでは開発者を対象に、 監視デバイスのモデリング、ディスカバリ(SNMP)、マップ、障害管理、パフォーマンス、プロビジョニングのカスタマイズ方法を説明します。
WebNMS Frameworkは、Webブラウザ(サーブレット)とJavaクライアント(Swing)の両方で動作するJavaベースのネットワーク監視システムです。
Javaプログラムを使用することで、システムを柔軟にカスタマイズできます。
また、統合開発ツール WebNMS Framework Studioツールを使用し、簡単にJavaソースコードや設定ファイルを自動生成、修正することができます。
多くの機能は、基底/抽象クラスやインターフェースを提供しており、これらのクラスを実装することにより、
WebNMS Frameworkフレームワークを柔軟にカスタマイズできます。

第1章では、監視デバイスのモデリングディスカバリについて以下の手順で説明します。
1. 管理オブジェクト(MO)の作成
2. ディスカバリフィルターの作成
3. WebNMS Frameworkアプリケーションの起動

■1 管理オブジェクト(MO)の作成

WebNMS Frameworkでは管理対象のデバイスをJavaのオブジェクトでモデリングします。
デフォルトで管理するプロパティに加えユーザ独自のプロパティを持たせる場合には、新規にJavaクラス(拡張管理オブジェクト)を定義します。

WebNMS Frameworkでは、統合開発環境(IDE)のEclipseを利用して各種ソースコード、設定ファイルの編集、パッケージングを行います。
EclipseにWebNMS Frameworkのプラグインを設定後、Eclipseを起動します。
プラグインの設定方法はこちらを参照してください。

プロジェクトを新規作成します。

図1-1 Eclipse - WebNMSプロジェクト作成
図1-1 Eclipse - WebNMSプロジェクト作成
図1-2 Eclipse - EMS開発プロジェクトウィザード
図1-2 Eclipse - EMS開発プロジェクトウィザード
図1-3 Eclipse - プロジェクト作成
図1-3 Eclipse - プロジェクト作成

拡張管理オブジェクトを定義します。

図1-4 Eclipse - オブジェクトのモデリング
図1-4 Eclipse - オブジェクトのモデリング
図1-5 Eclipse - オブジェクトのモデリング
図1-5 Hibernateマッピングファイル作成 - パッケージストラクチャエディタ
図1-6 Hibernateマッピングファイル作成 - コンポーネントMOテーブル詳細
図1-6 Hibernateマッピングファイル作成 - コンポーネントMOテーブル詳細

親リソースとして指定できるオブジェクト一覧を表1-1に示します。

表1-1 WebNMS Framework オブジェクトモデル
クラス名 説明
ManagedObject 管理デバイスのベースクラス。MO名、管理対象フラグ等の基本情報を保持。
TopoObject ManagedObjectを継承。TCP/IPベースのオブジェクト。Network/Node/Interface/SnmpNodeの区分プロパティを持つ。
Network TopoObjectを継承。IPネットワークを表現。ノードオブジェクト(Node)を集約。
Node TopoObjectを継承。IPノードを表現。IPアドレスオブジェクト(IpAddress)を集約。
IpAddress TopoObjectを継承。IPインターフェースを表現。オブジェクト名はIF-(ノード名)になる。
SnmpNode Nodeを継承。SNMP固有のプロパティを保持。SNMPノードをモデル化。
SnmpInterface IpAddressを継承。SNMP固有のプロパティを保持。SNMPインターフェースをモデル化。
図1-7 Hibernateマッピングファイル作成 - MOプロパティ詳細1
図1-7 Hibernateマッピングファイル作成 - MOプロパティ詳細1
図1-8 MIB属性選択
図1-8 MIB属性選択
図1-9 Hibernateマッピングファイル作成 - MOプロパティ詳細2
図1-9 Hibernateマッピングファイル作成 - MOプロパティ詳細2
図1-10 Hibernateマッピングファイル作成 - MoMap作成
図1-10 Hibernateマッピングファイル作成 - MoMap作成

■2 ディスカバリフィルターの作成

WebNMS Frameworkのディスカバリ処理手順を表2-1に示します。 ここでは、手順8のディスカバリフィルターを使用して、ディスカバリ処理のカスタマイズを行います。

表2-1 ディスカバリ処理手順
No. 説明
手順1 検出するネットワークを認識
手順2 Networkオブジェクト生成。トポロジーデータベースに追加。
手順3 検出したネットワーク毎に、ディスカバリスレッドを生成。
手順4 ネットワークに含まれる全IPアドレスをスイープ。
手順5 ARPテーブルとSNMP/ICMPブロードキャストを使用して、利用可能なIPアドレスを保持。
手順6 IP、ノードの存在を確認した場合、SNMP/TL1/ICMP/Native pingを使用してテスト。
手順7 応答があった場合、トポロジーデータベースに追加。
手順8 トポロジーデータベースに追加前に、ディスカバリフィルターに渡す。
手順9 再ディスカバリのスケジューリング。(手順4から繰り返す)

ディスカバリフィルターインターフェースcom.adventnet.nms.topodb.FoundFilter#filterObject()を 実装することで、独自のロジックを実装することができます。

図2-1 Eclipse - ディスカバリフィルター作成
図2-1 Eclipse - ディスカバリフィルター作成
図2-2 DiscoveryFilter作成ウィザード - DiscoveryFilterプロパティ
図2-2 DiscoveryFilter作成ウィザード - DiscoveryFilterプロパティ

作成したフィルター内で、先ほど作成したGMapオブジェクトの緯度/経度情報を設定します。

図2-3 MoMapDiscveryFilter
図2-3 MoMapDiscveryFilter

■3 WebNMS Frameworkアプリケーションの起動

作成したディスカバリフィルタが正常に動くかを確認します。

図3-1 Eclipse - WebNMSサーバスタート
図3-1 Eclipse - WebNMSサーバスタート
図3-2 Eclipse - ランタイムアドミニストレーション
図3-2 Eclipse - ランタイムアドミニストレーション
図3-3 ランタイムアドミニストレーション - ディスカバリフィルタ
図3-3 ランタイムアドミニストレーション - ディスカバリフィルタ
図3-4 フィルタ設定
図3-4 フィルタ設定
図3-5 ランタイムアドミニストレーション - ディスカバリフィルタ設定
図3-5 ランタイムアドミニストレーション - ディスカバリフィルタ設定
図3-6 WebNMSクライアント - 管理オブジェクトプロパティ
図3-6 WebNMSクライアント起動 - 管理オブジェクトプロパティ
図3-7 ManagedObjectプロパティ
図3-7 ManagedObjectプロパテ
図3-8 WebNMSクライアント - カスタムビュー編集
図3-8 WebNMSクライアント - カスタムビュー編集
図3-9 カスタムビュー編集 - 次へ
図3-9 カスタムビュー編集 - 次へ
図3-10 カスタムビュー編集 - 表示プロパティの選択
図3-10 カスタムビュー編集 - 表示プロパティの選択
図3-11 表示プロパティの選択
図3-11 表示プロパティの選
図3-12 ユーザ定義テーブルカラム
図3-12 ユーザ定義テーブルカラム
図3-13 WebNMSクライアント - カラム追加
図3-13 WebNMSクライアント - カラム追加

以上で、監視デバイスのモデリングとディスカバリのカスタマイズ方法は終了です。
統合ツールとインターフェースを使用することで、ディスカバリ機能を簡単にカスタマイズできることが分かります。