SNMPモニタリングと管理
Simple Network Management Protocol (SNMP)は、ネットワーク管理の業界標準に位置付けられます。SNMPで管理されるオブジェクトは、管理情報ベース(MIB)に配置されます。SNMPエージェントは、Java仮想マシン(Java VM)のインストゥルメンテーション用として標準のMIBを公開しています。JVM-MANAGEMENT-MIB.mib
ファイルは、Java VMのモニタリングおよび管理用の標準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ファイル。
アプリケーションでセキュリティ・マネージャを実行する場合、セキュリティ・アクセス権ファイルに追加のアクセス権を登録する必要があります。