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 はリモートでアクセスできません。
locahost または 127.0.0.1 以外のホスト名または IP アドレスに対して Fuse Console のロックを解除するには、次の手順に従います。
-
エディターで
$KARAF_HOME/etc/jolokia-access.xml
ファイルを開きます。 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.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 インスタンスに接続するには、以下を行います。
- Connect タブをクリックします。
- Remote タブをクリックし、Add connection をクリックします。
- Name、Scheme (HTTP または HTTPS)、および hostname を入力します。
- Test Connection をクリックします。
- 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)。
これらの設定の値を変更するには、以下を行います。
Fuse Console の右上にあるユーザーアイコンをクリックして、Preferences をクリックします。
- オプションを編集して Close をクリックします。
3.8.6. JVM ランタイム情報の表示
システムプロパティー、メトリック、スレッドなどの JVM のランタイム情報を表示するには、Runtime タブをクリックします。