第4章 Fuse Console からの Fuse アプリケーションの表示および管理
以下のセクションの説明どおりに Fuse アプリケーションを表示および管理できます。
4.1. コンテナーおよびアプリケーションの表示 (Fuse on OpenShift)
OpenShift の Fuse Console にログインすると、Fuse Console のホームページに利用可能なコンテナーが表示されます。
コンテナーを管理 (作成、編集、または削除) するには、OpenShift コンソールを使用します。
OpenShift クラスターで Fuse アプリケーションを表示するには、Online タブをクリックします。
4.2. リモート 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) を参照してください。
4.2.1. Fuse Console のアンロック
デフォルトでは、Fuse 7 スタンドアロンの Jolokia (Apache Karaf および JBoss EAP 上) はロックされており、Fuse Console はリモートでアクセスできません。
locahost や 127.0.0.1 以外のホスト名や IP アドレスの Fuse Console をアンロックするには、以下の手順にしたがいます。
エディターで
jolokia-access.xml
ファイルを開きます。Karaf では、XML ファイルは
$KARAF_HOME/etc
フォルダーにあります。JBoss EAP では、
$EAP_HOME/standalone/configuration
フォルダーにあります。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>
- ファイルを保存します。
4.2.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) を参照してください。
4.2.3. リモート Fuse インスタンスへのコネクションの許可
Fuse Console のプロキシーサーブレットはホワイトリストを使ってホストを保護し、Fuse Console はデフォルトではローカルホストのみに接続できます。Fuse Console を他のリモート Fuse インスタンスに接続する場合は、ホワイトリストを以下のように設定する必要があります。
Apache Karaf では、
etc/system.properties
ファイルで設定を以下のように変更します。hawtio.proxyWhitelist = localhost, 127.0.0.1, myhost1, myhost2, myhost3
JBoss EAP では、
standalone/configuration/standalone-*.xml
ファイルで以下の設定変更を行います。<property name=hawtio.proxyWhitelist" value="localhost, 127.0.0.1, myhost1, myhost2, myhost3"/>
Spring Boot では、Spring Boot アプリケーションの
main()
メソッドで hawtio.proxyWhitelist システムプロパティーを以下のように設定します。System.setProperty("hawtio.proxyWhitelist", "localhost, 127.0.0.1, myhost1, myhost2, myhost3");
4.2.4. リモート Jolokia エージェントへの接続
作業を開始する前に、リモート Jolokia エージェントのコネクション詳細 (ホスト名、ポート、およびパス) を知っておく必要があります。
Fuse ディストリビューション別の Jolokia エージェントのデフォルトコネクション URL は次のとおりです。
-
Spring Boot:
http://<host>:8080/jolokia
-
Red Hat JBoss EAP:
http://<host>:8080/hawtio/jolokia
-
Fuse Karaf:
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 以外のローカルネットワークインターフェースをプローブし、ホワイトリストに追加します。そのため、ローカルマシンのアドレスを手作業でホワイトリストに登録する必要はありません。
4.2.5. データ移動設定の指定
Fuse Console に表示されるデータをより頻繁にリフレッシュする場合などに、以下の Jolokia 設定を変更することができます。データの更新を頻繁に行うと、ネットワークトラフィックに影響し、サーバーに対するリクエストの数が増加するため注意してください。
- Update rate - JMX データを取得するため Jolokia へポーリングを行う間隔 (デフォルトは 5 秒)。
- Maximum depth - 戻る前にサーバー側で Jolokia がオブジェクトを JSON にマーシャルするレベル数 (デフォルトは 7)。
- Maximum collection size - 応答で Jolokia がマーシャルするアレイの最大要素数 (デフォルトは 50,000)。
これらの設定の値を変更するには、以下を行います。
Fuse Console の右上にあるユーザーアイコンをクリックして、Preferences をクリックします。
- オプションを編集して Close をクリックします。
4.2.6. JVM ランタイム情報の表示
システムプロパティー、メトリクス、スレッドなどの JVM のランタイム情報を表示するには、Runtime タブをクリックします。
4.3. Apache Camel アプリケーションの表示および管理
Fuse Console の Camel タブで Apache Camel のコンテキスト、ルート、および依存関係を表示および管理します。
4.3.1. 概要
Camel タブは、1 つ以上の Camel ルートを使用するコンテナーに接続する場合のみ使用できます。
次の詳細を表示できます。
- 実行中の Camel コンテキストすべてのリスト。
- Camel バージョン番号やランタイム統計など、各 Camel コンテキストの詳細情報。
- 各 Camel アプリケーションの全ルートおよびランタイム統計のリスト。
- 実行中のルートとリアルタイムのメトリクスのグラフィック表示。
また、以下を行うと Camel アプリケーションと対話もできます。
- コンテキストの開始および一時停止。
- 再起動、停止、一時停止、再開などを実行できるよう、すべての Camel アプリケーションとそれらのルートのライフサイクルを管理。
- 実行中のルートのライブトレースおよびデバッグ。
- Camel エンドポイントへのメッセージの閲覧および送信。
4.3.2. Camel アプリケーションとの対話。
コンテキストを開始、一時停止、または削除するには、以下を行います。
- Camel タブのツリービューで、Camel Contexts をクリックします。
- リストのコンテキストの横にあるボックスにチェックマークを入れます。
- Start または Suspend をクリックします。
- コンテキストを最初に停止してから削除する必要があります。停止したら楕円のアイコンをクリックし、ドロップダウンメニューで Delete を選択します。
コンテキストを削除する場合、デプロイされたアプリケーションから削除します。
Camel アプリケーションの詳細を表示するには、以下を行います。
- Camel タブのツリービューで、Camel アプリケーションをクリックします。
- アプリケーションの属性と値のリストを表示するには、Attributes をクリックします。
アプリケーション属性をグラフィック表示するには、以下を行います。
- Chart をクリックします。
- Edit をクリックし、チャートに表示する属性を選択します。
- inflight exchange および blocked exchange を表示するには、Exchanges をクリックします。
- アプリケーションエンドポイントを表示するには、Endpoints をクリックします。リストは URL、Route ID、および direction で絞り込むことができます。
- Type Converters をクリックし、Camel の組み込みタイプ変換メカニズムに関連する統計を表示、有効化、および無効化します。このメカニズムはメッセージ本文とメッセージヘッダーを別のタイプに変換するために使用されます。
- Operations をクリックして、JMX 操作 (XML からのルートの追加または更新、クラスパスで利用できる Camel コンポーネントの検索など) を表示および実行します。
Camel ルートと対話するには、以下を行います。
Camel タブのツリービューでアプリケーションのルートフォルダーをクリックし、ルートのリストを表示します。
1 つまたは複数のルートを開始、停止、または削除するには、以下を行います。
- リストのルートの横にあるボックスにチェックマークを入れます。
- Start または Stop をクリックします。
最初にルートを停止してから削除する必要があります。停止したら楕円のアイコンをクリックし、ドロップダウンメニューで Delete を選択します。
注記- ルートを削除する場合、デプロイされたアプリケーションから削除します。
- ツリービューで特定のルートを選択し、右上のメニューをクリックして開始、停止、または削除することもできます。
- ルートのグラフィックな図を表示するには、Route Diagram をクリックします。
- inflight exchange および blocked exchange を表示するには、Exchanges をクリックします。
- エンドポイントを表示するには、Endpoints をクリックします。URL、Route ID、および方向でリストを絞り込むことができます。
- Type Converters をクリックし、Camel の組み込みタイプ変換メカニズムに関連する統計を表示、有効化、および無効化します。このメカニズムはメッセージ本文とメッセージヘッダーを別のタイプに変換するために使用されます。
特定のルートと対話するには、以下を行います。
- Camel タブのツリービューで、ルートを選択します。
- ルート属性と値のリストを表示するには、Attributes をクリックします。
- ルート属性をグラフィックに表示するには、Chart をクリックします。Edit をクリックするとチャートに表示する属性を選択することができます。
- inflight exchange および blocked exchange を表示するには、Exchanges をクリックします。
- Operations をクリックして JMX 操作 (ルートを XML としてダンプ、ルートの Camel ID 値の取得など) を表示および実行できます。
ルートを介してメッセージをトレースするには、以下を実行します。
- Camel タブのツリービューで、ルートを選択します。
- Trace を選択し、Start tracing をクリックします。
メッセージをルートに送信するには、以下を行います。
- Camel タブのツリービューでコンテキストのエンドポイントフォルダーを開き、エンドポイントを選択します。
- Send サブタブをクリックします。
- JSON または XML 形式のメッセージを設定します。
- Send をクリックします。
- ルートの Trace タブに戻り、ルートを介したメッセージのフローを確認します。
ルートをデバッグするには、以下を実行します。
- Camel タブのツリービューで、ルートを選択します。
- Debug を選択し、Start debugging をクリックします。
ブレークポイントを追加するには、図のノードを選択し、Add breakpoint をクリックします。ノードに赤い点が表示されます。
ノードがブレークポイントのリストに追加されます。
- 下矢印をクリックして次のノードに移動するか、Play ボタンをクリックしてルートの実行を再開します。
- Pause ボタンをクリックして、ルートのすべてのスレッドを一時停止します。
- 終了したら Stop debugging をクリックします。すべてのブレークポイントが消去されます。
4.4. JMX ドメインおよび MBean の表示および管理
JMX (Java Management Extensions) は、実行時にリソース (サービス、デバイス、およびアプリケーション) を動的に管理できる Java 技術です。リソースは MBean (Managed Bean) と呼ばれるオブジェクトで表現されます。リソースが作成、実装、またはインストールされると即座に管理することができます。
Fuse Console で JMX プラグインを使用すると、JMX ドメインと MBean を表示および管理できます。MBean 属性の表示、コマンドの実行、および MBean の統計を示すチャートの作成を行うことができます。
JMX タブは、フォルダーに整理されたアクティブな JMX ドメインと MBean のツリービューを提供します。詳細を確認し、MBean でコマンドを実行できます。
MBean 属性を表示および編集するには、以下を行います。
- ツリービューで MBean を選択します。
- Attributes タブをクリックします。
- 属性をクリックしてその詳細を表示します。
操作を実行するには、以下を行います。
- ツリービューで MBean を選択します。
- Operations タブをクリックし、リストにある操作の 1 つを展開します。
- Execute をクリックし、操作を実行します。
チャートを表示するには、以下を行います。
- ツリービューで項目を選択します。
- Chart タブをクリックします。
4.5. OSGi 環境の表示および管理 (Karaf スタンドアロン)
Apache Karaf スタンドアロンディストリビューションでは、Red Hat Fuse OSGi 環境を表示および管理できます。コンテナーバンドル、機能、および設定のほか、Java パッケージや OSGi サービスも表示および管理できます。
OSGi タブには、各コンテナーコンポーネントのオプションが含まれる複数のサブタブが含まれています。
- Bundles
- インストールされたバンドルのリストです。バンドルのインストールおよびアンインストール、バンドルの開始および停止、およびバンドルプロパティーの編集を行うことができます。さらに、リストの絞り込みやリストとグリッドビューの切り替えを行うこともできます。
- Features
- 使用できる機能のリスト。機能や機能リポジトリーをインストールおよびアンインストールでき、機能の詳細を表示できます。
- Packages
- Java パッケージのリスト。パッケージバージョンと関連するバンドルを表示できます。
- Services
- 実行中のサービスのリスト。サービス ID、関連するバンドル、およびオブジェクトクラスを表示できます。
- Declarative Services
- 宣言的 OSGi サービスのリスト。サービスの状態を表示し、サービスの詳細を表示することができます。また、サービスをアクティベートおよび非アクティベートすることもできます。
- Server
- 読み取り専用モードのローカルまたはリモートホストに関する詳細情報。
- Framework
- コンテナー OSGi フレームワークの設定オプション。フレームワーク開始レベルと初期バンドル開始レベルを設定できます。
- Configuration
- 設定オブジェクトのリスト。各オブジェクトの状態を表示し、オブジェクトの詳細を表示または編集できます。また、新しい設定オブジェクトを作成することもできます。
4.6. スレッド状態の表示および監視
スレッドの状態を表示し、監視するには、以下を行います。
- Runtime タブをクリックし、Threads サブタブをクリックします。Threads ページには、アクティブなスレッドと各スレッドのスタックトレースの詳細が表示されます。デフォルトでは、スレッドリストにはすべてのスレッドが ID 値が大きい順に表示されます。
- ID 値が小さい順に表示するには、ID 列ラベルをクリックします。
- 任意で、スレッドの状態 (例: Blocked) やスレッド名でリストを絞り込むことができます。
- ロッククラス名やスレッドのフルスタックトレースなど、特定スレッドの詳細情報を表示するには、Actions 列で More をクリックします。
4.7. ログエントリーの表示
Logs タブで Red Hat Fuse のログエントリーを表示できます。Logs タブは、Java アプリケーションに Log MBean がある場合に使用できます (Karaf の Fuse スタンドアロンおよび JBoss EAP の Fuse スタンドアロン)。
ログのリストを絞り込んで特定のログタイプを表示し、各ログエントリーの詳細情報を表示することができます。
Logs タブには以下のセクションが含まれます。
- Action Bar
- テキスト文字列またはログレベルに応じてログエントリーを絞り込むオプション。
- Log Entries
-
ログエントリーのリストビュー。デフォルトでは、リストのログエントリーは昇順で表示されます。デフォルトの並び替えは User
Preferences Server Logs で変更できます。ログエントリーのリンクをクリックし、バンドル名、スレッド、フルメッセージテキストなどのログエントリーの詳細を表示します。
4.7.1. Fuse Console ログ属性の設定
ログメッセージの保存に関し、以下の Fuse Console ブラウザー設定をカスタマイズすることができます。
- Fuse Console に保持するログステートメントの数 (デフォルトは 100)。
- グローバルログレベル: INFO (デフォルト)、OFF、ERROR、WARN、および DEBUG
- hawtio-oauth や hawtio-core-utils など、含める子レベルの Howtio メッセージ。
デフォルトを変更するには、以下を行います。
Fuse Console の右上隅にあるユーザーアイコンをクリックして、ドロップダウンメニューの Preferences をクリックします。
- オプションを編集して Close をクリックします。
Console Logs 設定をデフォルト値にリセットするには、Reset
4.8. Fuse Console のブランディングの変更
Fuse Console のブランディング名およびイメージを変更するには、以下のファイルを変更します。
Fuse Console の war ファイル (
karaf-install-dir/system/io/hawt/hawtio-war/version/hawtio-war-version.war
) のhawtconfig.json
ファイルを編集します。{ "branding": { "appName": "Hawtio Management Console", "appLogoUrl": "img/hawtio-logo.svg", "companyLogoUrl": "img/hawtio-logo.svg" }, "about": { "title": "Hawtio Management Console", "productInfo": [], "additionalInfo": "", "copyright": "", "imgSrc": "img/hawtio-logo.svg" }, "disabledRoutes": [] }
-
war ファイルのスタイルシート (
.css
) ファイルで Fuse Console UI のその他の内容を変更します。
Web ブラウザーで Fuse Console をすでに実行した場合、ブランディングはブラウザーのローカルストレージに保存されます。新しいブランディング設定を使用するには、ブラウザーのローカルストレージをクリアする必要があります。
4.9. Fuse Console でデータが正しく表示されるよう確認
Fuse Console のキューおよびコネクションの表示で、不足しているキューやコネクションがあったり、一貫性のないアイコンが表示される場合、Jolokia が応答でマーシャルするアレイの要素の最大数を指定する、Jolokia コレクションサイズパラメーターを調節します。
Fuse Console の右上隅にあるユーザーアイコンをクリックして、Preferences をクリックします。
- Maximum collection size オプションの値を大きくします (デフォルトは 50,000)。
- Close をクリックします。