Fuse の管理

Red Hat Fuse 7.4

Fuse Console を使用した Fuse アプリケーションの管理

Fuse Documentation Team

概要

Fuse アプリケーションをデプロイするときに Fuse Console を使用すると Red Hat Fuse インテグテーションを監視し、対話することができます。

前書き

Red Hat Fuse は、Fuse インテグレーションを表示および管理する、以下の 2 つのエンタープライズ管理ツールを提供します。

  • Fuse Console は、ブラウザーからアクセスする web ベースのコンソールで、実行中の Fuse コンテナーを監視および管理します。Fuse Console は Hawtio オープンソースソフトウェア (https://hawt.io/) をベースにしています。本ガイドでは Fuse Console の使用方法を説明します。
  • Prometheus (https://prometheus.io/docs/introduction/overview/) は、Fuse ディストリビューションのシステムおよびインテグレーションレベルのメトリクスを保存します。Grafana などのグラフィカル分析インターフェースを使用して、保存された履歴データを表示および分析できます。Prometheus の使用に関する詳細は『Monitoring Red Hat Integration』を参照してください。

本ガイドの対象読者は Red Hat Fuse の管理者です。本ガイドの読者は、Red Hat Fuse プラットフォーム、Apache Camel、および所属組織の処理要件をよく理解していることを前提としています。

第1章 OpenShift における Red Hat Fuse アプリケーションの監視および管理

1.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
  • Spring Boot
  • OSGI
  • Runtime
  • Logs

1.2. OpenShift での Fuse Console の設定

OpenShift では、Fuse Console にアクセスする方法は 2 つあります。

  • 実行している 1 つの Fuse コンテナーを監視できるように特定の Pod から設定します。
  • 集約型 の Fuse Console カタログアイテムをプロジェクトに追加すると、プロジェクトで実行しているすべての Fuse コンテナーを監視できます。

OpenShift Console またはコマンドラインから Fuse Console をデプロイできます。

注記
  • OpenShift 4 では、Fuse Console で Fuse 7.4 サービスを管理する場合は、『 Fuse 7.4 リリースノート 』の説明どおりにコミュニティーバージョン(Hawtio)をインストールする必要があります。
  • Fuse Console のセキュリティーおよびユーザー管理は、OpenShift によって処理されます。
  • Fuse Console のテンプレートは、デフォルトでエンドツーエンド暗号化を設定するため、Fuse Console のリクエストはブラウザーからクラスター内のサービスまでエンドツーエンドでセキュア化されます。
  • ロールベースアクセス制御 (デプロイ後に Fuse Console にアクセスするユーザーの場合) は現在 Fuse on OpenShift では使用できません。

前提条件

  • Fuse on OpenShift ガイド』の説明にしたがって、Fuse Console の Fuse on OpenShift イメージストリームおよびテンプレートをインストールする必要があります。
  • Fuse Console をクラスターモードで OpenShift Container Platform 環境にデプロイする場合、クラスター管理者ロールとクラスターモードテンプレートが必要です。以下のコマンドを実行します。
oc adm policy add-cluster-role-to-user cluster-admin system:serviceaccount:openshift-infra:template-instance-controller
注記

クラスターモードテンプレートは、デフォルトでは OpenShift Container Platform の最新バージョンでのみ利用できます。OpenShift Online のデフォルトカタログでは提供されません。

1.2.1. Fuse Console からの単一 Fuse Pod の監視

OpenShift で実行している Fuse Pod の Fuse Console を開きます。

  1. OpenShift プロジェクトの Applications → Pods ビューで、Pod 名をクリックし、実行している Fuse Pod の詳細を表示します。このページの右側に、コンテナーテンプレートの概要が表示されます。

    Container Template View

  2. このビューの Open Java Console リンクをクリックし、Fuse Console を開きます。

    Fuse Console view

    注記

    Pod ビューで Fuse Console へのリンクを表示するよう OpenShift を設定するには、Fuse on OpenShift イメージを実行している Pod が jolokia に設定された name 属性内で TCP ポートを宣言する必要があります。

    {
      "kind": "Pod",
      [...]
      "spec": {
        "containers": [
          {
            [...]
            "ports": [
              {
                "name": "jolokia",
                "containerPort": 8778,
                "protocol": "TCP"
              }

1.2.2. OpenShift Console からの Fuse Console のデプロイ

OpenShift Console から OpenShift クラスターで Fuse Console をデプロイするには、以下の手順にしたがいます。

手順

  1. OpenShift コンソールで既存のプロジェクトを開くか、新しいプロジェクトを作成します。
  2. Fuse Console を OpenShift プロジェクトに追加します。

    1. Add to ProjectBrowse Catalog と選択します。

      Select an item to add to the current project ページが開きます。

    2. Search フィールドで Fuse Console を入力します。

      Red Hat Fuse 7.x Console および Red Hat Fuse 7.x Console (cluster) アイテムが検索結果として表示されるはずです。

注記

Red Hat Fuse Console アイテムが検索結果として表示されない場合や、表示されるアイテムが最新バージョンでない場合は、『Fuse on OpenShift ガイド』の「OpenShift サーバーの準備」セクションにある説明にしたがって、Fuse Console テンプレートを手作業でインストールすることができます。

  1. Red Hat Fuse Console アイテムの 1 つをクリックします。

    • Red Hat Fuse 7.x Console - このバージョンの Fuse Console は、現在の OpenShift プロジェクトにデプロイされた Fuse アプリケーションを検出し、接続します。
    • Red Hat Fuse 7.x Console (cluster) - このバージョンの Fuse Console は、OpenShift クラスターの複数のプロジェクトにデプロイされた Fuse アプリケーションを検出し、接続します。
  2. Red Hat Fuse Console ウィザードで Next をクリックします。ウィザードの Configuration ページが開きます。

    任意で、設定パラメーターのデフォルト値を変更できます。

    1. Create をクリックします。

      ウィザードの Results ページに Red Hat Fuse Console が作成されたことが表示されます。

    2. Continue to the project overview をクリックし、Fuse Console アプリケーションがプロジェクトに追加されたことを確認します。
    3. Fuse Console を開き、提供された URL をクリックした後にログインします。

      ブラウザーに Authorize Access ページが表示され、必要なパーミッションが表示されます。

    4. Allow selected permissions をクリックします。

      ブラウザーで Fuse Console が開かれ、プロジェクトで実行されている Fuse の Pod が表示されます。

    5. 表示するアプリケーションの Connect をクリックします。

      新しいブラウザーウィンドウが開かれ、Fuse Console にアプリケーションが表示されます。

1.2.3. コマンドラインからの Fuse Console のデプロイ

表1.1「Fuse Console テンプレート」 は、Fuse アプリケーションのデプロイメントのタイプに応じて、コマンドラインから Fuse Console へのアクセスに使用できる 2 つの OpenShift テンプレートについて説明しています。

表1.1 Fuse Console テンプレート

タイプ説明

cluster

クラスター管理者ロールの作成を必要とする OAuth クライアントを使用します。Fuse Console は、複数の namespace またはプロジェクトにまたがってデプロイされた Fuse アプリケーションを検出し、接続することができます。

namespace

プロジェクトでの管理者ロールの作成のみを必要とする、サービスアカウントを OAuth クライアントとして使用します。これにより、Fuse Console のこの単一プロジェクトへのアクセスが制限されるため、単一テナントのデプロイメントとして動作します。

任意で、以下のコマンドを実行するとテンプレートパラメーターの一覧を表示できます。

oc process --parameters -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.fuse-740025-redhat-00003/fis-console-namespace-template.json

手順

コマンドラインから Fuse Console をデプロイするには、以下を行います。

  1. 以下のコマンドの 1 つを実行して、Fuse Console テンプレートをベースとした新しいアプリケーションを作成します。コマンドの myproject はプロジェクトの名前に置き換えます。

    • Fuse Console の cluster テンプレートの場合は、以下のようになります。myhost は Fuse Console にアクセスするホストの名前になります。

      oc new-app -n myproject -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.fuse-740025-redhat-00003/fis-console-cluster-template.json -p ROUTE_HOSTNAME=myhost
    • Fuse Console の namespace テンプレートの場合は以下のようになります。

      oc new-app -n myproject -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.fuse-740025-redhat-00003/fis-console-namespace-template.json
      注記

      namespace テンプレートの route_hostname パラメーターは OpenShift によって自動的に生成されるため、省略することが可能です。

  2. 以下のコマンドを実行して、Fuse Console デプロイメントの状態と URL を取得します。

    oc status
  3. ブラウザーから Fuse Console にアクセスするには、提供される URL (例: https://fuse-console.192.168.64.12.nip.io) を使用します。

1.2.4. Fuse Console でデータが正しく表示されるよう確認

Fuse Console のキューおよびコネクションの表示で、不足しているキューやコネクションがあったり、一貫性のないアイコンが表示される場合、Jolokia が応答でマーシャルするアレイの要素の最大数を指定する、Jolokia コレクションサイズパラメーターを調節します。

手順

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

    mf preferences

  2. Maximum collection size オプションの値を大きくします (デフォルトは 50,000)。
  3. Close をクリックします。

1.3. コンテナーおよびアプリケーションの表示

OpenShift の Fuse Console にログインすると、Fuse Console のホームページに利用可能なコンテナーが表示されます。

手順

  • コンテナーを管理 (作成、編集、または削除) するには、OpenShift コンソールを使用します。
  • OpenShift クラスターで Fuse アプリケーションを表示するには、Online タブをクリックします。

1.4. Apache Camel アプリケーションの表示および管理

Fuse Console の Camel タブで Apache Camel のコンテキスト、ルート、および依存関係を表示および管理します。

次の詳細を表示できます。

  • 実行中の Camel コンテキストすべてのリスト。
  • Camel バージョン番号やランタイム統計など、各 Camel コンテキストの詳細情報。
  • 各 Camel アプリケーションの全ルートおよびランタイム統計のリスト。
  • 実行中のルートとリアルタイムのメトリクスのグラフィック表示。

また、以下を行うと Camel アプリケーションと対話もできます。

  • コンテキストの開始および一時停止。
  • 再起動、停止、一時停止、再開などを実行できるよう、すべての Camel アプリケーションとそれらのルートのライフサイクルを管理。
  • 実行中のルートのライブトレースおよびデバッグ。
  • Camel エンドポイントへのメッセージの閲覧および送信。

前提条件

Camel タブは、1 つ以上の Camel ルートを使用するコンテナーに接続する場合のみ使用できます。

1.4.1. コンテキストの開始、一時停止、または削除

  1. Camel タブのツリービューで、Camel Contexts をクリックします。
  2. リストのコンテキストの横にあるボックスにチェックマークを入れます。
  3. Start または Suspend をクリックします。
  4. コンテキストを削除するには以下を行います。

    1. コンテキストを停止します。
    2. 楕円のアイコンをクリックし、ドロップダウンメニューで Delete を選択します。
注記

コンテキストを削除する場合、デプロイされたアプリケーションから削除します。

1.4.2. Camel アプリケーションの詳細表示

  1. Camel タブのツリービューで、Camel アプリケーションをクリックします。
  2. アプリケーションの属性と値のリストを表示するには、Attributes をクリックします。
  3. アプリケーション属性をグラフィックに表示するには、Chart をクリックした後、Edit をクリックし、チャートに表示する属性を選択します。
  4. inflight exchange および blocked exchange を表示するには、Exchanges をクリックします。
  5. アプリケーションエンドポイントを表示するには、Endpoints をクリックします。リストは URLRoute ID、および direction で絞り込むことができます。
  6. メッセージ本文とメッセージヘッダーを別のタイプに変換するために使用される Camel 組み込みタイプ変換メカニズムに関連する統計を表示、有効化、および無効化するには、Type Converters をクリックします。
  7. JMX 操作 (XML からのルートの追加または更新、クラスパスで利用できる Camel コンポーネントの検索など) を表示および実行するには、Operations をクリックします。

1.4.3. Camel ルートリストの表示および Camel ルートとの対話

  1. ルートのリストを表示するには、以下を行います。

    1. Camel タブをクリックします。
    2. ツリービューでアプリケーションの routes フォルダーをクリックします。

      mf list of routes

  2. 1 つまたは複数のルートを開始、停止、または削除するには、以下を行います。

    1. リストのルートの横にあるボックスにチェックマークを入れます。
    2. Start または Stop をクリックします。
    3. 最初にルートを停止してから削除する必要があります。停止したら楕円のアイコンをクリックし、ドロップダウンメニューで Delete を選択します。

      mf delete route

      注記
      • ルートを削除する場合、デプロイされたアプリケーションから削除します。
      • ツリービューで特定のルートを選択し、右上のメニューをクリックして開始、停止、または削除することもできます。
  3. ルートのグラフィックな図を表示するには、Route Diagram をクリックします。
  4. inflight exchange および blocked exchange を表示するには、Exchanges をクリックします。
  5. エンドポイントを表示するには、Endpoints をクリックします。URL、Route ID、および方向でリストを絞り込むことができます。
  6. Type Converters をクリックし、Camel の組み込みタイプ変換メカニズムに関連する統計を表示、有効化、および無効化します。このメカニズムはメッセージ本文とメッセージヘッダーを別のタイプに変換するために使用されます。
  7. 特定のルートと対話するには、以下を行います。

    1. Camel タブのツリービューで、ルートを選択します。
    2. ルート属性と値のリストを表示するには、Attributes をクリックします。
    3. ルート属性をグラフィックに表示するには、Chart をクリックします。Edit をクリックするとチャートに表示する属性を選択することができます。
    4. inflight exchange および blocked exchange を表示するには、Exchanges をクリックします。
    5. Operations をクリックして JMX 操作 (ルートを XML としてダンプ、ルートの Camel ID 値の取得など) を表示および実行できます。
  8. ルートを介してメッセージをトレースするには、以下を実行します。

    1. Camel タブのツリービューで、ルートを選択します。
    2. Trace を選択し、Start tracing をクリックします。
  9. メッセージをルートに送信するには、以下を行います。

    1. Camel タブのツリービューでコンテキストのエンドポイントフォルダーを開き、エンドポイントを選択します。
    2. Send サブタブをクリックします。
    3. JSON または XML 形式のメッセージを設定します。
    4. Send をクリックします。
    5. ルートの Trace タブに戻り、ルートを介したメッセージのフローを確認します。

1.4.4. ルートのデバッグ

  1. Camel タブのツリービューで、ルートを選択します。
  2. Debug を選択し、Start debugging をクリックします。
  3. ブレークポイントを追加するには、図のノードを選択し、Add breakpoint をクリックします。ノードに赤い点が表示されます。

    mf breakpoint

    ノードがブレークポイントのリストに追加されます。

    mf breakpointlist

  4. 下矢印をクリックして次のノードに移動するか、Play ボタンをクリックしてルートの実行を再開します。
  5. Pause ボタンをクリックして、ルートのすべてのスレッドを一時停止します。
  6. 終了したら Stop debugging をクリックします。すべてのブレークポイントが消去されます。

1.5. JMX ドメインおよび MBean の表示および管理

JMX (Java Management Extensions) は、実行時にリソース (サービス、デバイス、およびアプリケーション) を動的に管理できる Java 技術です。リソースは MBean (Managed Bean) と呼ばれるオブジェクトで表現されます。リソースが作成、実装、またはインストールされると即座に管理することができます。

Fuse Console で JMX プラグインを使用すると、JMX ドメインと MBean を表示および管理できます。MBean 属性の表示、コマンドの実行、および MBean の統計を示すチャートの作成を行うことができます。

JMX タブは、フォルダーに整理されたアクティブな JMX ドメインと MBean のツリービューを提供します。詳細を確認し、MBean でコマンドを実行できます。

手順

  1. MBean 属性を表示および編集するには、以下を行います。

    1. ツリービューで MBean を選択します。
    2. Attributes タブをクリックします。
    3. 属性をクリックしてその詳細を表示します。
  2. 操作を実行するには、以下を行います。

    1. ツリービューで MBean を選択します。
    2. Operations タブをクリックし、リストにある操作の 1 つを展開します。
    3. Execute をクリックし、操作を実行します。
  3. チャートを表示するには、以下を行います。

    1. ツリービューで項目を選択します。
    2. Chart タブをクリックします。

1.6. 診断の表示

Diagnostics タブを使用して、JVM DiagnosticCommand および HotspotDiangostic インターフェースから JVM に関する診断情報を表示します。

注記

この機能は、Java Mission Control (jmc) の Diagnostic Commands ビューや、コマンドラインツールの jcmd と似ています。場合によっては、プラグインが対応する jcmd コマンドを提供します。

手順

  1. ロードされたクラスのインスタンス数や、これらのインスタンスが使用するバイト数を取得するには、Class Histogram をクリックします。操作が繰り返し行われると、最後の操作実行との差異がタブに表示されます。
  2. JVM 診断フラグ設定を表示するには、JVM flags をクリックします。
  3. 稼働中の JVM でもフラグ設定を変更できます。

その他のリソース

サポートされる JVM はプラットフォームによって異なります。詳細は以下を参照してください。

1.7. スレッドの表示

スレッドの状態を表示および監視できます。

手順

  1. Runtime タブをクリックし、Threads サブタブをクリックします。Threads ページには、アクティブなスレッドと各スレッドのスタックトレースの詳細が表示されます。デフォルトでは、スレッドリストにはすべてのスレッドが ID 値が大きい順に表示されます。
  2. ID 値が小さい順に表示するには、ID 列ラベルをクリックします。
  3. 任意で、スレッドの状態 (例: Blocked) やスレッド名でリストを絞り込むことができます。
  4. ロッククラス名やスレッドのフルスタックトレースなど、特定スレッドの詳細情報を表示するには、Actions 列で More をクリックします。

第2章 Spring Boot スタンドアロンでの Red Hat Fuse アプリケーションの監視および管理

2.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
  • Spring Boot
  • OSGI
  • Runtime
  • Logs

2.2. Spring Boot 2.x の Fuse Console へのアクセス

スタンドアロン Fuse Spring Boot 2.x ディストリビューションの Fuse Console にアクセスできます。

手順

  1. 以下の依存関係を Fuse アプリケーションの pom.xml ファイルに追加します。

    <dependency>
      <groupId>io.hawt</groupId>
      <artifactId>hawtio-springboot</artifactId>
    </dependency>

    バージョンは Maven BOM によって提供されるため、指定する必要はありません。

  2. src/main/resources/application.properties ファイルを編集します。

    1. 以下のプロパティーを設定します。

      • management.endpoints.web.exposure.include=hawtio,jolokia
      • hawtio.authenticationEnabled=false
      • management.endpoint.hawtio.enabled=true
      • management.endpoint.jolokia.enabled=true
    2. 必要に応じて management.endpoints.web.base-path プロパティーを設定します。

      Spring Boot 2.x のデフォルトでは、Fuse Console の URL に管理エンドポイントのコンテキストパス (/actuator) が含まれます。以下に例を示します。

      http://localhost:10001/actuator/hawtio/index.html

      このデフォルト URL を変更し、たとえば Spring Boot 1.x のデフォルトの URL と同じ形式 (http://localhost:10001/hawtio) を指定するには、management.endpoints.web.base-path プロパティーを以下のように設定します。

      management.endpoints.web.base-path=/

      application.properties 設定は以下の例のようになるはずです。

      # ports
      
      server.port=8080
      
      management.server.port=10001
      
      # enable management endpoints for healthchecks and hawtio
      
      management.endpoints.enabled-by-default = false
      
      management.endpoint.hawtio.enabled = true
      
      management.endpoint.jolokia.enabled = true
      
      management.endpoints.health.enabled = true
      
      management.health.defaults.enabled=false
      
      camel.health.enabled=false
      
      camel.health.indicator.enabled=true
      
      management.endpoints.web.exposure.include=hawtio,jolokia
      
      hawtio.authenticationEnabled=false
      
      # change the URL so that it does not include the actuator folder
      
      management.endpoints.web.base-path=/
      注記

      デフォルトでは、Spring Boot の Fuse Console の認証は無効になっています。任意で、Fuse Console ディストリビューションに固有するコードを作成すると、認証を有効にすることができます。例は次のとおりです。

      https://github.com/hawtio/hawtio/tree/master/examples/springboot-authentication

  3. Fuse アプリケーションを実行します。

    mvn spring-boot:run
  4. Fuse Console の URL のポート番号を特定するには、src/main/resources/application.properties ファイルで management.server.port の設定値を見つけます。以下に例を示します。

    management.server.port   = 10001
  5. ブラウザーで Fuse Console を開くには、以下の URL 構文を使用します。nnnnnmanagement.server.port プロパティーの値に置き換えます。

    http://localhost:nnnnn/actuator/hawtio

    たとえば、management.server.port プロパティーの値が 10001 で、management.endpoints.web.base-path プロパティーが設定されていない場合、URL は以下になります。

    http://localhost:10001/actuator/hawtio/index.html

2.3. Spring Boot 1.x の Fuse Console へのアクセス

スタンドアロン Fuse Spring Boot 1.x ディストリビューションの Fuse Console にアクセスできます。

手順

  1. 以下の依存関係を Fuse アプリケーションの pom.xml ファイルに追加します。

    <dependency>
      <groupId>io.hawt</groupId>
      <artifactId>hawtio-springboot-1</artifactId>
    </dependency>

    バージョンは Maven BOM によって提供されるため、指定する必要はありません。

  2. src/main/resources/application.properties ファイルを編集します。

    1. 以下のプロパティーを false に設定します。

      • endpoints.jolokia.sensitive
      • endpoints.hawtio.sensitive
      • hawtio.authenticationEnabled
    2. 以下のプロパティーを true に設定します。

      • endpoints.hawtio.enabled
      • endpoints.jolokia.enabled

        application.properties 設定は以下の例のようになるはずです。

        # ports
        
        server.port=8080
        
        management.port=10001
        
        
        # enable management endpoints for healthchecks and hawtio
        
        endpoints.enabled = false
        
        endpoints.hawtio.enabled = true
        
        endpoints.jolokia.enabled = true
        
        endpoints.health.enabled = true
        
        management.health.defaults.enabled=false
        
        camel.health.enabled=false
        
        camel.health.indicator.enabled=true
        
        endpoints.jolokia.sensitive=false
        
        endpoints.hawtio.sensitive=false
        
        hawtio.authenticationEnabled=false
        注記

        デフォルトでは、Spring Boot の Fuse Console の認証は無効になっています。任意で、Fuse Console ディストリビューションに固有するコードを作成すると、認証を有効にすることができます。例は次のとおりです。

        https://github.com/hawtio/hawtio/tree/master/examples/springboot-authentication

  3. Fuse アプリケーションを実行します。

    mvn spring-boot:run
  4. Fuse Console の URL のポート番号を特定するには、src/main/resources/application.properties ファイルで management.port の設定値を見つけます。以下に例を示します。

    management.port   = 10001
  5. ブラウザーで Fuse Console を開くには、以下の URL 構文を使用します。nnnnnmanagement.port プロパティーの値に置き換えます。

    http://localhost:nnnnn/hawtio/index.html

    例: http://localhost:10001/hawtio/index.html

2.4. Fuse Console のセキュア化

Spring Boot で Fuse Console をセキュアにするには、以下を行います。

  • 必要なプロトコルとして HTTPS を設定する

    hawtio.http.strictTransportSecurity プロパティーを使用すると、Web ブラウザーでセキュア HTTPS プロトコルを使用して Fuse Console にアクセスするよう要求できます。このプロパティーでは、HTTP を使用して Fuse Console へのアクセスを試みる Web ブラウザーは、要求を自動的に変換して HTTPS を使用する必要があることが指定されます。

  • 公開鍵を使用して応答をセキュアにする

    特定の暗号の公開鍵を Fuse Console に関連付けし、偽造された証明書を使用した「中間者攻撃」のリスクを軽減するよう Web ブラウザーに要求すると、hawtio.http.publicKeyPins プロパティーを使用して HTTPS プロトコルをセキュアにすることができます。

手順

以下の例のように、hawtio.http.strictTransportSecurity および hawtio.http.publicKeyPins プロパティーを設定します。

public static void main(String[] args) {
    System.setProperty("hawtio.http.strictTransportSecurity", "max-age=31536000; includeSubDomains; preload");
    System.setProperty("hawtio.http.publicKeyPins", "pin-sha256=cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs"; max-age=5184000; includeSubDomains");
    SpringApplication.run(YourSpringBootApplication.class, args);
}

その他のリソース

  • hawtio.http.strictTransportSecurity プロパティーの構文の説明は、HTTP Strict Transport Security (HSTS) 応答ヘッダーの説明ページを参照してください。
  • hawtio.http.publicKeyPins プロパティーの構文や、Base64 でエンコードされた公開鍵の抽出方法の説明は、HTTP Public Key Pinning 応答ヘッダーの説明ページを参照してください。

2.5. Fuse Console でデータが正しく表示されるよう確認

Fuse Console のキューおよびコネクションの表示で、不足しているキューやコネクションがあったり、一貫性のないアイコンが表示される場合、Jolokia が応答でマーシャルするアレイの要素の最大数を指定する、Jolokia コレクションサイズパラメーターを調節します。

手順

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

    mf preferences

  2. Maximum collection size オプションの値を大きくします (デフォルトは 50,000)。
  3. Close をクリックします。

2.6. リモート 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) を参照してください。

手順

Fuse Console のプロキシーサーブレットはホワイトリストを使ってホストを保護し、Fuse Console はデフォルトではローカルホストのみに接続できます。Fuse Console を他のリモート Fuse インスタンスに接続する場合は、Spring Boot アプリケーションの main() メソッドにある hawtio.proxyWhitelist プロパティーを以下のように設定する必要があります。

+

System.setProperty("hawtio.proxyWhitelist", "localhost, 127.0.0.1, myhost1, myhost2, myhost3");

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

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

Spring Boot の Jolokia エージェントのデフォルトコネクション URL は http://<host>:8080/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 以外のローカルネットワークインターフェースをプローブし、ホワイトリストに追加します。そのため、ローカルマシンのアドレスを手作業でホワイトリストに登録する必要はありません。

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

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 をクリックします。

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

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

2.7. Apache Camel アプリケーションの表示および管理

Fuse Console の Camel タブで Apache Camel のコンテキスト、ルート、および依存関係を表示および管理します。

次の詳細を表示できます。

  • 実行中の Camel コンテキストすべてのリスト。
  • Camel バージョン番号やランタイム統計など、各 Camel コンテキストの詳細情報。
  • 各 Camel アプリケーションの全ルートおよびランタイム統計のリスト。
  • 実行中のルートとリアルタイムのメトリクスのグラフィック表示。

また、以下を行うと Camel アプリケーションと対話もできます。

  • コンテキストの開始および一時停止。
  • 再起動、停止、一時停止、再開などを実行できるよう、すべての Camel アプリケーションとそれらのルートのライフサイクルを管理。
  • 実行中のルートのライブトレースおよびデバッグ。
  • Camel エンドポイントへのメッセージの閲覧および送信。

前提条件

Camel タブは、1 つ以上の Camel ルートを使用するコンテナーに接続する場合のみ使用できます。

2.7.1. コンテキストの開始、一時停止、または削除

  1. Camel タブのツリービューで、Camel Contexts をクリックします。
  2. リストのコンテキストの横にあるボックスにチェックマークを入れます。
  3. Start または Suspend をクリックします。
  4. コンテキストを削除するには以下を行います。

    1. コンテキストを停止します。
    2. 楕円のアイコンをクリックし、ドロップダウンメニューで Delete を選択します。
注記

コンテキストを削除する場合、デプロイされたアプリケーションから削除します。

2.7.2. Camel アプリケーションの詳細表示

  1. Camel タブのツリービューで、Camel アプリケーションをクリックします。
  2. アプリケーションの属性と値のリストを表示するには、Attributes をクリックします。
  3. アプリケーション属性をグラフィックに表示するには、Chart をクリックした後、Edit をクリックし、チャートに表示する属性を選択します。
  4. inflight exchange および blocked exchange を表示するには、Exchanges をクリックします。
  5. アプリケーションエンドポイントを表示するには、Endpoints をクリックします。リストは URLRoute ID、および direction で絞り込むことができます。
  6. メッセージ本文とメッセージヘッダーを別のタイプに変換するために使用される Camel 組み込みタイプ変換メカニズムに関連する統計を表示、有効化、および無効化するには、Type Converters をクリックします。
  7. JMX 操作 (XML からのルートの追加または更新、クラスパスで利用できる Camel コンポーネントの検索など) を表示および実行するには、Operations をクリックします。

2.7.3. Camel ルートリストの表示および Camel ルートとの対話

  1. ルートのリストを表示するには、以下を行います。

    1. Camel タブをクリックします。
    2. ツリービューでアプリケーションの routes フォルダーをクリックします。

      mf list of routes

  2. 1 つまたは複数のルートを開始、停止、または削除するには、以下を行います。

    1. リストのルートの横にあるボックスにチェックマークを入れます。
    2. Start または Stop をクリックします。
    3. 最初にルートを停止してから削除する必要があります。停止したら楕円のアイコンをクリックし、ドロップダウンメニューで Delete を選択します。

      mf delete route

      注記
      • ルートを削除する場合、デプロイされたアプリケーションから削除します。
      • ツリービューで特定のルートを選択し、右上のメニューをクリックして開始、停止、または削除することもできます。
  3. ルートのグラフィックな図を表示するには、Route Diagram をクリックします。
  4. inflight exchange および blocked exchange を表示するには、Exchanges をクリックします。
  5. エンドポイントを表示するには、Endpoints をクリックします。URL、Route ID、および方向でリストを絞り込むことができます。
  6. Type Converters をクリックし、Camel の組み込みタイプ変換メカニズムに関連する統計を表示、有効化、および無効化します。このメカニズムはメッセージ本文とメッセージヘッダーを別のタイプに変換するために使用されます。
  7. 特定のルートと対話するには、以下を行います。

    1. Camel タブのツリービューで、ルートを選択します。
    2. ルート属性と値のリストを表示するには、Attributes をクリックします。
    3. ルート属性をグラフィックに表示するには、Chart をクリックします。Edit をクリックするとチャートに表示する属性を選択することができます。
    4. inflight exchange および blocked exchange を表示するには、Exchanges をクリックします。
    5. Operations をクリックして JMX 操作 (ルートを XML としてダンプ、ルートの Camel ID 値の取得など) を表示および実行できます。
  8. ルートを介してメッセージをトレースするには、以下を実行します。

    1. Camel タブのツリービューで、ルートを選択します。
    2. Trace を選択し、Start tracing をクリックします。
  9. メッセージをルートに送信するには、以下を行います。

    1. Camel タブのツリービューでコンテキストのエンドポイントフォルダーを開き、エンドポイントを選択します。
    2. Send サブタブをクリックします。
    3. JSON または XML 形式のメッセージを設定します。
    4. Send をクリックします。
    5. ルートの Trace タブに戻り、ルートを介したメッセージのフローを確認します。

2.7.4. ルートのデバッグ

  1. Camel タブのツリービューで、ルートを選択します。
  2. Debug を選択し、Start debugging をクリックします。
  3. ブレークポイントを追加するには、図のノードを選択し、Add breakpoint をクリックします。ノードに赤い点が表示されます。

    mf breakpoint

    ノードがブレークポイントのリストに追加されます。

    mf breakpointlist

  4. 下矢印をクリックして次のノードに移動するか、Play ボタンをクリックしてルートの実行を再開します。
  5. Pause ボタンをクリックして、ルートのすべてのスレッドを一時停止します。
  6. 終了したら Stop debugging をクリックします。すべてのブレークポイントが消去されます。

2.8. JMX ドメインおよび MBean の表示および管理

JMX (Java Management Extensions) は、実行時にリソース (サービス、デバイス、およびアプリケーション) を動的に管理できる Java 技術です。リソースは MBean (Managed Bean) と呼ばれるオブジェクトで表現されます。リソースが作成、実装、またはインストールされると即座に管理することができます。

Fuse Console で JMX プラグインを使用すると、JMX ドメインと MBean を表示および管理できます。MBean 属性の表示、コマンドの実行、および MBean の統計を示すチャートの作成を行うことができます。

JMX タブは、フォルダーに整理されたアクティブな JMX ドメインと MBean のツリービューを提供します。詳細を確認し、MBean でコマンドを実行できます。

手順

  1. MBean 属性を表示および編集するには、以下を行います。

    1. ツリービューで MBean を選択します。
    2. Attributes タブをクリックします。
    3. 属性をクリックしてその詳細を表示します。
  2. 操作を実行するには、以下を行います。

    1. ツリービューで MBean を選択します。
    2. Operations タブをクリックし、リストにある操作の 1 つを展開します。
    3. Execute をクリックし、操作を実行します。
  3. チャートを表示するには、以下を行います。

    1. ツリービューで項目を選択します。
    2. Chart タブをクリックします。

2.9. 診断の表示

Diagnostics タブを使用して、JVM DiagnosticCommand および HotspotDiangostic インターフェースから JVM に関する診断情報を表示します。

注記

この機能は、Java Mission Control (jmc) の Diagnostic Commands ビューや、コマンドラインツールの jcmd と似ています。場合によっては、プラグインが対応する jcmd コマンドを提供します。

手順

  1. ロードされたクラスのインスタンス数や、これらのインスタンスが使用するバイト数を取得するには、Class Histogram をクリックします。操作が繰り返し行われると、最後の操作実行との差異がタブに表示されます。
  2. JVM 診断フラグ設定を表示するには、JVM flags をクリックします。
  3. 稼働中の JVM でもフラグ設定を変更できます。

その他のリソース

サポートされる JVM はプラットフォームによって異なります。詳細は以下を参照してください。

2.10. スレッドの表示

スレッドの状態を表示および監視できます。

手順

  1. Runtime タブをクリックし、Threads サブタブをクリックします。Threads ページには、アクティブなスレッドと各スレッドのスタックトレースの詳細が表示されます。デフォルトでは、スレッドリストにはすべてのスレッドが ID 値が大きい順に表示されます。
  2. ID 値が小さい順に表示するには、ID 列ラベルをクリックします。
  3. 任意で、スレッドの状態 (例: Blocked) やスレッド名でリストを絞り込むことができます。
  4. ロッククラス名やスレッドのフルスタックトレースなど、特定スレッドの詳細情報を表示するには、Actions 列で More をクリックします。

第3章 Karaf スタンドアロンの Red Hat Fuse アプリケーションの監視および管理

3.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
  • Spring Boot
  • OSGI
  • Runtime
  • Logs

3.2. Fuse Console へのアクセス

Apache Karaf スタンドアロンの Fuse Console にアクセスするには、以下の手順にしたがいます。

前提条件

Karaf コンテナーに Fuse をインストールします。ステップごとの手順は『Installing on Apache Karaf』を参照してください。

手順

  1. コマンドラインで、Red Hat Fuse をインストールしたディレクトリーに移動し、以下のコマンドを実行して Fuse スタンドアロンを起動します。

    ./bin/fuse

    Karaf コンソールが起動し、バージョン情報、デフォルトの Fuse Console URL、および一般的なコマンドのリストが表示されます。

  2. ブラウザーで URL を入力し、Fuse Console に接続します。例: http://localhost:8181/hawtio
  3. ログインページでユーザー名とパスワードを入力し、Log In をクリックします。

デフォルトでは、Fuse Console に Home ページが表示されます。左側のナビゲーションタブには実行中のプラグインが表示されます。

3.3. Fuse Console のセキュア化

Apache Karaf で Fuse Console をセキュアにするには、以下を行います。

  • 必要なプロトコルとして HTTPS を設定する

    hawtio.http.strictTransportSecurity プロパティーを使用すると、Web ブラウザーでセキュア HTTPS プロトコルを使用して Fuse Console にアクセスするよう要求できます。このプロパティーでは、HTTP を使用して Fuse Console へのアクセスを試みる Web ブラウザーは、要求を自動的に変換して HTTPS を使用する必要があることが指定されます。

  • 公開鍵を使用して応答をセキュアにする

    特定の暗号の公開鍵を Fuse Console に関連付けし、偽造された証明書を使用した「中間者攻撃」のリスクを軽減するよう Web ブラウザーに要求すると、hawtio.http.publicKeyPins プロパティーを使用して HTTPS プロトコルをセキュアにすることができます。

  • SSL/TLS セキュリティーを有効にする

    SSL/TLS セキュリティーは、Fuse Console ではデフォルトで有効になっていません。Fuse Console で SSL/TLS セキュリティーを有効にして、ユーザー名およびパスワードのクレデンシャルをスヌーピングから保護することが推奨されます。

  • Red Hat Single Sign On を実装する
  • ユーザーのアクセスを制御する

    表3.1「Karaf スタンドアロンでのロールベースアクセス」 に記載されているとおり、認証されたユーザーが実行できる操作はそのユーザーに割り当てられたロールによって異なります。

手順

  1. HTTPS を必須のプロトコルとして設定するには、$KARAF_HOME/etc/system.properties ファイルの hawtio.http.strictTransportSecurity プロパティーを以下の例のように設定します。

    hawtio.http.strictTransportSecurity = max-age=31536000; includeSubDomains; preload
  2. 公開鍵を使用して応答をセキュアにするには、$KARAF_HOME/etc/system.properties ファイルの hawtio.http.publicKeyPins プロパティーを以下の例のように設定します。

    hawtio.http.publicKeyPins = pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs"; max-age=5184000; includeSubDomains
  3. SSL/TLS セキュリティーを有効にする方法の詳細は、『Apache Karaf Security Guide』の「Enabling SSL/TLS for Undertow in an Apache Karaf container」を参照してください。
  4. Red Hat Single Sign-On で Fuse Console をセキュアにする方法については、『Red Hat Single Sign-on Securing Applications and Services Guide』の「Securing the Hawtio Administration Console」セクションを参照してください。
  5. 以下の手順にしたがってユーザーロールを設定し、必要な Fuse Console 操作を実行できる権限をユーザーに付与します。

    1. エディターで Red Hat Fuse etc/users.properties ファイルを開きます。
    2. ユーザー名、パスワード、およびロールのエントリーを追加します。

      たとえば、etc/users.properties ファイルの以下のエントリーは管理ユーザーを定義し、管理ロールを割り当てます。

      admin = secretpass,admin
    3. ファイルを保存します。

その他のリソース

  • hawtio.http.strictTransportSecurity プロパティーの構文の説明は、HTTP Strict Transport Security (HSTS) 応答ヘッダーの説明ページを参照してください。
  • hawtio.http.publicKeyPins プロパティーの構文や、Base64 でエンコードされた公開鍵の抽出方法の説明は、HTTP Public Key Pinning 応答ヘッダーの説明ページを参照してください。

3.4. ロールベースのアクセス参照

表3.1「Karaf スタンドアロンでのロールベースアクセス」 に記載されているとおり、認証されたユーザーが実行できる操作はそのユーザーに割り当てられたロールによって異なります。

表3.1 Karaf スタンドアロンでのロールベースアクセス

操作adminmanager (マネージャー)viewer

ログイン/ログアウト

可能

可能

可能

ヘルプトピックの表示

可能

可能

可能

ユーザー設定の指定

可能

可能

可能

接続

   

リモートインテグレーションの検出および接続

可能

可能

可能

ローカルインテグレーションの検出および接続

可能

可能

可能

Camel

   

実行中の Camel アプリケーションをすべて表示

可能

可能

可能

Camel コンテキストの開始、一時停止、再開、および削除

可能

可能

 

メッセージの送信

可能

可能

 

エンドポイントの追加

可能

可能

 

ルート、ルート図、およびランタイム統計の表示

可能

可能

可能

ルートの起動と停止

可能

可能

 

ルートの削除

可能

可能

 

JMX

   

属性値の変更

可能

可能

 

タイムベースチャートで属性を選択および表示

可能

可能

可能

操作の表示

可能

可能

可能

OSGI

   

バンドル、機能、パッケージ、サービス、サーバー、フレームワーク、および設定を表示

可能

可能

可能

バンドルの追加および削除

可能

可能

 

設定の追加

可能

可能

 

機能のインストールおよびアンインストール

可能

  

Runtime

   

システムプロパティー、メトリクス、およびスレッドの表示

可能

可能

可能

Logs

   

ログの表示

可能

可能

可能

その他のリソース

ロールベースアクセス制御の詳細は、『Deploying into Apache Karaf』を参照してください。

3.5. 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 をすでに実行した場合、ブランディングはブラウザーのローカルストレージに保存されます。新しいブランディング設定を使用するには、ブラウザーのローカルストレージをクリアする必要があります。

3.6. Fuse Console でデータが正しく表示されるよう確認

Fuse Console のキューおよびコネクションの表示で、不足しているキューやコネクションがあったり、一貫性のないアイコンが表示される場合、Jolokia が応答でマーシャルするアレイの要素の最大数を指定する、Jolokia コレクションサイズパラメーターを調節します。

手順

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

    mf preferences

  2. Maximum collection size オプションの値を大きくします (デフォルトは 50,000)。
  3. Close をクリックします。

3.7. Fuse Console の無効化

Karaf で Fuse Console を無効にすると、他のコンポーネントに影響を与えずにすべてのユーザーをアクセス不可能にすることができます。

手順

  1. hawtio-web バンドル ID を特定するには、以下のコマンドを使用して Fuse Console が使用する Fuse バンドルをリストします。

    osgi:list | grep hawtio

  2. バンドルを停止するには、osgi:stop コマンドを使用します。たとえば、hawtio :: Web console バンドルの ID が 246 の場合、以下のコマンドを入力します。

    osgi:stop 246

バンドルが解決状態になり、Fuse Console にアクセスできないようになります。

その他のリソース

バンドルの管理に関する詳細は『Deploying into Apache Karaf』の「Lifecycle Management」の章を参照してください。

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 タブをクリックします。

3.9. Apache Camel アプリケーションの表示および管理

Fuse Console の Camel タブで Apache Camel のコンテキスト、ルート、および依存関係を表示および管理します。

次の詳細を表示できます。

  • 実行中の Camel コンテキストすべてのリスト。
  • Camel バージョン番号やランタイム統計など、各 Camel コンテキストの詳細情報。
  • 各 Camel アプリケーションの全ルートおよびランタイム統計のリスト。
  • 実行中のルートとリアルタイムのメトリクスのグラフィック表示。

また、以下を行うと Camel アプリケーションと対話もできます。

  • コンテキストの開始および一時停止。
  • 再起動、停止、一時停止、再開などを実行できるよう、すべての Camel アプリケーションとそれらのルートのライフサイクルを管理。
  • 実行中のルートのライブトレースおよびデバッグ。
  • Camel エンドポイントへのメッセージの閲覧および送信。

前提条件

Camel タブは、1 つ以上の Camel ルートを使用するコンテナーに接続する場合のみ使用できます。

3.9.1. コンテキストの開始、一時停止、または削除

  1. Camel タブのツリービューで、Camel Contexts をクリックします。
  2. リストのコンテキストの横にあるボックスにチェックマークを入れます。
  3. Start または Suspend をクリックします。
  4. コンテキストを削除するには以下を行います。

    1. コンテキストを停止します。
    2. 楕円のアイコンをクリックし、ドロップダウンメニューで Delete を選択します。
注記

コンテキストを削除する場合、デプロイされたアプリケーションから削除します。

3.9.2. Camel アプリケーションの詳細表示

  1. Camel タブのツリービューで、Camel アプリケーションをクリックします。
  2. アプリケーションの属性と値のリストを表示するには、Attributes をクリックします。
  3. アプリケーション属性をグラフィックに表示するには、Chart をクリックした後、Edit をクリックし、チャートに表示する属性を選択します。
  4. inflight exchange および blocked exchange を表示するには、Exchanges をクリックします。
  5. アプリケーションエンドポイントを表示するには、Endpoints をクリックします。リストは URLRoute ID、および direction で絞り込むことができます。
  6. メッセージ本文とメッセージヘッダーを別のタイプに変換するために使用される Camel 組み込みタイプ変換メカニズムに関連する統計を表示、有効化、および無効化するには、Type Converters をクリックします。
  7. JMX 操作 (XML からのルートの追加または更新、クラスパスで利用できる Camel コンポーネントの検索など) を表示および実行するには、Operations をクリックします。

3.9.3. Camel ルートリストの表示および Camel ルートとの対話

  1. ルートのリストを表示するには、以下を行います。

    1. Camel タブをクリックします。
    2. ツリービューでアプリケーションの routes フォルダーをクリックします。

      mf list of routes

  2. 1 つまたは複数のルートを開始、停止、または削除するには、以下を行います。

    1. リストのルートの横にあるボックスにチェックマークを入れます。
    2. Start または Stop をクリックします。
    3. 最初にルートを停止してから削除する必要があります。停止したら楕円のアイコンをクリックし、ドロップダウンメニューで Delete を選択します。

      mf delete route

      注記
      • ルートを削除する場合、デプロイされたアプリケーションから削除します。
      • ツリービューで特定のルートを選択し、右上のメニューをクリックして開始、停止、または削除することもできます。
  3. ルートのグラフィックな図を表示するには、Route Diagram をクリックします。
  4. inflight exchange および blocked exchange を表示するには、Exchanges をクリックします。
  5. エンドポイントを表示するには、Endpoints をクリックします。URL、Route ID、および方向でリストを絞り込むことができます。
  6. Type Converters をクリックし、Camel の組み込みタイプ変換メカニズムに関連する統計を表示、有効化、および無効化します。このメカニズムはメッセージ本文とメッセージヘッダーを別のタイプに変換するために使用されます。
  7. 特定のルートと対話するには、以下を行います。

    1. Camel タブのツリービューで、ルートを選択します。
    2. ルート属性と値のリストを表示するには、Attributes をクリックします。
    3. ルート属性をグラフィックに表示するには、Chart をクリックします。Edit をクリックするとチャートに表示する属性を選択することができます。
    4. inflight exchange および blocked exchange を表示するには、Exchanges をクリックします。
    5. Operations をクリックして JMX 操作 (ルートを XML としてダンプ、ルートの Camel ID 値の取得など) を表示および実行できます。
  8. ルートを介してメッセージをトレースするには、以下を実行します。

    1. Camel タブのツリービューで、ルートを選択します。
    2. Trace を選択し、Start tracing をクリックします。
  9. メッセージをルートに送信するには、以下を行います。

    1. Camel タブのツリービューでコンテキストのエンドポイントフォルダーを開き、エンドポイントを選択します。
    2. Send サブタブをクリックします。
    3. JSON または XML 形式のメッセージを設定します。
    4. Send をクリックします。
    5. ルートの Trace タブに戻り、ルートを介したメッセージのフローを確認します。

3.9.4. ルートのデバッグ

  1. Camel タブのツリービューで、ルートを選択します。
  2. Debug を選択し、Start debugging をクリックします。
  3. ブレークポイントを追加するには、図のノードを選択し、Add breakpoint をクリックします。ノードに赤い点が表示されます。

    mf breakpoint

    ノードがブレークポイントのリストに追加されます。

    mf breakpointlist

  4. 下矢印をクリックして次のノードに移動するか、Play ボタンをクリックしてルートの実行を再開します。
  5. Pause ボタンをクリックして、ルートのすべてのスレッドを一時停止します。
  6. 終了したら Stop debugging をクリックします。すべてのブレークポイントが消去されます。

3.10. JMX ドメインおよび MBean の表示および管理

JMX (Java Management Extensions) は、実行時にリソース (サービス、デバイス、およびアプリケーション) を動的に管理できる Java 技術です。リソースは MBean (Managed Bean) と呼ばれるオブジェクトで表現されます。リソースが作成、実装、またはインストールされると即座に管理することができます。

Fuse Console で JMX プラグインを使用すると、JMX ドメインと MBean を表示および管理できます。MBean 属性の表示、コマンドの実行、および MBean の統計を示すチャートの作成を行うことができます。

JMX タブは、フォルダーに整理されたアクティブな JMX ドメインと MBean のツリービューを提供します。詳細を確認し、MBean でコマンドを実行できます。

手順

  1. MBean 属性を表示および編集するには、以下を行います。

    1. ツリービューで MBean を選択します。
    2. Attributes タブをクリックします。
    3. 属性をクリックしてその詳細を表示します。
  2. 操作を実行するには、以下を行います。

    1. ツリービューで MBean を選択します。
    2. Operations タブをクリックし、リストにある操作の 1 つを展開します。
    3. Execute をクリックし、操作を実行します。
  3. チャートを表示するには、以下を行います。

    1. ツリービューで項目を選択します。
    2. Chart タブをクリックします。

3.11. OSGi 環境の表示および管理

Apache Karaf スタンドアロンディストリビューションでは、Red Hat Fuse OSGi 環境を表示および管理できます。コンテナーバンドル、機能、および設定のほか、Java パッケージや OSGi サービスも表示および管理できます。

OSGi タブには、各コンテナーコンポーネントのオプションが含まれる複数のサブタブが含まれています。

Bundles
インストールされたバンドルのリストです。バンドルのインストールおよびアンインストール、バンドルの開始および停止、およびバンドルプロパティーの編集を行うことができます。さらに、リストの絞り込みやリストとグリッドビューの切り替えを行うこともできます。
Features
使用できる機能のリスト。機能や機能リポジトリーをインストールおよびアンインストールでき、機能の詳細を表示できます。
Packages
Java パッケージのリスト。パッケージバージョンと関連するバンドルを表示できます。
Services
実行中のサービスのリスト。サービス ID、関連するバンドル、およびオブジェクトクラスを表示できます。
Declarative Services
宣言的 OSGi サービスのリスト。サービスの状態を表示し、サービスの詳細を表示することができます。また、サービスをアクティベートおよび非アクティベートすることもできます。
Server
読み取り専用モードのローカルまたはリモートホストに関する詳細情報。
Framework
コンテナー OSGi フレームワークの設定オプション。フレームワーク開始レベルと初期バンドル開始レベルを設定できます。
Configuration
設定オブジェクトのリスト。各オブジェクトの状態を表示し、オブジェクトの詳細を表示または編集できます。また、新しい設定オブジェクトを作成することもできます。

3.12. 診断の表示

Diagnostics タブを使用して、JVM DiagnosticCommand および HotspotDiangostic インターフェースから JVM に関する診断情報を表示します。

注記

この機能は、Java Mission Control (jmc) の Diagnostic Commands ビューや、コマンドラインツールの jcmd と似ています。場合によっては、プラグインが対応する jcmd コマンドを提供します。

手順

  1. ロードされたクラスのインスタンス数や、これらのインスタンスが使用するバイト数を取得するには、Class Histogram をクリックします。操作が繰り返し行われると、最後の操作実行との差異がタブに表示されます。
  2. JVM 診断フラグ設定を表示するには、JVM flags をクリックします。
  3. 稼働中の JVM でもフラグ設定を変更できます。

その他のリソース

サポートされる JVM はプラットフォームによって異なります。詳細は以下を参照してください。

3.13. スレッドの表示

スレッドの状態を表示および監視できます。

手順

  1. Runtime タブをクリックし、Threads サブタブをクリックします。Threads ページには、アクティブなスレッドと各スレッドのスタックトレースの詳細が表示されます。デフォルトでは、スレッドリストにはすべてのスレッドが ID 値が大きい順に表示されます。
  2. ID 値が小さい順に表示するには、ID 列ラベルをクリックします。
  3. 任意で、スレッドの状態 (例: Blocked) やスレッド名でリストを絞り込むことができます。
  4. ロッククラス名やスレッドのフルスタックトレースなど、特定スレッドの詳細情報を表示するには、Actions 列で More をクリックします。

3.14. ログエントリーの表示

Logs タブで Red Hat Fuse のログエントリーを表示できます。

前提条件

Logs タブは、Java アプリケーションに Log MBean が含まれる場合に利用できます。

手順

  1. ログエントリーのリストを表示するには、Log Entries タブをクリックします。

    デフォルトでは、リストのログエントリーは昇順で表示されます。

    各ログエントリーをドリルダウンすると、ログエントリーに関する詳細情報が表示されます。

  2. ログのリストを絞り込み、特定のログタイプを表示するには、Action Bar をクリックします。テキスト文字列またはログレベルを基にしてログエントリーセクションを絞り込むことができます。
  3. Fuse Console のデフォルト設定を変更するには、以下を行います。

    1. Fuse Console の右上隅にあるユーザーアイコンをクリックして、ドロップダウンメニューの Preferences をクリックします。

      mf preferences

    2. デフォルトのソート順序を変更するには、Server Logs を選択し、ログエントリーリンクをクリックして、バンドル名、スレッド、完全なメッセージテキストなどのログエントリーに関する詳細を表示します。
    3. 任意で、ログメッセージを格納するための設定をカスタマイズすることができます。

      • Fuse Console に保持するログステートメントの数 (デフォルトは 100)。
      • グローバルログレベル: INFO (デフォルト)、OFF、ERROR、WARN、および DEBUG
      • 子レベルのメッセージには、hawtio-oauthhawtio-core-utils などが含まれます。
    4. Fuse Console のログ設定をデフォルトの値に戻すには、ResetReset settings とクリックします。

第4章 EAP スタンドアロンでの Red Hat Fuse アプリケーションの監視および管理

4.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
  • Spring Boot
  • OSGI
  • Runtime
  • Logs

4.2. Fuse Console へのアクセス

以下の手順にしたがって、Red Hat JBoss Enterprise Application Platform の Fuse Console にアクセスします。

前提条件

Fuse を JBoss EAP コンテナーにインストールする必要があります。ステップごとの手順は、『Installing on JBoss EAP』を参照してください。

手順

スタンドアロン JBoss EAP ディストリビューションの Fuse Console にアクセスするには、以下を実行します。

  1. Red Hat Fuse スタンドアロンを以下のコマンドで起動します。

    Linux/Mac OS の場合: ./bin/standalone.sh

    Windows の場合: ./bin/standalone.bat

  2. Web ブラウザーで URL を入力し、Fuse Console に接続します。例: http://localhost:8080/hawtio
  3. ログインページでユーザー名とパスワードを入力し、Log In をクリックします。

デフォルトでは、Fuse Console に Home ページが表示されます。左側のナビゲーションタブには実行中のプラグインが表示されます。

注記

Fuse Console のメインページがブラウザーに表示されるまで時間がかかる場合、ログファイルの数とサイズを削減する必要がある場合があります。ログファイルの最大サイズ (rotate-size) に到達し、ファイル数を維持する (max-backup-index) 場合は、periodic-size-rotating-file-handler を使用してファイルのローテーションを行うことができます。このハンドラーの使用方法に関する詳細は、Red Hat JBoss Enterprise Application Platform の製品ドキュメントを参照してください。

4.3. Fuse Console のセキュア化

EAP で Fuse Console をセキュアにするには、以下を行います。

  • 必要なプロトコルとして HTTPS を設定する

    hawtio.http.strictTransportSecurity プロパティーを使用すると、Web ブラウザーでセキュア HTTPS プロトコルを使用して Fuse Console にアクセスするよう要求できます。このプロパティーでは、HTTP を使用して Fuse Console へのアクセスを試みる Web ブラウザーは、要求を自動的に変換して HTTPS を使用する必要があることが指定されます。

  • 公開鍵を使用して応答をセキュアにする

    特定の暗号の公開鍵を Fuse Console に関連付けし、偽造された証明書を使用した「中間者攻撃」のリスクを軽減するよう Web ブラウザーに要求すると、hawtio.http.publicKeyPins プロパティーを使用して HTTPS プロトコルをセキュアにすることができます。

手順

以下の例のように、$EAP_HOME/standalone/configuration/standalone*.xml ファイルの system-properties セクションで hawtio.http.strictTransportSecurity および hawtio.http.publicKeyPins プロパティーを設定します。

+

<property name="hawtio.http.strictTransportSecurity" value="max-age=31536000; includeSubDomains; preload"/>
<property name="hawtio.http.publicKeyPins" value="pin-sha256=cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs"; max-age=5184000; includeSubDomains"/>

その他のリソース

  • hawtio.http.strictTransportSecurity プロパティーの構文の説明は、HTTP Strict Transport Security (HSTS) 応答ヘッダーの説明ページを参照してください。
  • hawtio.http.publicKeyPins プロパティーの構文や、Base64 でエンコードされた公開鍵の抽出方法の説明は、HTTP Public Key Pinning 応答ヘッダーの説明ページを参照してください。

4.4. Fuse Console でデータが正しく表示されるよう確認

Fuse Console のキューおよびコネクションの表示で、不足しているキューやコネクションがあったり、一貫性のないアイコンが表示される場合、Jolokia が応答でマーシャルするアレイの要素の最大数を指定する、Jolokia コレクションサイズパラメーターを調節します。

手順

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

    mf preferences

  2. Maximum collection size オプションの値を大きくします (デフォルトは 50,000)。
  3. Close をクリックします。

4.5. Fuse Console の無効化

JBoss EAP で Fuse Console を無効にすると、他のコンポーネントに影響を与えずにすべてのユーザーをアクセス不可能にすることができます。

手順

JBoss EAP の Fuse Console を無効にするには、以下のいずれかを実行します。

  • Fuse Console のデプロイメントファイルを削除します: $EAP_HOME/standalone/deployments/hawtio-wildfly-xxxxx.war
  • JBoss EAP 管理コンソールまたはコマンドラインインターフェースを使用して Fuse Console をアンデプロイします。

4.6. リモート 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.6.1. Fuse Console のアンロック

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

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

  1. エディターで $EAP_HOME/standalone/configuration/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. ファイルを保存します。

4.6.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.6.3. リモート Fuse インスタンスへの接続の許可

Fuse Console のプロキシーサーブレットはホワイトリストを使ってホストを保護し、Fuse Console はデフォルトではローカルホストのみに接続できます。Fuse Console を他のリモート Fuse インスタンスに接続する場合は、standalone/configuration/standalone-*.xml ファイルで以下の設定変更を行います。

+

 <property name=hawtio.proxyWhitelist" value="localhost, 127.0.0.1, myhost1, myhost2, myhost3"/>

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

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

Red Hat JBoss EAP における Jolokia エージェントのデフォルトのコネクション URL は http://<host>:8080/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 以外のローカルネットワークインターフェースをプローブし、ホワイトリストに追加します。そのため、ローカルマシンのアドレスを手作業でホワイトリストに登録する必要はありません。

4.6.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 をクリックします。

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

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

4.7. Apache Camel アプリケーションの表示および管理

Fuse Console の Camel タブで Apache Camel のコンテキスト、ルート、および依存関係を表示および管理します。

次の詳細を表示できます。

  • 実行中の Camel コンテキストすべてのリスト。
  • Camel バージョン番号やランタイム統計など、各 Camel コンテキストの詳細情報。
  • 各 Camel アプリケーションの全ルートおよびランタイム統計のリスト。
  • 実行中のルートとリアルタイムのメトリクスのグラフィック表示。

また、以下を行うと Camel アプリケーションと対話もできます。

  • コンテキストの開始および一時停止。
  • 再起動、停止、一時停止、再開などを実行できるよう、すべての Camel アプリケーションとそれらのルートのライフサイクルを管理。
  • 実行中のルートのライブトレースおよびデバッグ。
  • Camel エンドポイントへのメッセージの閲覧および送信。

前提条件

Camel タブは、1 つ以上の Camel ルートを使用するコンテナーに接続する場合のみ使用できます。

4.7.1. コンテキストの開始、一時停止、または削除

  1. Camel タブのツリービューで、Camel Contexts をクリックします。
  2. リストのコンテキストの横にあるボックスにチェックマークを入れます。
  3. Start または Suspend をクリックします。
  4. コンテキストを削除するには以下を行います。

    1. コンテキストを停止します。
    2. 楕円のアイコンをクリックし、ドロップダウンメニューで Delete を選択します。
注記

コンテキストを削除する場合、デプロイされたアプリケーションから削除します。

4.7.2. Camel アプリケーションの詳細表示

  1. Camel タブのツリービューで、Camel アプリケーションをクリックします。
  2. アプリケーションの属性と値のリストを表示するには、Attributes をクリックします。
  3. アプリケーション属性をグラフィックに表示するには、Chart をクリックした後、Edit をクリックし、チャートに表示する属性を選択します。
  4. inflight exchange および blocked exchange を表示するには、Exchanges をクリックします。
  5. アプリケーションエンドポイントを表示するには、Endpoints をクリックします。リストは URLRoute ID、および direction で絞り込むことができます。
  6. メッセージ本文とメッセージヘッダーを別のタイプに変換するために使用される Camel 組み込みタイプ変換メカニズムに関連する統計を表示、有効化、および無効化するには、Type Converters をクリックします。
  7. JMX 操作 (XML からのルートの追加または更新、クラスパスで利用できる Camel コンポーネントの検索など) を表示および実行するには、Operations をクリックします。

4.7.3. Camel ルートリストの表示および Camel ルートとの対話

  1. ルートのリストを表示するには、以下を行います。

    1. Camel タブをクリックします。
    2. ツリービューでアプリケーションの routes フォルダーをクリックします。

      mf list of routes

  2. 1 つまたは複数のルートを開始、停止、または削除するには、以下を行います。

    1. リストのルートの横にあるボックスにチェックマークを入れます。
    2. Start または Stop をクリックします。
    3. 最初にルートを停止してから削除する必要があります。停止したら楕円のアイコンをクリックし、ドロップダウンメニューで Delete を選択します。

      mf delete route

      注記
      • ルートを削除する場合、デプロイされたアプリケーションから削除します。
      • ツリービューで特定のルートを選択し、右上のメニューをクリックして開始、停止、または削除することもできます。
  3. ルートのグラフィックな図を表示するには、Route Diagram をクリックします。
  4. inflight exchange および blocked exchange を表示するには、Exchanges をクリックします。
  5. エンドポイントを表示するには、Endpoints をクリックします。URL、Route ID、および方向でリストを絞り込むことができます。
  6. Type Converters をクリックし、Camel の組み込みタイプ変換メカニズムに関連する統計を表示、有効化、および無効化します。このメカニズムはメッセージ本文とメッセージヘッダーを別のタイプに変換するために使用されます。
  7. 特定のルートと対話するには、以下を行います。

    1. Camel タブのツリービューで、ルートを選択します。
    2. ルート属性と値のリストを表示するには、Attributes をクリックします。
    3. ルート属性をグラフィックに表示するには、Chart をクリックします。Edit をクリックするとチャートに表示する属性を選択することができます。
    4. inflight exchange および blocked exchange を表示するには、Exchanges をクリックします。
    5. Operations をクリックして JMX 操作 (ルートを XML としてダンプ、ルートの Camel ID 値の取得など) を表示および実行できます。
  8. ルートを介してメッセージをトレースするには、以下を実行します。

    1. Camel タブのツリービューで、ルートを選択します。
    2. Trace を選択し、Start tracing をクリックします。
  9. メッセージをルートに送信するには、以下を行います。

    1. Camel タブのツリービューでコンテキストのエンドポイントフォルダーを開き、エンドポイントを選択します。
    2. Send サブタブをクリックします。
    3. JSON または XML 形式のメッセージを設定します。
    4. Send をクリックします。
    5. ルートの Trace タブに戻り、ルートを介したメッセージのフローを確認します。

4.7.4. ルートのデバッグ

  1. Camel タブのツリービューで、ルートを選択します。
  2. Debug を選択し、Start debugging をクリックします。
  3. ブレークポイントを追加するには、図のノードを選択し、Add breakpoint をクリックします。ノードに赤い点が表示されます。

    mf breakpoint

    ノードがブレークポイントのリストに追加されます。

    mf breakpointlist

  4. 下矢印をクリックして次のノードに移動するか、Play ボタンをクリックしてルートの実行を再開します。
  5. Pause ボタンをクリックして、ルートのすべてのスレッドを一時停止します。
  6. 終了したら Stop debugging をクリックします。すべてのブレークポイントが消去されます。

4.8. JMX ドメインおよび MBean の表示および管理

JMX (Java Management Extensions) は、実行時にリソース (サービス、デバイス、およびアプリケーション) を動的に管理できる Java 技術です。リソースは MBean (Managed Bean) と呼ばれるオブジェクトで表現されます。リソースが作成、実装、またはインストールされると即座に管理することができます。

Fuse Console で JMX プラグインを使用すると、JMX ドメインと MBean を表示および管理できます。MBean 属性の表示、コマンドの実行、および MBean の統計を示すチャートの作成を行うことができます。

JMX タブは、フォルダーに整理されたアクティブな JMX ドメインと MBean のツリービューを提供します。詳細を確認し、MBean でコマンドを実行できます。

手順

  1. MBean 属性を表示および編集するには、以下を行います。

    1. ツリービューで MBean を選択します。
    2. Attributes タブをクリックします。
    3. 属性をクリックしてその詳細を表示します。
  2. 操作を実行するには、以下を行います。

    1. ツリービューで MBean を選択します。
    2. Operations タブをクリックし、リストにある操作の 1 つを展開します。
    3. Execute をクリックし、操作を実行します。
  3. チャートを表示するには、以下を行います。

    1. ツリービューで項目を選択します。
    2. Chart タブをクリックします。

4.9. 診断の表示

Diagnostics タブを使用して、JVM DiagnosticCommand および HotspotDiangostic インターフェースから JVM に関する診断情報を表示します。

注記

この機能は、Java Mission Control (jmc) の Diagnostic Commands ビューや、コマンドラインツールの jcmd と似ています。場合によっては、プラグインが対応する jcmd コマンドを提供します。

手順

  1. ロードされたクラスのインスタンス数や、これらのインスタンスが使用するバイト数を取得するには、Class Histogram をクリックします。操作が繰り返し行われると、最後の操作実行との差異がタブに表示されます。
  2. JVM 診断フラグ設定を表示するには、JVM flags をクリックします。
  3. 稼働中の JVM でもフラグ設定を変更できます。

その他のリソース

サポートされる JVM はプラットフォームによって異なります。詳細は以下を参照してください。

4.10. スレッドの表示

スレッドの状態を表示および監視できます。

手順

  1. Runtime タブをクリックし、Threads サブタブをクリックします。Threads ページには、アクティブなスレッドと各スレッドのスタックトレースの詳細が表示されます。デフォルトでは、スレッドリストにはすべてのスレッドが ID 値が大きい順に表示されます。
  2. ID 値が小さい順に表示するには、ID 列ラベルをクリックします。
  3. 任意で、スレッドの状態 (例: Blocked) やスレッド名でリストを絞り込むことができます。
  4. ロッククラス名やスレッドのフルスタックトレースなど、特定スレッドの詳細情報を表示するには、Actions 列で More をクリックします。

4.11. ログエントリーの表示

Logs タブで Red Hat Fuse のログエントリーを表示できます。

前提条件

Logs タブは、Java アプリケーションに Log MBean が含まれる場合に利用できます。

手順

  1. ログエントリーのリストを表示するには、Log Entries タブをクリックします。

    デフォルトでは、リストのログエントリーは昇順で表示されます。

    各ログエントリーをドリルダウンすると、ログエントリーに関する詳細情報が表示されます。

  2. ログのリストを絞り込み、特定のログタイプを表示するには、Action Bar をクリックします。テキスト文字列またはログレベルを基にしてログエントリーセクションを絞り込むことができます。
  3. Fuse Console のデフォルト設定を変更するには、以下を行います。

    1. Fuse Console の右上隅にあるユーザーアイコンをクリックして、ドロップダウンメニューの Preferences をクリックします。

      mf preferences

    2. デフォルトのソート順序を変更するには、Server Logs を選択し、ログエントリーリンクをクリックして、バンドル名、スレッド、完全なメッセージテキストなどのログエントリーに関する詳細を表示します。
    3. 任意で、ログメッセージを格納するための設定をカスタマイズすることができます。

      • Fuse Console に保持するログステートメントの数 (デフォルトは 100)。
      • グローバルログレベル: INFO (デフォルト)、OFF、ERROR、WARN、および DEBUG
      • 子レベルのメッセージには、hawtio-oauthhawtio-core-utils などが含まれます。
    4. Fuse Console のログ設定をデフォルトの値に戻すには、ResetReset settings とクリックします。

法律上の通知

Copyright © 2021 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.