jstatd(1) モニタリング・ツール jstatd(1)

# 名前

jstatd - Java仮想マシン(JVM)をモニターし、リモート・モニタリング・ツールがJVMに接続できるようにします。このコマンドは試験的なもので、サポートされていません。

# 概要

```
jstatd [ options ]
```

*options*

コマンド行オプション。オプションを参照してください。

# 説明

**jstatd**コマンドは、計測されたJava HotSpot VMの作成と終了をモニターし、ローカル・システム上で実行されているJVMに、リモート・モニタリング・ツールが接続できるようにするためのインタフェースを提供するRMIサーバー・アプリケーションです。

**jstatd**サーバーでは、ローカル・ホストにRMIレジストリが必要になります。**jstatd**サーバーはデフォルト・ポートで、または**-p** **port**オプションで指定したポートで、RMIレジストリに接続しようとします。RMIレジストリが見つからない場合、**-p** **port**オプションで指定されたポート、または**-p** **port**オプションが省略されている場合は、デフォルトRMIレジストリにバインドされた**jstatd**アプリケーション内に、1つのRMIレジストリが作成されます。内部RMIレジストリの作成は、**-nr**オプションを指定することによって中止できます。

# オプション

-nr

既存のRMIレジストリが見つからない場合、**jstatd**プロセス内に内部RMIレジストリを作成しないようにします。

-p *port*

RMIレジストリがあると予想されるポート番号です。見つからない場合は、**-nr**オプションが指定されていなければ作成されます。

-n *rminame*

RMIレジストリにおいて、リモートRMIオブジェクトがバインドされる名前です。デフォルト名は**JStatRemoteHost**です。複数の**jstatd**サーバーが同じホスト上で起動している場合、各サーバーのエクスポートしたRMIオブジェクトの名前は、このオプションを指定することによって、一意の名前にすることができます。ただし、このオプションを使用する場合、モニタリング・クライアントの**hostid**および**vmid**文字列に、その一意のサーバー名を含める必要があります。

-J*option*

JVMに**option**を渡します。optionには、Javaアプリケーション起動ツールのリファレンス・ページに記載されている**オプション**を1つ指定します。たとえば、**-J-Xms48m**と指定すると、スタートアップ・メモリーは48MBに設定されます。[java(1)](/man/enterprise-packages/corretto-8/java.1)を参照してください。

# セキュリティ

**jstatd**サーバーは、適切なネイティブ・アクセス権を持つJVMのみをモニターできます。したがって、**jstatd**プロセスは、ターゲットJVMと同じユーザー資格証明で実行されている必要があります。Solaris、LinuxおよびOS Xオペレーティング・システムにおけるrootユーザーなどの一部のユーザー資格証明は、システム上の任意のJVMによってエクスポートされたインストゥルメンテーションへのアクセス権を持っています。このような資格証明で実行されている**jstatd**プロセスは、システム上のすべてのJVMをモニターできますが、セキュリティ上の別の問題が起こります。

**jstatd**サーバーには、リモート・クライアントの認証機能がありません。そのため、**jstatd**サーバー・プロセスを実行すると、**jstatd**プロセスがアクセス権を持つすべてのJVMによるインストゥルメンテーションのエクスポートを、ネットワーク上のすべてのユーザーに公開することになります。この無防備な状態は、環境によっては望ましくない場合があるので、特に本番環境またはセキュアでないネットワークでは、**jstatd**プロセスを起動する前に、ローカル・セキュリティ・ポリシーを検討する必要があります。

**jstatd**サーバーは、他のセキュリティ・マネージャがインストールされていない場合には、**RMISecurityPolicy**のインスタンスをインストールします。そのため、セキュリティ・ポリシー・ファイルを指定する必要があります。ポリシー・ファイルは、http://docs.oracle.com/javase/8/docs/technotes/guides/security/PolicyFiles.htmlにある 「デフォルトのPolicyの実装とポリシー・ファイルの構文」に準拠している必要があります

次のポリシー・ファイルでは、セキュリティ例外を発生せずに**jstatd**サーバーを実行できます。このポリシーは、すべてのコード・ベースへのあらゆるアクセス権を認めるポリシーよりも自由度が低いですが、**jstatd**サーバーを実行するために最低限必要なアクセス権のみを認めるポリシーよりも自由度が高くなっています。

```
grant codebase "file:${java.home}/../lib/tools.jar" {   
    permission java.security.AllPermission;
};


 
```

このポリシー設定を使用するには、このテキストを**jstatd.all.policy**というファイルにコピーし、次のように**jstatd**サーバーを実行します。

```
jstatd -J-Djava.security.policy=jstatd.all.policy


 
```

より厳しいセキュリティを実施するサイトの場合、カスタム・ポリシー・ファイルを使用して、特定の信頼できるホストまたはネットワークにアクセスを制限することができます。ただし、このような方法は、IPアドレスの盗聴攻撃を受けやすくなります。セキュリティの問題について、カスタマイズしたポリシー・ファイルでも対処できない場合は、**jstatd**サーバーを実行せずに、**jstat**と**jps**ツールをローカルで使用することが最も安全な方法になります。

# リモート・インタフェース

**jstatd**プロセスがエクスポートするインタフェースは、独自に開発したものであり変更される予定です。ユーザーおよび開発者は、このインタフェースへの書込みを行わないでください。

# 例

次に、**jstatd**コマンドの例を示します。**jstatd**スクリプトによって、サーバーはバックグラウンドで自動的に起動します。

## 内部RMIレジストリ

この例は、内部RMIレジストリを使用した**jstatd**セッションの起動方法を表しています。この例では、デフォルトのRMIレジストリ・ポート(ポート1099)には、他のサーバーはバインドされていないと想定しています。

```
jstatd -J-Djava.security.policy=all.policy


 
```

## 外部RMIレジストリ

この例は、外部RMIレジストリを使用した**jstatd**セッションの起動を表しています。

```
rmiregistry&
jstatd -J-Djava.security.policy=all.policy


 
```

この例では、ポート2020の外部RMIレジストリを使用して**jstatd**セッションを起動します。

```
jrmiregistry 2020&
jstatd -J-Djava.security.policy=all.policy -p 2020


 
```

この例では、ポート2020の外部RMIレジストリを使用して、**AlternateJstatdServerName**にバインドされている**jstatd**セッションを起動します。

```
rmiregistry 2020&
jstatd -J-Djava.security.policy=all.policy -p 2020
    -n AlternateJstatdServerName


 
```

## インプロセスRMIレジストリの作成の停止

この例では、外部RMIレジストリがない場合に作成しない**jstatd**セッションを起動します。この例では、RMIレジストリがすでに実行されていると想定しています。RMIレジストリが実行されていない場合、エラー・メッセージが表示されます。

```
jstatd -J-Djava.security.policy=all.policy -nr


 
```

## [RMIロギングの有効化](#RMI)

この例では、RMIロギング機能を有効化して**jstatd**セッションを起動します。この方法は、トラブルシューティングまたはサーバー活動のモニタリングに役立ちます。

```
jstatd -J-Djava.security.policy=all.policy
    -J-Djava.rmi.server.logCalls=true


 
```

# 関連項目

•[java(1)](/man/enterprise-packages/corretto-8/java.1)

•[jps(1)](/man/enterprise-packages/corretto-8/jps.1)

•[jstat(1)](/man/enterprise-packages/corretto-8/jstat.1)

•[rmiregistry(1)](/man/enterprise-packages/corretto-8/rmiregistry.1)

2013年11月21日 JDK 8

---

Document: jstatd(1) from corretto-8 8.504.05.1-r2 (Chainguard OS)
Source: https://github.com/corretto/corretto-8
