3.8. リモート Fuse アプリケーションへの接続

Fuse Console は Jolokia を使用します。Jolokia は、クライアントに追加のソフトウェア (エージェント) をインストールする必要がある Java Management Extensions (JMX) にエージェントベースで対応します。Red Hat Fuse には jolokia エージェントがデフォルトで含まれています。

スタンドアロン Fuse Console ディストリビューションでは、内部ですでに jolokia エージェント (https://jolokia.org/) が実行されているリモートインテグレーションに接続することができます。接続するプロセス内に jolokia エージェントがない場合は、jolokia のドキュメント (http://jolokia.org/agent.html) を参照してください。

3.8.1. Fuse Console のアンロック

デフォルトでは、Apache Karaf 上の Fuse 7 スタンドアロンの Jolokia はロックされ、Fuse Console はリモートでアクセスできません。

locahost127.0.0.1 以外のホスト名や IP アドレスの Fuse Console をアンロックするには、以下の手順にしたがいます。

  1. エディターで $KARAF_HOME/etc/jolokia-access.xml ファイルを開きます。
  2. Fuse Console でアクセスする Fuse インテグレーションのホスト名または IP アドレスを登録するため、<cors> セクションにホスト名または IP アドレスを追加します。

    たとえば、Fuse Console からホスト名 0.0.0.3 にアクセスするために追加する行は次のとおりです。

    *<allow-origin>http://0.0.0.3:*</allow-origin>*

    この行を次のように追加します。

    <!--
    
      Cross-Origin Resource Sharing (CORS) restrictions
    
      By default, only CORS access within localhost is allowed for maximum security.
    
      You can add trusted hostnames in the <cors> section to unlock CORS access from them.
    
      -->
    
      <cors>
    
        <!-- Allow cross origin access only within localhost -->
    
        <allow-origin>http*://localhost:*</allow-origin>
    
        <allow-origin>http*://127.0.0.1:*</allow-origin>
    
        <allow-origin>http://0.0.0.3:*</allow-origin>
    
        <!-- Whitelist the hostname patterns as <allow-origin> -->
    
        <!--
    
        <allow-origin>http*://*.example.com</allow-origin>
    
        <allow-origin>http*://*.example.com:*</allow-origin>
    
        -->
    
        <!-- Check for the proper origin on the server side to protect against CSRF -->
    
        <strict-checking />
    
      </cors>
  3. ファイルを保存します。

3.8.2. リモートアクセスの制限

任意設定として、特定のホストおよび IP アドレスの Fuse Console へのリモートアクセスを制限できます。

HTTP クライアントの IP アドレスを基にして全体的なアクセス権限を割り当てることができます。これらの制限を指定するには、以下を行います。

jolokia-access.xml ファイルで、<host> 要素が 1 つ以上含まれる <remote> セクションを追加または編集します。<host> 要素に対して IP アドレス、ホスト名、または CIDR 形式のネットマスク (例: 10.0 ネットワークからのすべてのクライアントは 10.0.0.0/16) を指定できます。

以下の例は、ローカルホストと IP アドレスが 10.0 で始まるすべてのクライアントからのアクセスを許可します。他の IP アドレスの場合はアクセスが拒否されます。

<remote>
  <host>localhost</host>
  <host>10.0.0.0/16</host>
</remote>

詳細は Jolokia のセキュリティーに関するドキュメント (https://jolokia.org/reference/html/security.html) を参照してください。

3.8.3. リモート Fuse インスタンスへのコネクションの許可

Fuse Console のプロキシーサーブレットはホワイトリストを使ってホストを保護し、Fuse Console はデフォルトではローカルホストのみに接続できます。Fuse Console を他のリモート Fuse インスタンスに接続する場合は、ホワイトリストを以下のように設定する必要があります。

Apache Karaf では、etc/system.properties ファイルで設定を以下のように変更します。

hawtio.proxyWhitelist = localhost, 127.0.0.1, myhost1, myhost2, myhost3

3.8.4. リモート Jolokia エージェントへの接続

作業を開始する前に、リモート Jolokia エージェントの接続詳細 (ホスト名、ポート、およびパス) を知っておく必要があります。

Fuse on Apache Karaf における Jolokia エージェントのデフォルトの接続 URL は http://<host>:8181/hawtio/jolokia になります。

システム管理者はこのデフォルト設定を変更できます。

通常、Jolokia エージェントにリモートで接続する URL は、Fuse Console を開く URL に /jolokia を追加したものです。たとえば、Fuse Console を開く URL が http://<host>:1234/hawtio の場合、リモート接続の URL は http://<host>:1234/hawtio/jolokia になります。

JVM を確認するためにリモート Jolokia インスタンスに接続するには、以下を行います。

  1. Connect タブをクリックします。
  2. Remote タブをクリックし、Add connection をクリックします。
  3. NameScheme (HTTP または HTTPS)、および hostname を入力します。
  4. Test Connection をクリックします。
  5. Add をクリックします。
注記

Fuse Console は自動的にローカルホストと 127.0.0.1 以外のローカルネットワークインターフェイスをプローブし、ホワイトリストに追加します。そのため、ローカルマシンのアドレスを手作業でホワイトリストに登録する必要はありません。

3.8.5. データ移動設定の指定

Fuse Console に表示されるデータをより頻繁にリフレッシュする場合などに、以下の Jolokia 設定を変更することができます。データの更新を頻繁に行うと、ネットワークトラフィックに影響し、サーバーに対するリクエストの数が増加するため注意してください。

  • Update rate - JMX データを取得するため Jolokia へポーリングを行う間隔 (デフォルトは 5 秒)。
  • Maximum depth - 戻る前にサーバー側で Jolokia がオブジェクトを JSON にマーシャルするレベル数 (デフォルトは 7)。
  • Maximum collection size - 応答で Jolokia がマーシャルするアレイの最大要素数 (デフォルトは 50,000)。

これらの設定の値を変更するには、以下を行います。

  1. Fuse Console の右上にあるユーザーアイコンをクリックして、Preferences をクリックします。

    mf preferences

  2. オプションを編集して Close をクリックします。

3.8.6. JVM ランタイム情報の表示

システムプロパティー、メトリクス、スレッドなどの JVM のランタイム情報を表示するには、Runtime タブをクリックします。