Fuse on Karaf スタンドアロンの管理
Fuse Console を使用した Fuse アプリケーションの管理
概要
はじめに
Red Hat Fuse は、Fuse インテグレーションを表示および管理する、以下の 2 つのエンタープライズ管理ツールを提供します。
- Fuse Console は、ブラウザーからアクセスする Web ベースのコンソールで、実行中の Fuse コンテナーを監視および管理します。Fuse Console は Hawtio オープンソースソフトウェア (https://hawt.io/) をベースにしています。このガイドでは Fuse Console の使用方法を説明します。
- Prometheus は、Fuse ディストリビューションのシステムおよびインテグレーションレベルのメトリクスを保存します。Grafana などのグラフィカル分析インターフェイスを使用して、保存された履歴データを表示および分析できます。Prometheus の使用に関する詳細は、Prometheus のドキュメント を参照してください。
このガイドの対象者は、Red Hat Fuse on Apache Karaf の管理者です。このガイドは、Red Hat Fuse プラットフォーム、Apache Camel、および所属組織の処理要件に精通していることを前提としています。
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
第1章 Fuse Console
Red Hat Fuse Console は、HawtIO オープンソースソフトウェアをベースとする Web コンソールです。サポートされるブラウザーのリストは Red Hat Fuse でサポートされる構成 を参照してください。
Fuse Console は、デプロイされた 1 つ以上の Fuse コンテナーの詳細を確認および管理するための中央インターフェイスを提供します。また、Red Hat Fuse およびシステムリソースの監視、更新の実行、およびサービスの起動と停止を行うこともできます。
Fuse Console は、Red Hat Fuse スタンドアロンをインストールするか、Fuse on OpenShift を使用する場合に利用できます。Fuse Console で表示および管理できるインテグレーションは、実行されているプラグインによって異なります。使用できるプラグインには以下が含まれます。
- Camel
- JMX
- OSGI
- Runtime
- Logs
第2章 Fuse Console へのアクセス
Apache Karaf スタンドアロンの Fuse Console にアクセスするには、以下の手順に従います。
前提条件
Karaf コンテナーに Fuse をインストールします。ステップごとの手順は、Apache Karaf のインストール を参照してください。
手順
コマンドラインで、Red Hat Fuse をインストールしたディレクトリーに移動し、以下のコマンドを実行して Fuse スタンドアロンを起動します。
./bin/fuse
Karaf コンソールが起動し、バージョン情報、デフォルトの Fuse Console URL、および一般的なコマンドのリストが表示されます。
-
ブラウザーで URL を入力し、Fuse Console に接続します。例:
http://localhost:8181/hawtio
- ログインページでユーザー名とパスワードを入力し、Log In をクリックします。
デフォルトでは、Fuse Console に Home ページが表示されます。左側のナビゲーションタブには実行中のプラグインが表示されます。
第3章 Fuse Console のセキュア化
Apache Karaf で Fuse Console をセキュアにするには、以下を行います。
AWS へのデプロイ時に Fuse Console のプロキシーサーブレットを無効にする
スタンドアロン Fuse アプリケーションを Amazon Web Services (AWS) にデプロイする場合、
hawtio.disableProxy
システムプロパティーをtrue
に設定して、Fuse Console のプロキシーサーブレットを無効にする必要があります。注記Fuse Console のプロキシーサーブレットを無効にすると、Fuse Console の Connect タブが無効になり、Fuse Console から他の JVM に接続できなくなります。AWS に複数の Fuse アプリケーションをデプロイする場合は、アプリケーションごとに Fuse Console をデプロイする必要があります。
HTTPS を必須プロトコルとして設定する
hawtio.http.strictTransportSecurity
プロパティーを使用すると、Web ブラウザーでセキュアな HTTPS プロトコルを使用して Fuse Console にアクセスするよう要求できます。このプロパティーにより、HTTP を使用して Fuse Console へのアクセスを試みる Web ブラウザーで、HTTPS を使用するようにリクエストを自動的に変換することが必須になります。公開鍵を使用して応答をセキュアにする
hawtio.http.publicKeyPins
プロパティーを使用すると、特定の暗号化の公開鍵を Fuse Console に関連付けるように Web ブラウザーに指示し、偽造証明書による "中間者攻撃" のリスクを軽減することで、HTTPS プロトコルをセキュアにできます。SSL/TLS セキュリティーを有効にする
SSL/TLS セキュリティーは、Fuse Console ではデフォルトで有効になっていません。Fuse Console で SSL/TLS セキュリティーを有効にして、ユーザー名およびパスワードのクレデンシャルをスヌーピングから保護することが推奨されます。
- Red Hat Single Sign On を実装する
ユーザーのアクセスを制御する
認証されたユーザーが実行できる操作は、そのユーザーに割り当てられたロールによって異なります。表4.1「Karaf スタンドアロンでのロールベースアクセス」 を参照してください。
手順
HTTPS を必須のプロトコルとして設定するには、
$KARAF_HOME/etc/system.properties
ファイルのhawtio.http.strictTransportSecurity
プロパティーを以下の例のように設定します。hawtio.http.strictTransportSecurity = max-age=31536000; includeSubDomains; preload
公開鍵を使用して応答をセキュアにするには、
$KARAF_HOME/etc/system.properties
ファイルのhawtio.http.publicKeyPins
プロパティーを以下の例のように設定します。hawtio.http.publicKeyPins = pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs"; max-age=5184000; includeSubDomains
(AWS のみにデプロイする場合) Fuse Console のプロキシーサーブレットを無効にするには、以下の例のように
$KARAF_HOME/etc/system.properties
ファイルでhawtio.disableProxy
プロパティーをtrue
に設定します。hawtio.disableProxy = true;
- SSL/TLS セキュリティーを有効にする方法の詳細は、Apache Karaf セキュリティーガイド の「Apache Karaf コンテナーで Undertow の SSL/TLS を有効にする」を参照してください。
- Red Hat Single Sign-On で Fuse Console をセキュアにする方法については、Red Hat Single Sign On アプリケーションおよびサービスのセキュリティー保護ガイド の「Hawtio 管理コンソールのセキュリティー保護」セクションを参照してください。
以下の手順に従ってユーザーロールを設定し、必要な Fuse Console 操作を実行できる権限をユーザーに付与します。
-
エディターで Red Hat Fuse
etc/users.properties
ファイルを開きます。 ユーザー名、パスワード、およびロールのエントリーを追加します。
たとえば、
etc/users.properties
ファイルの以下のエントリーは管理ユーザーを定義し、管理ロールを割り当てます。admin = secretpass,admin
- ファイルを保存します。
-
エディターで Red Hat Fuse
関連情報
-
hawtio.http.strictTransportSecurity
プロパティーの構文の説明は、HTTP Strict Transport Security (HSTS) 応答ヘッダーの説明ページを参照してください。 -
hawtio.http.publicKeyPins
プロパティーの構文や、Base64 でエンコードされた公開鍵の抽出方法の説明は、HTTP Public Key Pinning 応答ヘッダーの説明ページを参照してください。
第4章 ロールベースのアクセス参照
認証されたユーザーが実行できる操作は、そのユーザーに割り当てられたロールによって異なります。表4.1「Karaf スタンドアロンでのロールベースアクセス」 を参照してください。
操作 | admin | manager | viewer |
---|---|---|---|
ログイン/ログアウト | 可能 | 可能 | 可能 |
ヘルプトピックの表示 | 可能 | 可能 | 可能 |
ユーザー設定の指定 | 可能 | 可能 | 可能 |
接続 | |||
リモートインテグレーションの検出および接続 | 可能 | 可能 | 可能 |
ローカルインテグレーションの検出および接続 | 可能 | 可能 | 可能 |
Camel | |||
実行中の Camel アプリケーションをすべて表示 | 可能 | 可能 | 可能 |
Camel コンテキストの起動、一時停止、再開、および削除 | 可能 | 可能 | |
メッセージの送信 | 可能 | 可能 | |
エンドポイントの追加 | 可能 | 可能 | |
ルート、ルート図、およびランタイム統計の表示 | 可能 | 可能 | 可能 |
ルートの起動と停止 | 可能 | 可能 | |
ルートの削除 | 可能 | 可能 | |
JMX | |||
属性値の変更 | 可能 | 可能 | |
タイムベースチャートで属性を選択および表示 | 可能 | 可能 | 可能 |
操作の表示 | 可能 | 可能 | 可能 |
OSGI | |||
バンドル、機能、パッケージ、サービス、サーバー、フレームワーク、および設定を表示 | 可能 | 可能 | 可能 |
バンドルの追加および削除 | 可能 | 可能 | |
設定の追加 | 可能 | 可能 | |
機能のインストールおよびアンインストール | 可能 | ||
Runtime | |||
システムプロパティー、メトリクス、およびスレッドの表示 | 可能 | 可能 | 可能 |
Logs | |||
ログの表示 | 可能 | 可能 | 可能 |
関連情報
ロールベースアクセス制御の詳細は、Apache Karaf へのデプロイ を参照してください。
第5章 Fuse Console ブランディングのカスタマイズ
Fuse Console ブランディングプラグインを使用すると、タイトル、ロゴ、ログインページの情報などの Fuse Console ブランディング情報をカスタマイズできます。
デフォルトでは、Fuse Console のブランディングは Fuse Console WAR ファイル (karaf-install-dir/system/io/hawt/hawtio-war/<version>/hawtio-war-<version>.war
) の hawtconfig.json
で定義されます。Fuse Console ブランディングプラグインを実装すると、デフォルトのブランディングを独自のカスタムブランディングでオーバーライドできます。
手順
-
ブランディングプラグインの例を
https://github.com/hawtio/hawtio/tree/master/examples/branding-plugin
から任意のローカルディレクトリーにダウンロードします。 任意のエディターで、Fuse Console ブランディングプラグインの
src/main/webapp/plugin/brandingPlugin.js
ファイルを開き、Fuse Console ブランディングをカスタマイズします。表A.1「Fuse Console 設定プロパティー」 に記載されている設定プロパティーの値を変更できます。
- 変更を保存します。
任意のエディターで、Fuse Console ブランディングプラグインの
pom.xml
ファイルを開き、<parent>
セクションに移動します。<parent> <groupId>io.hawt</groupId> <artifactId>project</artifactId> <version>2.9-SNAPSHOT</version> <relativePath>../..</relativePath> </parent>
以下のように
<parent>
セクションを編集します。-
<version>
プロパティーの値を Fuse on Karaf インストールのバージョンに一致するよう変更します。たとえば、Fuse on Karaf インストールディレクトリー名が 2.0.0.fuse-760015 の場合は、バージョンを 2.0.0.fuse-760015 に設定します。 <relativePath>../..</relativePath>
行を削除します。以下に例を示します。
<parent> <groupId>io.hawt</groupId> <artifactId>project</artifactId> <version> 2.0.0.fuse-760015</version> </parent>
-
ターミナルウィンドウで、以下のコマンドを実行し、branding-plugin プロジェクトをビルドします。
mvn clean install
Fuse が稼働していない場合は、以下のコマンドを実行して起動します。
Linux/Unix の場合:
bin/fuse
Windows の場合:
bin\fuse.bat`
Karaf CLI プロンプトで以下のコマンドを入力し、Fuse Console ブランディングプラグインをインストールします。
<version>
は Fuse on Karaf インストールのバージョンに置き換えます。Linux/Unix の場合:
install -s mvn:io.hawt/branding-plugin/<version>/war
Windows の場合:
install -s mvn:io.hawt\branding-plugin\<version>\war
-
Web ブラウザーで、7. の起動コマンドによって返された URL を使用して、Fuse Console を開きます (デフォルトの URL は
http://localhost:8181/hawtio/
です)。
Web ブラウザーで Fuse Console をすでに実行した場合、ブランディングはブラウザーのローカルストレージに保存されます。新しいブランディング設定を使用するには、ブラウザーのローカルストレージをクリアする必要があります。
第6章 Fuse Console のデータ表示の修正
Fuse Console のキューおよび接続の表示で、不足しているキューや接続があったり、一貫性のないアイコンが表示される場合は、Jolokia コレクションサイズパラメーターを調節します。このパラメーターは、Jolokia が応答でマーシャルするアレイの最大要素数を指定するものです。
手順
Fuse Console の右上隅にあるユーザーアイコンをクリックして、Preferences をクリックします。
- Maximum collection size オプションの値を大きくします (デフォルトは 50,000)。
- Close をクリックします。
第7章 Fuse Console の無効化
Karaf で Fuse Console を無効にすると、他のコンポーネントに影響を与えずにすべてのユーザーをアクセス不可能にすることができます。
手順
hawtio-web バンドル ID を特定するには、以下のコマンドを使用して Fuse Console が使用する Fuse バンドルをリストします。
osgi:list | grep hawtio
バンドルを停止するには、osgi:stop コマンドを使用します。たとえば、hawtio :: Web console バンドルの ID が 246 の場合、以下のコマンドを入力します。
osgi:stop 246
バンドルが解決状態になり、Fuse Console にアクセスできないようになります。
関連情報
バンドルの管理に関する詳細は、Apache Karaf へのデプロイ の「ライフサイクル管理」の章を参照してください。
第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) を参照してください。
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>
- ファイルを保存します。
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) を参照してください。
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
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 以外のローカルネットワークインターフェイスをプローブし、ホワイトリストに追加します。そのため、ローカルマシンのアドレスを手作業でホワイトリストに登録する必要はありません。
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 をクリックします。
8.6. JVM ランタイム情報の表示
システムプロパティー、メトリクス、スレッドなどの JVM のランタイム情報を表示するには、Runtime タブをクリックします。
第9章 Apache Camel アプリケーションの表示および管理
Fuse Console の Camel タブで Apache Camel のコンテキスト、ルート、および依存関係を表示および管理します。
次の詳細を表示できます。
- 実行中の Camel コンテキストすべてのリスト。
- Camel バージョン番号やランタイム統計など、各 Camel コンテキストの詳細情報。
- 各 Camel アプリケーションの全ルートおよびランタイム統計のリスト。
- 実行中のルートとリアルタイムのメトリクスのグラフィカル表示。
また、以下を行うと Camel アプリケーションと対話もできます。
- コンテキストの起動および一時停止。
- 再起動、停止、一時停止、再開などを実行できるよう、すべての Camel アプリケーションとそれらのルートのライフサイクルを管理すること。
- 実行中のルートのライブトレースおよびデバッグ。
- Camel エンドポイントへのメッセージの閲覧および送信。
前提条件
Camel タブは、1 つ以上の Camel ルートを使用するコンテナーに接続する場合のみ使用できます。
9.1. コンテキストの起動、一時停止、または削除
- Camel タブのツリービューで、Camel Contexts をクリックします。
- リストのコンテキストの横にあるボックスにチェックマークを入れます。
- Start または Suspend をクリックします。
コンテキストを削除するには以下を行います。
- コンテキストを停止します。
- 楕円のアイコンをクリックし、ドロップダウンメニューで Delete を選択します。
コンテキストを削除する場合、デプロイされたアプリケーションから削除します。
9.2. Camel アプリケーションの詳細表示
- Camel タブのツリービューで、Camel アプリケーションをクリックします。
- アプリケーションの属性と値のリストを表示するには、Attributes をクリックします。
- アプリケーション属性をグラフィカルに表示するには、Chart をクリックした後、Edit をクリックし、チャートに表示する属性を選択します。
- inflight exchange および blocked exchange を表示するには、Exchanges をクリックします。
- アプリケーションエンドポイントを表示するには、Endpoints をクリックします。リストは URL、Route ID、および direction で絞り込むことができます。
- メッセージ本文とメッセージヘッダーを別のタイプに変換するために使用される Camel 組み込みタイプ変換メカニズムに関連する統計を表示、有効化、および無効化するには、Type Converters をクリックします。
- JMX 操作 (XML からのルートの追加または更新、クラスパスで利用できる Camel コンポーネントの検索など) を表示および実行するには、Operations をクリックします。
9.3. Camel ルートリストの表示および Camel ルートとの対話
ルートのリストを表示するには、以下を行います。
- Camel タブをクリックします。
ツリービューでアプリケーションの routes フォルダーをクリックします。
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 タブに戻り、ルートを介したメッセージのフローを確認します。
9.4. ルートのデバッグ
- Camel タブのツリービューで、ルートを選択します。
- Debug を選択し、Start debugging をクリックします。
ブレークポイントを追加するには、図のノードを選択し、Add breakpoint をクリックします。ノードに赤い点が表示されます。
ノードがブレークポイントのリストに追加されます。
- 下矢印をクリックして次のノードに移動するか、Play ボタンをクリックしてルートの実行を再開します。
- Pause ボタンをクリックして、ルートのすべてのスレッドを一時停止します。
- 終了したら Stop debugging をクリックします。すべてのブレークポイントが消去されます。
第10章 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 タブをクリックします。
第11章 Quartz スケジュールの表示および管理
Quartz (http://www.quartz-scheduler.org/) は、ほとんどの Java アプリケーション内で統合できる、機能豊富なオープンソースジョブスケジューリングライブラリーです。Quartz を使用して、ジョブを実行するための単純または複雑なスケジュールを作成できます。ジョブは、標準の Java コンポーネントとして定義され、プログラムで実行するほとんどの処理を実行できます。
Camel ルートが camel-quartz2
コンポーネントをデプロイすると、Fuse Console には Quartz タブが表示されます。JMX ツリービューから Quartz mbeans に交互にアクセスできることに注意してください。
手順
Fuse Console で Quartz タブをクリックします。
Quartz ページには、Quartz スケジューラーのツリービューと、Scheduler、Triggers、および Jobs タブがあります。
- スケジューラーを一時停止または起動するには、Scheduler タブのボタンをクリックします。
Triggers タブをクリックして、ジョブを実行するタイミングを決定するトリガーを表示します。たとえば、トリガーは、一日の指定の時刻 (ミリ秒単位) に、指定した日数、または指定した回数もしくは特定の回数繰り返してジョブを開始するように指定できます。
- トリガーのリストをフィルタリングするには、ドロップダウンリストから State、Group、Name、または Type を選択します。続いて、入力フィールドに選択または入力することで、さらにリストをフィルターできます。
- トリガーを一時停止、再開、更新、または手動で実行するには、Action 列のオプションをクリックします。
- Jobs タブをクリックして実行中のジョブのリストを表示します。テーブルの Group、Name、Durable、Recover、Job ClassName、および Description の列でリストをソートできます。
第12章 OSGi 環境の表示および管理
Apache Karaf スタンドアロンディストリビューションでは、Red Hat Fuse OSGi 環境を表示および管理できます。コンテナーバンドル、機能、および設定のほか、Java パッケージや OSGi サービスも表示および管理できます。
OSGi タブには、各コンテナーコンポーネントのオプションが含まれる複数のサブタブがあります。
- Bundles
- インストールされたバンドルのリストです。バンドルのインストールおよびアンインストール、バンドルの起動および停止、およびバンドルプロパティーの編集を行うことができます。さらに、リストの絞り込みやリストとグリッドビューの切り替えを行うこともできます。
- Features
- 使用できる機能のリスト。機能や機能リポジトリーをインストールおよびアンインストールでき、機能の詳細を表示できます。
- Packages
- Java パッケージのリスト。パッケージバージョンと関連するバンドルを表示できます。
- Services
- 実行中のサービスのリスト。サービス ID、関連するバンドル、およびオブジェクトクラスを表示できます。
- Declarative Services
- 宣言的 OSGi サービスのリスト。サービスの状態を表示し、ドリルダウンしてサービスの詳細を表示できます。また、サービスをアクティベートおよび非アクティベートすることもできます。
- Server
- 読み取り専用モードのローカルまたはリモートホストに関する詳細情報。
- Framework
- コンテナー OSGi フレームワークの設定オプション。フレームワークの起動レベルと初期バンドルの起動レベルを設定できます。
- Configuration
- 設定オブジェクトのリスト。各オブジェクトの状態を表示し、オブジェクトの詳細を表示または編集できます。また、新しい設定オブジェクトを作成することもできます。
第13章 診断の表示
Diagnostics タブを使用して、JVM DiagnosticCommand および HotspotDiangostic インターフェイスから JVM に関する診断情報を表示します。
この機能は、Java Mission Control (jmc) の Diagnostic Commands ビューや、コマンドラインツールの jcmd と似ています。場合によっては、プラグインが対応する jcmd コマンドを提供します。
手順
- ロードされたクラスのインスタンス数や、これらのインスタンスが使用するバイト数を取得するには、Class Histogram をクリックします。操作が繰り返し行われた場合、最後の操作実行との差異がタブに表示されます。
- JVM 診断のフラグ設定を表示するには、JVM flags をクリックします。
- 稼働中の JVM でもフラグ設定を変更できます。
関連情報
サポートされる JVM はプラットフォームによって異なります。詳細は以下を参照してください。
第14章 スレッドの表示
スレッドの状態を表示および監視できます。
手順
- Runtime タブをクリックし、Threads サブタブをクリックします。Threads ページには、アクティブなスレッドと各スレッドのスタックトレースの詳細が表示されます。デフォルトでは、スレッドリストにはすべてのスレッドが ID 値が大きい順に表示されます。
- ID 値が小さい順に表示するには、ID 列ラベルをクリックします。
- 任意で、スレッドの状態 (例: Blocked) やスレッド名でリストを絞り込むことができます。
- ロッククラス名やスレッドのフルスタックトレースなど、特定スレッドの詳細情報を表示するには、Actions 列で More をクリックします。
第15章 ログエントリーの表示
Logs タブで Red Hat Fuse のログエントリーを表示できます。
前提条件
Logs タブは、Java アプリケーションに Log MBean が含まれる場合に利用できます。
手順
ログエントリーのリストを表示するには、Log Entries タブをクリックします。
デフォルトでは、リストのログエントリーは昇順で表示されます。
各ログエントリーをドリルダウンすると、ログエントリーに関する詳細情報が表示されます。
- ログのリストを絞り込み、特定のログタイプを表示するには、Action Bar をクリックします。テキスト文字列またはログレベルを基にしてログエントリーセクションを絞り込むことができます。
Fuse Console のデフォルト設定を変更するには、以下を行います。
Fuse Console の右上隅にあるユーザーアイコンをクリックして、ドロップダウンメニューの Preferences をクリックします。
- デフォルトのソート順序を変更するには、Server Logs を選択し、ログエントリーリンクをクリックして、バンドル名、スレッド、完全なメッセージテキストなどのログエントリーに関する詳細を表示します。
必要に応じて、ログメッセージの保存に関する次の設定をカスタマイズできます。
- Fuse Console に保持するログステートメントの数 (デフォルトは 100)。
- グローバルログレベル: INFO (デフォルト)、OFF、ERROR、WARN、および DEBUG。
-
hawtio-oauth
やhawtio-core-utils
など、含める子レベルのメッセージ。
- Fuse Console のログ設定をデフォルトの値に戻すには、Reset → Reset settings とクリックします。
第16章 Prometheus メトリクスの有効化
Prometheus は、スタンドアロン Apache Karaf コンテナーにデプロイされたサービスの監視に使用できる、システムおよびサービスを対象としたオープンソースの監視および警告ツールキットです。Prometheus は、設定されたサービスから一定の間隔でメトリクスを収集および保存します。さらに、ルール式の評価や結果の表示を行い、指定の条件が true になるとアラートをトリガーできます。
Prometheus に対する Red Hat のサポートは、Red Hat 製品ドキュメントに記載されているセットアップと推奨設定に限定されます。
Prometheus は、クライアントにインストールおよび設定された "エクスポーター" を使用して、エンドポイントを Prometheus 形式で公開します。このエンドポイントは、メトリクスのリストとメトリクスの現在の値を提供する HTTP インターフェイスです。Prometheus は定期的にターゲット定義の各エンドポイントをスクレイピングし、収集したデータをそのデータベースに書き込みます。Prometheus は、現在実行中のセッションだけでなく、長期間にわたってデータを収集します。Prometheus は、データをグラフィカルに可視化してクエリーを実行できるようにデータを格納します。
16.1. スタンドアロン Apache Karaf コンテナーからのメトリクスのエクスポートを有効にする
Prometheus は、Camel によって公開されるメトリクスが含まれる設定ファイル (https://raw.githubusercontent.com/jboss-fuse/application-templates/master/prometheus/prometheus-config.yml
) を使用します。
識別できるメトリクスは、JMX で提供されるメトリクスに限定されます。
Apache Camel メトリクスを生成するには、Fuse アプリケーションをデプロイする必要があります。
手順
コマンドラインを使用して、スタンドアロン Apache Karaf コンテナーから Prometheus メトリクスのエクスポートを有効にするには、以下を実行します。
-
コマンドプロンプトを開き、現在の場所が Apache Karaf インストールの
etc/
ディレクトリーであることを確認します。 以下のコマンドを入力して、
etc/
ディレクトリーのサンプルファイルから Prometheus 設定ファイルを作成します。cp prometheus-config.yml-example prometheus-config.yml
-
エクスポーターは、
fuse
またはfuse.bat
コマンドを使用して Fuse を起動する場合のみ使用できます。Linux または Unix の場合はbin/fuse
、Windows の場合はbin\fuse.bat
を実行します。 -
Fuse の再起動後、
http://localhost:9779
で Web ブラウザーを開くと、公開されたメトリクスを表示できます。
必要に応じて、コマンドラインから KARAF_PROMETHEUS_PORT
および KARAF_PROMETHEUS_CONFIG
設定変数のデフォルト値を変更できます。
16.2. Apache Karaf コンテナーから公開済みメトリクスをスクレイピングするように Prometheus サーバーを設定する
Prometheus サーバーが Apache Karaf コンテナーからメトリクスをスクレイピングできるようにするには、メトリクスを公開するエンドポイントを Prometheus 設定ファイルの targets
プロパティーに追加する必要があります。
手順
-
Prometheus インストールディレクトリーの
/prometheus.yml
設定ファイルに移動します。 スクレイピングする Apache Karaf エンドポイントを追加します。
scrape_configs: - job_name: 'prometheus' # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ['localhost:9779']
付録A Fuse Console 設定プロパティー
デフォルトでは、Fuse Console 設定は hawtconfig.json
ファイルで定義されます。タイトル、ロゴ、ログインページの情報などの Fuse Console 設定情報をカスタマイズできます。
表A.1「Fuse Console 設定プロパティー」 には、プロパティーの説明と、各プロパティーに値が必要かどうかが示されています。
セクション | プロパティー名 | デフォルト値 | 説明 | 必須/オプション |
---|---|---|---|---|
about | Title | Red Hat Fuse Management Console | Fuse Console の About ページに表示されるタイトル。 | 必須 |
productInfo | 空の値 | Fuse Console の About ページに表示される製品情報。 | オプション | |
additionalInfo | 空の値 | Fuse Console の About ページに表示される追加情報。 | オプション | |
copyright | 空の値 | Fuse Console の About ページに表示される著作権情報。 | オプション | |
imgSrc |
| Fuse Console の About ページに表示されるイメージ。 | 必須 | |
branding | appName | Red Hat Fuse Management Console | アプリケーションの名前。この名前は Fuse Console のタイトルバーに表示されます。 | 必須 |
appLogoUrl |
| Fuse Console のナビゲーションバーに表示されるアプリケーションのロゴイメージファイルへのパス。Hawtio ステータス URL への相対パス、または絶対 URL を値として指定可能です。 | 必須 | |
Css | アプリケーションのスタイルに使用できる外部 CSS スタイルシートの URL。Hawtio ステータス URL への相対パス、または絶対 URL を指定可能です。 | オプション | ||
companyLogoUrl |
| 会社のロゴイメージファイルへのパス。 | 必須 | |
Favicon | 通常、Web ブラウザータブに表示される favicon の URL。Hawtio ステータス URL への相対パス、または絶対 URL を指定可能です。 | オプション | ||
login | description | 空の値 |
Fuse Console の Login ページに表示される説明テキスト (例: | オプション |
links | [ ] |
| オプション | |
disabledRoutes | なし | [ ] | コンソールの特定のパス (プラグインなど) を無効にします。このセクションは変更しないでください。変更は、OpenShift 以外のディストリビューションではサポートされません。 | オプション |