1 '\" t 2 .\" Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. 3 .\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 .\" 5 .\" This code is free software; you can redistribute it and/or modify it 6 .\" under the terms of the GNU General Public License version 2 only, as 7 .\" published by the Free Software Foundation. 8 .\" 9 .\" This code is distributed in the hope that it will be useful, but WITHOUT 10 .\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 .\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 .\" version 2 for more details (a copy is included in the LICENSE file that 13 .\" accompanied this code). 14 .\" 15 .\" You should have received a copy of the GNU General Public License version 16 .\" 2 along with this work; if not, write to the Free Software Foundation, 17 .\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 .\" 19 .\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 .\" or visit www.oracle.com if you need additional information or have any 21 .\" questions. 22 .\" 23 .TH jstatd 1 "05 Jul 2012" 24 .SH 名前 25 jstatd \- 仮想マシン jstat デーモン 26 .\" 27 .SH 形式 28 .B jstatd 29 .BI [ options ] 30 .SH パラメータ 31 .if t .TP 20 32 .if n .TP 15 33 .BI options 34 コマンド行オプション。オプションは任意の順序で指定できます。冗長または矛盾するオプションがあった場合は、最後に指定されたオプションが優先されます。 35 .SH 機能説明 36 .B jstatd 37 ツールは、計測機構付き HotSpot Java 仮想マシン (JVM) の作成と終了を監視する RMI サーバーアプリケーションであり、リモート監視ツールがローカルホスト上で実行している JVM にアタッチするためのインタフェースを備えています。 38 .LP 39 jstatd サーバーが機能するためには、ローカルホスト上に RMI レジストリが存在する必要があります。jstatd サーバーは、デフォルトポートまたは 40 .BI \-p " port" 41 オプションによって示されたポート上の RMI レジストリへのアタッチを試みます。RMI レジストリが見つからなかった場合は、 42 .BI \-p " port" 43 オプションによって示されたポートにバインドされた jstatd アプリケーション内で作成され、 44 .BI \-p " port" 45 が省かれた場合はデフォルトの RMI レジストリにバインドされた jstatd アプリケーション内で作成されます。内部 RMI レジストリの作成は、 46 .B \-nr 47 オプションを指定することによって禁止できます。 48 .LP 49 注 - このユーティリティはサポートされていないため、JDK の将来のバージョンでは使用できない可能性があります。現時点では、Windows 98 および Windows ME プラットフォームでは使用できません。 50 .SH オプション 51 .B jstatd 52 コマンドは、以下のオプションをサポートします。 53 .if t .TP 20 54 .if n .TP 15 55 .BI \-nr 56 既存の RMI レジストリが見つからないときに、 57 .B jstatd 58 プロセス内での内部 RMI レジストリの作成を試みません。 59 .if t .TP 20 60 .if n .TP 15 61 .BI \-p " port" 62 RMI レジストリを探すポート番号。または、RMI レジストリが見つからず、 63 .B \-nr 64 が指定されなかった場合に、RMI レジストリが作成されるポート番号。 65 .if t .TP 20 66 .if n .TP 15 67 .BI \-n " rminame" 68 RMI レジストリでリモート RMI オブジェクトがバインドされる名前。デフォルトの名前は、JStatRemoteHost です。同じホスト上で複数の 69 .B jstatd 70 サーバーが起動している場合、各サーバーのエクスポート RMI オブジェクトの名前を一意にするには、このオプションを指定します。ただし、そのためには、監視クライアントの hostid および vmid 文字列に一意のサーバー名が含まれている必要があります。 71 .if t .TP 20 72 .if n .TP 15 73 .BI \-J option 74 .I option 75 を 76 .B javac 77 によって呼び出された java 起動ツールに渡します。たとえば、 78 .B \-J-Xms48m 79 は、起動メモリを 48M バイトに設定します。Java で作成された下層の VM 実行アプリケーションにオプションを渡すのが、 80 .B \-J 81 の一般的規則です。 82 .SH セキュリティ 83 84 .B jstatd 85 サーバーは、適切なネイティブアクセス権を持っている JVM だけを監視できます。 86 このため、jstatd プロセスは、ターゲット JVM と同じユーザー資格で実行している必要があります。 87 UNIX(TM) ベースのシステムの root ユーザーなど、一部のユーザー資格には、 88 そのシステム上の任意の JVM によってエクスポートされた計測機構への 89 アクセス権が割り当てられています。 90 このような資格で実行中の jstatd プロセスは、そのシステム上の任意の JVM を監視できますが、 91 これに伴うセキュリティ上の問題も考慮する必要があります。 92 .LP 93 jstatd サーバーは、リモートクライアントの認証は行いません。 94 つまり、jstatd サーバープロセスを実行すると、 95 jstatd プロセスがアクセス権を持つすべての JVM から 96 エクスポートされる計測機構が、ネットワーク上の任意のユーザーに公開されます。 97 計測機構が公開されると、環境によっては望ましくない場合があります。 98 特に運用環境や安全性の低いネットワークでは、 99 jstatd プロセスを開始する前に 100 ローカルセキュリティポリシーを検討する必要があります。 101 .LP 102 .B jstatd 103 サーバーは、他にセキュリティマネージャがインストールされていない場合は、RMISecurityPolicy のインスタンスをインストールするので、セキュリティポリシーファイルを指定する必要があります。 104 ポリシーファイルは、デフォルトのポリシー実装のポリシーファイル構文 105 .fi 106 (http://docs.oracle.com/javase/6/docs/technotes/guides/security/PolicyFiles.html) 107 に従う必要があります。 108 .LP 109 次のポリシーファイルでは、 110 .B jstatd 111 サーバーはセキュリティ例外を起こさずに実行できます。このポリシーは、 112 すべてのコードベースへのすべてのアクセス権を許可するよりは自由度が低いですが、 113 .B jstatd 114 サーバーの実行に必要な最小限度のアクセス権を許可するポリシーよりは自由度が高いです。 115 .LP 116 .RS 117 .ft 3 118 .nf 119 grant codebase "file:${java.home}/../lib/tools.jar" { 120 permission java.security.AllPermission; 121 }; 122 .fi 123 .ft 1 124 .RE 125 .LP 126 このポリシーを使用するには、テキストを jstatd.all.policy という名前のファイルにコピーしたあと、次のようにして 127 .B jstatd 128 サーバーを実行します。 129 .LP 130 .RS 131 .ft 3 132 .nf 133 jstatd -J-Djava.security.policy=jstatd.all.policy 134 .fi 135 .ft 1 136 .RE 137 .LP 138 より厳格なセキュリティを採用しているサイトでは、 139 カスタムポリシーファイルを使用して、特定の信頼できるホストまたはネットワークに 140 アクセスを制限できます。ただし、この方法を使用しても、 141 IP アドレスのスプーフィング攻撃にさらされます。 142 カスタムポリシーファイルを使用することでセキュリティの問題に対応できない場合には、 143 jstatd サーバーを実行せずに、 144 jstat および jps ツールをローカルで使用するのが最も安全です。 145 .SH リモートインタフェース 146 .B jstatd 147 プロセスによってエクスポートされるインタフェースはプロプライエタリであり、変更が保証されています。ユーザーおよび開発者は、このインタフェースに書き込まないようにしてください。 148 .SH 使用例 149 .B jstatd 150 の起動例をいくつか示します。これらの 151 .B jstatd 152 スクリプトは、バックグラウンドで自動的にサーバーを起動します。 153 .SS 内部 RMI レジストリの使用 154 この例は、内部 RMI レジストリを使用した 155 .B jstatd 156 の起動を示しています。この例では、他のサーバーがデフォルトの RMI レジストリポート (ポート 1099) にバインドされていないことを前提としています。 157 .LP 158 .RS 159 .ft 3 160 .nf 161 jstatd -J-Djava.security.policy=all.policy 162 .fi 163 .ft 1 164 .RE 165 .SS 外部 RMI レジストリの使用 166 この例は、外部 RMI レジストリを使用した 167 .B jstatd 168 の起動を示しています。 169 .LP 170 .RS 171 .ft 3 172 .nf 173 rmiregistry& 174 jstatd -J-Djava.security.policy=all.policy 175 .fi 176 .ft 1 177 .RE 178 .LP 179 この例は、ポート 2020 上の外部 RMI レジストリサーバーを使用した 180 .B jstatd 181 の起動を示しています。 182 .LP 183 .RS 184 .ft 3 185 .nf 186 rmiregistry 2020& 187 jstatd -J-Djava.security.policy=all.policy -p 2020 188 .fi 189 .ft 1 190 .RE 191 .LP 192 この例は、ポート 2020 上の、AlternateJstatdServerName という名前にバインドされた外部 RMI レジストリを使用した 193 .B jstatd 194 の起動を示しています。 195 .LP 196 .RS 197 .ft 3 198 .nf 199 rmiregistry 2020& 200 jstatd -J-Djava.security.policy=all.policy -p 2020 -n AlternateJstatdServerName 201 .fi 202 .ft 1 203 .RE 204 .SS プロセス内 RMI レジストリの作成の禁止 205 この例は、RMI レジストリが見つからない場合も RMI レジストリを作成しないように 206 .B jstatd 207 を起動する例を示しています。この例では、RMI がすでに実行していることを前提としています。実行していなかった場合は、適切なエラーメッセージが表示されます。 208 .LP 209 .RS 210 .ft 3 211 .nf 212 jstatd -J-Djava.security.policy=all.policy -nr 213 .fi 214 .ft 1 215 .RE 216 .SS RMI ロギング機能の有効化 217 この例は、RMI ロギング機能を有効にして 218 .B jstatd 219 を起動する例を示しています。この方法は、障害追跡やサーバー活動の監視に役立ちます。 220 .LP 221 .RS 222 .ft 3 223 .nf 224 jstatd -J-Djava.security.policy=all.policy -J-Djava.rmi.server.logCalls=true 225 .fi 226 .ft 1 227 .RE 228 .LP 229 .SH 関連項目 230 .LP 231 .RS 3 232 .TP 2 233 * 234 java \- Java アプリケーション起動プログラム 235 .TP 2 236 * 237 jps \- Java 仮想マシンプロセスステータスツール 238 .TP 2 239 * 240 jstat \- Java 仮想マシン統計監視ツール 241 .TP 2 242 * 243 rmiregistry \- Java リモートオブジェクトレジストリ 244 .RE 245 246 .LP 247 248 .LP 249