'\" t .\" Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. .\" Title: jstatd .\" Language: English .\" Date: 2013年11月21日 .\" SectDesc: モニタリング・ツール .\" Software: JDK 8 .\" Arch: 汎用 .\" .pl 99999 .TH "jstatd" "1" "2013年11月21日" "JDK 8" "モニタリング・ツール" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" jstatd \- Java仮想マシン(JVM)をモニターし、リモート・モニタリング・ツールがJVMに接続できるようにします。このコマンドは試験的なもので、サポートされていません。 .SH "概要" .sp .if n \{\ .RS 4 .\} .nf \fIjstatd\fR [ \fIoptions\fR ] .fi .if n \{\ .RE .\} .PP \fIoptions\fR .RS 4 コマンドライン・オプション。オプションを参照してください。 .RE .SH "説明" .PP \fIjstatd\fRコマンドは、計測されたJava HotSpot VMの作成と終了をモニターし、ローカル・システム上で実行されているJVMに、リモート・モニタリング・ツールが接続できるようにするためのインタフェースを提供するRMIサーバー・アプリケーションです。 .PP \fIjstatd\fRサーバーでは、ローカル・ホストにRMIレジストリが必要になります。\fIjstatd\fRサーバーはデフォルト・ポートで、または\fI\-p\fR \fIport\fRオプションで指定したポートで、RMIレジストリに接続しようとします。RMIレジストリが見つからない場合、\fI\-p\fR \fIport\fRオプションで指定されたポート、または\fI\-p\fR \fIport\fRオプションが省略されている場合は、デフォルトRMIレジストリにバインドされた\fIjstatd\fRアプリケーション内に、1つのRMIレジストリが作成されます。内部RMIレジストリの作成は、\fI\-nr\fRオプションを指定することによって中止できます。 .SH "オプション" .PP \-nr .RS 4 既存のRMIレジストリが見つからない場合、\fIjstatd\fRプロセス内に内部RMIレジストリを作成しないようにします。 .RE .PP \-p \fIport\fR .RS 4 RMIレジストリがあると予想されるポート番号です。見つからない場合は、\fI\-nr\fRオプションが指定されていなければ作成されます。 .RE .PP \-n \fIrminame\fR .RS 4 RMIレジストリにおいて、リモートRMIオブジェクトがバインドされる名前です。デフォルト名は\fIJStatRemoteHost\fRです。複数の\fIjstatd\fRサーバーが同じホスト上で起動している場合、各サーバーのエクスポートしたRMIオブジェクトの名前は、このオプションを指定することによって、一意の名前にすることができます。ただし、このオプションを使用する場合、モニタリング・クライアントの\fIhostid\fRおよび\fIvmid\fR文字列に、その一意のサーバー名を含める必要があります。 .RE .PP \-J\fIoption\fR .RS 4 JVMに\fIoption\fRを渡します。optionには、Javaアプリケーション起動ツールのリファレンス・ページに記載されている\fIオプション\fRを1つ指定します。たとえば、\fI\-J\-Xms48m\fRと指定すると、スタートアップ・メモリーは48MBに設定されます。java(1)を参照してください。 .RE .SH "セキュリティ" .PP \fIjstatd\fRサーバーは、適切なネイティブ・アクセス権を持つJVMのみを監視できます。したがって、\fIjstatd\fRプロセスは、ターゲットJVMと同じユーザー資格で実行されている必要があります。UNIXベースのシステムにおけるrootユーザーなどの一部のユーザー資格は、システム上の任意のJVMによってエクスポートされたインストゥルメンテーションへのアクセス権を持っています。このような資格で実行されている\fIjstatd\fRプロセスは、システム上のすべてのJVMを監視できますが、セキュリティ上の別の問題が起こります。 .PP \fIjstatd\fRサーバーには、リモート・クライアントの認証機能がありません。そのため、\fIjstatd\fRサーバー・プロセスを実行すると、\fIjstatd\fRプロセスがアクセス権を持つすべてのJVMによるインストゥルメンテーションのエクスポートを、ネットワーク上のすべてのユーザーに公開することになります。この無防備な状態は、環境によっては望ましくない場合があるので、特に実稼働環境または安全でないネットワークでは、\fIjstatd\fRプロセスを起動する前に、ローカル・セキュリティ・ポリシーを検討する必要があります。 .PP \fIjstatd\fRサーバーは、他のセキュリティ・マネージャがインストールされていない場合には、\fIRMISecurityPolicy\fRのインスタンスをインストールします。そのため、セキュリティ・ポリシー・ファイルを指定する必要があります。ポリシー・ファイルは、http://docs\&.oracle\&.com/javase/8/docs/technotes/guides/security/PolicyFiles\&.htmlにある 「デフォルトのPolicyの実装とポリシー・ファイルの構文」に準拠している必要があります .PP 次のポリシー・ファイルでは、セキュリティ例外を発生せずに\fIjstatd\fRサーバーを実行できます。このポリシーは、すべてのコード・ベースへのあらゆるアクセス権を認めるポリシーよりも自由度が低いですが、\fIjstatd\fRサーバーを実行するために最低限必要なアクセス権のみを認めるポリシーよりも自由度が高くなっています。 .sp .if n \{\ .RS 4 .\} .nf grant codebase "file:${java\&.home}/\&.\&./lib/tools\&.jar" { permission java\&.security\&.AllPermission; }; .fi .if n \{\ .RE .\} .PP このポリシー設定を使用するには、このテキストを\fIjstatd\&.all\&.policy\fRというファイルにコピーし、次のように\fIjstatd\fRサーバーを実行します。 .sp .if n \{\ .RS 4 .\} .nf jstatd \-J\-Djava\&.security\&.policy=jstatd\&.all\&.policy .fi .if n \{\ .RE .\} .PP より厳しいセキュリティを実施するサイトの場合、カスタム・ポリシー・ファイルを使用して、特定の信頼できるホストまたはネットワークにアクセスを制限することができます。ただし、このような方法は、IPアドレスの盗聴攻撃を受けやすくなります。セキュリティの問題について、カスタマイズしたポリシー・ファイルでも対処できない場合は、\fIjstatd\fRサーバーを実行せずに、\fIjstat\fRと\fIjps\fRツールをローカルで使用することが最も安全な方法になります。 .SH "リモート・インタフェース" .PP \fIjstatd\fRプロセスがエクスポートするインタフェースは、独自に開発したものであり変更される予定です。ユーザーおよび開発者は、このインタフェースへの書込みを行わないでください。 .SH "例" .PP 次に、\fIjstatd\fRコマンドの例を示します。\fIjstatd\fRスクリプトによって、サーバーはバックグラウンドで自動的に起動します。 .SS "内部RMIレジストリ" .PP この例は、内部RMIレジストリを使用したホストによる\fIjstatd\fRセッションの起動を表しています。この例では、デフォルトのRMIレジストリ・ポート(ポート1099)には、他のサーバーはバインドされていないと想定しています。 .sp .if n \{\ .RS 4 .\} .nf jstatd \-J\-Djava\&.security\&.policy=all\&.policy .fi .if n \{\ .RE .\} .SS "外部RMIレジストリ" .PP この例は、外部RMIレジストリを使用した\fIjstatd\fRセッションの起動を表しています。 .sp .if n \{\ .RS 4 .\} .nf rmiregistry& jstatd \-J\-Djava\&.security\&.policy=all\&.policy .fi .if n \{\ .RE .\} .PP この例では、ポート2020の外部RMIレジストリを使用して\fIjstatd\fRセッションを起動します。 .sp .if n \{\ .RS 4 .\} .nf jrmiregistry 2020& jstatd \-J\-Djava\&.security\&.policy=all\&.policy \-p 2020 .fi .if n \{\ .RE .\} .PP この例では、ポート2020の外部RMIレジストリを使用して、\fIAlternateJstatdServerName\fRにバインドされている\fIjstatd\fRセッションを起動します。 .sp .if n \{\ .RS 4 .\} .nf rmiregistry 2020& jstatd \-J\-Djava\&.security\&.policy=all\&.policy \-p 2020 \-n AlternateJstatdServerName .fi .if n \{\ .RE .\} .SS "インプロセスRMIレジストリの作成の停止" .PP この例では、外部RMIレジストリがない場合に作成しない\fIjstatd\fRセッションを起動します。この例では、RMIレジストリがすでに実行されていると想定しています。RMIレジストリが実行されていない場合、エラー・メッセージが表示されます。 .sp .if n \{\ .RS 4 .\} .nf jstatd \-J\-Djava\&.security\&.policy=all\&.policy \-nr .fi .if n \{\ .RE .\} .SS "RMIロギングの有効化" .PP この例では、RMIロギング機能を有効化して\fIjstatd\fRセッションを起動します。この方法は、トラブルシューティングまたはサーバー活動のモニタリングに役立ちます。 .sp .if n \{\ .RS 4 .\} .nf jstatd \-J\-Djava\&.security\&.policy=all\&.policy \-J\-Djava\&.rmi\&.server\&.logCalls=true .fi .if n \{\ .RE .\} .SH "関連項目" .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} java(1) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} jps(1) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} jstat(1) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} rmiregistry(1) .RE .br 'pl 8.5i 'bp