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