SNMP 監視と管理
Simple Network Management Protocol (SNMP) は、ネットワーク管理の業界標準に位置付けられます。SNMP で管理されるオブジェクトは、管理情報ベース (MIB) に配置されます。SNMP エージェントは、Java 仮想マシン (Java VM) のインストゥルメンテーション用として標準の MIB を公開しています。Java VM の監視および管理に使用する標準の MIB は、http://docs.oracle.com/javase/6/docs/jre/api/management/JVM-MANAGEMENT-MIB.mib からダウンロードできます。
SNMP エージェントの有効化
SNMP を使用して Java VM を監視するには、Java VM の始動時にまず SNMP エージェントを有効にする必要があります。シングルユーザー環境またはマルチユーザー環境のいずれかの SNMP エージェントを有効にすることができます。以後、Java VM は SNMP 準拠のツールを使用して監視することができます。
Java VM 起動時のシステムプロパティーの設定に関する一般的な情報については、第 2 章「JMX テクノロジを使用する監視と管理」の「システムプロパティーの設定」を参照してください。後半では、シングルユーザー環境やマルチユーザー環境において SNMP エージェントを有効にする方法について説明します。プロセスは、いずれの環境でも同一ですが、実行するアクションはわずかに異なります。
アクセスコントロールリストファイル
アクセスコントロールリスト (ACL) テンプレートファイルは、Java Platform, Standard Edition (Java SE プラットフォーム) と一緒に提供され、JRE_HOME/lib/management/snmp.acl.template にあります。ここで、JRE_HOME は、Java Runtime Environment (JRE) 実装がインストールされているディレクトリです。このファイルは、シングルユーザー環境か、マルチユーザー環境かに応じて JRE_HOME/lib/management/snmp.acl またはホームディレクトリのいずれかにコピーします。読み取り権のみが割り当てられていることを確認してください。これは、このファイルに暗号化されていない SNMP コミュニティー文字列が含まれているためです。セキュリティー上の理由から、システムでは、所有者のみがこのファイルに対する読み取り権を所持していることを確認し、この条件が満たされない場合はエラーでシステムが終了します。したがって、マルチユーザー環境では、このファイルをホームディレクトリなどの非公開の場所に保存する必要があります。
例 5-1 では、ACL ファイルに存在する可能性のあるエントリの一部を示します。
例 5-1 サンプルの ACL エントリ#The communities public and private are allowed access from the local host. acl = { { communities = public, private access = read-only managers = localhost } } # Traps are sent to localhost only trap = { { trap-community = public hosts = localhost } }
シングルユーザー環境において SNMP エージェントを有効にする方法
- Java VM の起動時に、次のシステムプロパティーを設定します。
com.sun.management.snmp.port=portNum
上のプロパティーで、portNum は、監視に使用するポート番号を表します。このプロパティーの設定を行うことにより、着信 SNMP 要求の指定のポート番号上で待機する SNMP エージェントを開始します。
- ACL ファイルを作成します。
ACL テンプレートファイルを JRE_HOME/lib/management/snmp.acl.template から JRE_HOME/lib/management/snmp.acl にコピーします。
- ACL ファイルにアクセス権を設定します。
所有者だけが ACL ファイルを読み取ることができることを確認し、必要に応じてコミュニティー文字列を追加します。
マルチユーザー環境において SNMP エージェントを有効にする方法
- Java VM の起動時に、次のシステムプロパティーを設定します。
com.sun.management.snmp.port=portNum com.sun.management.snmp.acl.file=ACLFilePath
ここで ACLFilePath は、ACL ファイルへのパスを表します。
- ACL ファイルを作成します。
ACL テンプレートファイルを JRE_HOME/lib/management/snmp.acl.template からホームディレクトリ内の snmp.acl という名前のファイルにコピーします。
- ACL ファイルにアクセス権を設定します。
所有者だけが ACL ファイルを読み取ることができることを確認し、必要に応じてコミュニティー文字列を追加します。
SNMP 監視と管理のプロパティー
構成ファイルまたはコマンド行のいずれかにおいて SNMP の監視プロパティーと管理プロパティーの設定を行うことができます。コマンド行で指定したプロパティーにより、構成ファイル内のプロパティーをオーバーライドします。構成ファイルのデフォルトの場所は、JRE_HOME/lib/management/management.properties です。Java VM では、コマンド行のプロパティー com.sun.management.snmp.port の設定を行う場合はこの構成ファイルを読み込みます。
次のコマンド行オプションで、構成ファイルの別の位置を指定できます。
com.sun.management.config.file=ConfigFilePath
上のプロパティーでは、ConfigFilePath が構成ファイルへのパスです。
Java VM を始動させる際には、すべてのシステムプロパティーを指定する必要があります。Java VM が起動したあとは、システムプロパティー (たとえば、setProperty メソッド経由)、パスワードファイル、ACL ファイル、または構成ファイルへのどのような変更も反映されません。
表 5-1 にすべての SNMP 管理プロパティーを示します。
表 5-1 SNMP 監視と管理のプロパティー
プロパティー名 |
説明 |
デフォルト |
---|---|---|
com.sun.management.snmp.trap |
SNMP エージェントがトラップを送信するリモートポート。 |
162 |
com.sun.management.snmp. interface |
省略可能。ローカルホスト InetAddress は、所定の InetAddress に対するバインドを SNMP エージェントに強制します。特定のサブネットのみを待機する場合、これはマルチホームホスト用となります。 |
なし |
com.sun.management.snmp.acl |
SNMP ACL のチェックを有効または無効にします。 |
true |
com.sun.management.snmp. acl.file |
有効な ACL ファイルへのパス。Java VM が起動したあとは、ACL ファイルを修正しても効果は得られません。 |
JRE_HOME/lib/management/snmp.acl |
構成エラー
SNMP エージェントの起動中に何らかのエラーが発生する場合、Java VM は、例外をスローして終了します。構成エラーには、次のようなものがあります。
-
ポート番号に対するバインドの失敗。
-
所有者以外のユーザーがパスワードファイルを読み取ることができる。
-
無効な SNMP ACL ファイル。
アプリケーションでセキュリティーマネージャーを実行する場合、セキュリティーアクセス権ファイルに追加のアクセス権を登録する必要があります。