名前
jstatd - 計測されたJava HotSpot VMの作成と終了のモニター
シノプシス
ノート: このコマンドは実験的なものであり、サポートされていません。
jstatd
[options]
- options
-
これは、
jstatd
コマンドライン・オプションを表します。 「jstatdコマンドのオプション」を参照してください。
説明
jstatd
コマンドは、計測されたJava HotSpot VMの作成および終了をモニターするRMIサーバー・アプリケーションであり、リモート・モニタリング・ツールjstat
およびjps
を有効にして、ローカル・ホストで実行されているJVMに接続し、JVMプロセスに関する情報を収集するためのインタフェースを提供します。
jstatd
サーバーには、ローカル・ホスト上のRMIレジストリが必要です。 jstatd
サーバーは、デフォルト・ポートまたは-p
port
オプションで指定したポート上のRMIレジストリに接続しようとします。 RMIレジストリが見つからない場合は、-p
port
オプションを省略すると、-p
port
オプションまたはデフォルトのRMIレジストリ・ポートにバインドされたjstatd
アプリケーション内に作成されます。 内部RMIレジストリの作成は、-nr
オプションを指定することによって停止できます。
jstatdコマンドのオプション
-nr
-
このオプションは、既存のRMIレジストリが見つからない場合に、
jstatd
プロセス内に内部RMIレジストリを作成しようとしません。 -p
port-
このオプションは、
-nr
オプションが指定されていない場合に、RMIレジストリが検出される予定のポート番号、または見つからない場合に作成されるポート番号を設定します。 -r
rmiport- このオプションは、RMIコネクタがバインドされるポート番号を設定します。 指定しない場合、使用可能なランダムなポートが使用されます。
-n
rminame-
このオプションは、RMIレジストリにおいて、リモートRMIオブジェクトがバインドされる名前を設定します。 デフォルト名は
JStatRemoteHost
です。 複数のjstatd
サーバーが同じホスト上で起動している場合、各サーバーのエクスポートしたRMIオブジェクトの名前は、このオプションを指定することによって、一意の名前にすることができます。 ただし、そのようにする場合は、モニタリング・クライアントのhostid
およびvmid
文字列にその一意のサーバー名を含める必要があります。 -J
option-
このオプションは、Java
option
をJVMに渡します。ここで、Javaアプリケーション・ランチャの参照ページで説明されているオプションのいずれかです。 たとえば、-J-Xms48m
と指定すると、スタートアップ・メモリーは48Mバイトに設定されます。 javaを参照してください。
セキュリティ
jstatd
サーバーでは、適切なネイティブ・アクセス権限があるJVMのみをモニターできます。 したがって、jstatd
プロセスは、ターゲットJVMと同じユーザー資格で実行されている必要があります。 LinuxおよびOS Xオペレーティング・システムのrootユーザーなどの一部のユーザー資格証明には、システム上の任意のJVMによってエクスポートされたインストゥルメンテーションにアクセスする権限があります。 このような資格で実行されているjstatd
プロセスは、システム上のすべてのJVMをモニターできますが、セキュリティ上の別の問題が起こります。
jstatd
サーバーは、リモート・クライアントの認証を提供しません。 そのため、jstatd
サーバー・プロセスを実行すると、jstatd
プロセスがアクセス権を持つすべてのJVMによるインストゥルメンテーションのエクスポートを、ネットワーク上のすべてのユーザーに公開することになります。 この露出は、環境では望ましくない場合があるため、jstatd
プロセスを開始する前に、特に本番環境またはセキュアでないネットワークでローカル・セキュリティ・ポリシーを考慮する必要があります。
セキュリティ上の理由から、jstatd
サーバーはRMI ObjectInputFilterを使用して、必須クラスのみを直列化復元できるようにします。
セキュリティ上の懸念に対処できない場合、最も安全なアクションは、jstatd
サーバーを実行せず、jstat
およびjps
ツールをローカルで使用することです。 ただし、jps
を使用してインストゥルメントされたJVMのリストを取得する場合、このリストにはdockerコンテナで実行されているJVMは含まれません。
リモート・インタフェース
jstatd
プロセスがエクスポートするインタフェースは、独自に開発したものであり変更される予定です。 ユーザーおよび開発者は、このインタフェースへの書込みを行わないでください。
例
jstatd
コマンドの例を次に示します。 jstatd
スクリプトによって、サーバーはバックグラウンドで自動的に起動します
内部RMIレジストリ
この例は、内部RMIレジストリを使ってjstatd
セッションを開始する方法を示しています。 この例では、デフォルトのRMIレジストリ・ポート(ポート1099
)に他のサーバーがバインドされていないことを前提としています。
jstatd
外部RMIレジストリ
この例では、外部RMIレジストリを使用してjstatd
セッションを開始します。
rmiregistry&
jstatd
この例では、ポート2020
の外部RMIレジストリ・サーバーとのjstatd
セッションを開始します。
jrmiregistry 2020&
jstatd -p 2020
この例では、ポート2020
上の外部RMIレジストリ・サーバーと、ポート2021
にバインドされたJMXコネクタとのjstatd
セッションを開始します。
jrmiregistry 2020&
jstatd -p 2020 -r 2021
この例では、AlternateJstatdServerName
にバインドされているポート2020の外部RMIレジストリを使用して、jstatd
セッションを開始します。
rmiregistry 2020&
jstatd -p 2020 -n AlternateJstatdServerName
インプロセスRMIレジストリの作成の停止
この例では、RMIレジストリが見つからない場合に、RMIレジストリを作成しないjstatd
セッションを開始します。 この例では、RMIレジストリがすでに実行していると想定しています。 RMIレジストリが実行されていない場合は、エラー・メッセージが表示されます。
jstatd -nr
RMIロギングの有効化
この例では、RMIロギング機能を有効にしてjstatd
セッションを開始しています。 この方法は、トラブルシューティングまたはサーバー活動のモニタリングに役立ちます。
jstatd -J-Djava.rmi.server.logCalls=true