外部分析ツールへのデータのエクスポート (ハイブリッド)

Mule アプリケーションのイベント通知を Splunk や ELK などのサードパーティツールに送信するには、外部分析ツールにデータをエクスポートするよう Runtime Manager を設定します。

この機能は、ハイブリッドデプロイメントシナリオのみで使用可能です。CloudHub にデプロイされたアプリケーションでは使用できません。

基本的なアーキテクチャ

Runtime Manager は次として存在ます。

  • Anypoint Platform のコンポーネント。

  • オンプレミスにインストールできる Anypoint Platform Private Cloud Edition のコンポーネント。

Anypoint Platform Private Cloud Edition には、オンプレミスにデプロイされているアプリケーションのみを処理する Runtime Manager があります。Anypoint Platform のクラウドベースバージョンには、CloudHub にデプロイされたアプリケーションとオンプレミスおよび独自のクラウドサーバにデプロイされているアプリケーションを管理できる Runtime Manager があります。Runtime Manager のどちらのバージョンを使用しても、アプリケーションを監視する方法があります。

CloudHub にデプロイされたアプリケーションでは、MuleSoft の分析および監視機能であるインサイトを使用できます。オンプレミスまたは独自のクラウドサーバにデプロイするアプリケーションをサードパーティ分析アプリケーションに統合することができます。このドキュメントではそれについて説明します。

お客様が管理する Mule サーバに Runtime Manager からアプリケーションをデプロイする場合、Mule アプリケーションのイベントおよび分析データを、Elk や Splunk などのサードパーティ分析ソフトウェアに送信できます。

サードパーティソフトウェアへのデータの送信は、CloudHub にあるアプリケーションでは現在使用できません。詳細は、「デプロイ戦略」を参照してください。

Runtime Manager とサードパーティ分析ソフトウェアのインテグレーションは、次のようになります。

amc onprem diagram detail

Runtime Manager エージェントは、Runtime Manager とサードパーティソフトウェアの間で機能します。エージェントによってインテグレーションが可能になり、イベント通知がサードパーティ分析ソフトウェアに送信されます。

前提条件

  • Mule 3.6 以降。または API ゲートウェイを使用して構築されるアプリケーションを使用する場合は API ゲートウェイスタンドアロンのバージョン 2.1.0 以降。

  • Runtime Manager エージェント 1.2.0 以降が必要です。インストールおよび設定の手順を以下に示します。

サードパーティ分析ツールを使用する Runtime Manager のインストールとセットアップ

Runtime Manager から外部分析ツールにデータを送信するには、次の手順に従う必要があります。これらについては後で詳しく説明します。

手順

Runtime Manager エージェントの更新

まず、Runtime Manager エージェントの最新バージョンをインストールする必要があります。Runtime Manager エージェントは Mule からメッセージの送信を行います。サードパーティソフトウェアにイベント情報を送信するには、Runtime Manager エージェントのバージョン 1.2.0 以降を使用する必要があります。 「Runtime Manager エージェントのインストールと設定」を参照してください。

バージョン 3.7 以降の Mule にはデフォルトで Runtime Manager エージェントがバンドルされていますが、3.7.2 より前のすべての Mule バージョンには、この機能をサポートしない古いバージョンの Runtime Manager が含まれています。Mule バージョンが 3.7.2 より古い場合は、Runtime Manager エージェントの最新バージョンを別個にダウンロードする必要があります。

Runtime Manager エージェントの登録

エージェントファイルを {MULE_HOME}/bin フォルダに入れた後、ターミナルでコマンドを実行して Runtime Manager に登録する必要があります。Runtime Manager をクラウドプラットフォームで使用するのか、または Anypoint Platform Private Cloud Edition の一部として使用するのかに応じて、異なる引数セットにこのコマンドを渡して登録する必要があります。実行する必要がある基本コマンドを (Runtime Manager インスタンス ID とともに) 取得するには、次を実行する必要があります。

このコードを取得するには、次を実行する必要があります。

  1. Anypoint Platform アカウントにサインインします。

    Anypoint Platform Private Cloud Edition を開くには、Runtime Manager がすでに開始されていることを確認します。開始されていない場合は、docker を実行して起動する必要があります。開始されたら、ブラウザで https://localhost に移動してアクセスすることができます。
  2. [Runtime Manager] > [Servers (サーバ)] に移動します。

  3. [Add Server (サーバを追加)] をクリックします。実際に新しいサーバを追加しなくても、特定の組織用のコードを含むサンプルコマンドがポップアップウィンドウに表示されます。このコマンドをコピーします。デプロイ先に応じて引数を追加しなければならない場合があります。

    org code

Anypoint Platform クラウド

Runtime Manager エージェントをクラウドベースの Anypoint Platform の一部として使用する場合は、Runtime Manager UI に表示された同じコマンドを正確に入力してエージェントを起動します。

amc_setup -H 1c3eded9-7917-4a5e-bbe0-f73f9d4f33c1---2 myServer

Windows の場合は次のようになります。

amc_setup.bat -H 1c3eded9-7917-4a5e-bbe0-f73f9d4f33c1---2 myServer

引数 -H は、Anypoint Platform Private Cloud Edition のインストール内の組織を参照する ID です。

このコマンドの最後の引数は、Runtime Manager エージェントインスタンスに割り当てる名前です。上の例では myServer です。この名前は、Runtime Manager コンソールからエージェントを操作するときに表示されます。

Anypoint Platform Private Cloud Edition

オンプレミスで実行中のアプリケーションとして Anypoint Platform を使用する場合は、次の引数を使用してエージェントを起動します。

amc_setup -A http://localhost:8080/hybrid/api/v1 -W wss://localhost:8443/mule -C https://dev.anypoint.mulesoft.com/accounts -H 361755d7-c619-42ce-9187-19db7a6d94a0---2 myServer

Windows の場合は次のようになります。

amc_setup.bat -A http://localhost:8080/hybrid/api/v1 -W wss://localhost:8443/mule -C https://dev.anypoint.mulesoft.com/accounts -H 361755d7-c619-42ce-9187-19db7a6d94a0---2 myServer

引数 -H は、Anypoint Platform のインストール内の組織を参照する ID です。

このコマンドの最後の引数は、Runtime Manager エージェントインスタンスに割り当てる名前です。上の例では myServer です。この名前は、Runtime Manager コンソールからエージェントを操作するときに表示されます。

-A、-W、-C という 3 つの引数を、Runtime Manager UI からコピーしたコマンドに追加する必要があります。 * A は Runtime Manager のホストアドレスを設定します。 * C はアクセス管理のホストアドレスを設定します。 * W は Mule Communications Manager (MCM) のホストアドレスを設定します。

Runtime Manager エージェントの更新

Runtime Manager エージェントのバージョンを更新する場合、実行中のアプリケーションをアンデプロイする必要はありません。

Runtime Manager エージェントをインストールまたは更新する方法についての詳細は、「Runtime Manager エージェントのインストールと設定」を参照してください。
agent server
1 つのサーバ内に複数のエージェントを作成することはサポートされていません。

エージェント登録の確認

前述のコマンドを実行した後、Runtime Manager を開き、エージェントが正常に登録されたことを確認します。

  1. ログイン情報を使用して Anypoint Platform にサインインします。

  2. [Runtime Manager] → [Servers (サーバ)] に移動します。表示されるサーバの 1 つは、インストール時に指定した名前が付いた Runtime Manager エージェントインスタンスになっているはずです。

verify agent

Mule カスタムイベントの設定

Mule イベント (フローの実行、発生した例外など) が外部ソフトウェアに送信されるよう Runtime Manager を設定することができます。これは、クラウドの Runtime Manager と About Anypoint Platform Private Cloud Edition にバンドルされた Runtime Manager の両方で、どの Runtime にデプロイされたアプリケーションでも機能します。

Splunk の統合

Splunk を使用して、Mule イベント通知を検索可能なリポジトリにキャプチャおよびインデックス化し、このリポジトリからグラフ、レポート、アラート、ダッシュボード、視覚化を生成することができます。

amc onprem diagram detail splunk
Splunk アカウントの設定

API ゲートウェイから送信される HTTP イベントを解析するために、Splunk インスタンスに新しいソース種別を適切に設定する必要があります。 それには、$SPLUNK_HOME/opt/splunk/etc/system/local/props.conf ファイルに次のソース種別を追加する必要があります。

[mule]
TRUNCATE = 0
LINE_BREAKER = ([\r\n]+)
SHOULD_LINEMERGE = false
INDEXED_EXTRACTIONS = JSON
KV_MODE = JSON
category = Mule Splunk Integration
description = Mule Agent event information
このファイルが存在しない場合は作成する必要があります。

これらの変更を加えた後、Splunk インスタンスを再起動して変更を有効にする必要があります。

Table 1. 設定可能な項目
項目 データ型 説明 デフォルト値

user

String (文字列)

Splunk に接続するためのユーザ名。

必須

pass

String (文字列)

Splunk ユーザのパスワード。

必須

host

String (文字列)

Splunk を実行中のサーバの IP またはホスト名。

必須

port

int

Splunk 管理ポート。

省略可能

8089

scheme

String (文字列)

Splunk 管理ポートとの接続のスキーム。可能な値: http、https

省略可能

https

sslSecurityProtocol

String (文字列)

https 接続で使用される SSL セキュリティプロトコル。可能な値: TLSv1_2、TLSv1_1、TLSv1、SSLv3

省略可能

TLSv1_2

splunkIndexName

String (文字列)

すべてのイベントの送信先である Splunk インデックス名。ユーザに権限があり、インデックスが存在しない場合は、内部ハンドラによって作成されます。

省略可能

main

splunkSource

String (文字列)

Splunk に送信されるイベントで使用されるソース。

省略可能

Mule

splunkSourceType

String (文字列)

Splunk に送信されるイベントで使用されるソース種別。

省略可能

Mule

dateFormatPattern

String (文字列)

タイムスタンプで使用される日付形式。

省略可能

yyyy-MM-dd’T’HH:mm:ssSZ

Splunk 内部ハンドラの最小限の設定例
---
  mule.agent.gw.http.handler.splunk:
    host: 192.168.61.131
    user: admin
    pass: test

REST API

この機能には、Runtime Manager エージェントのバージョン 1.2.0 以降が必要です。

  1. どのサーバの情報を送信するのかを選択します。

  2. 右側のメニューで、[Manage Server (サーバを管理)] をクリックし、サーバの設定にアクセスします。

    sending data from arm to external monitoring software manage server
  3. [Plugins (プラグイン)] タブを選択します。

    sending data from arm to external monitoring software plugins
  4. [Level (レベル)] ドロップダウンメニューで、送信する情報の種類を選択します。

    sending data from arm to external monitoring software level
  5. [Event Tracking (イベント追跡)] 領域で、[Splunk] スイッチを有効にします。Splunk ユーザ、パスワードデータ、接続のホストとポートを入力するポップアップメニューが開きます。

    sending data from arm to external monitoring software splunk
  6. 必要に応じて詳細メニューを開き、送信されるデータの特定の書式設定プロパティをセットアップできます。

    splunk

HTTP イベントコレクタ

この機能には、エージェントバージョン 1.3.1 以降が必要です。

この機能には、Runtime Manager エージェントのバージョン 1.3.1 以降が必要です。
  1. 最初に Splunk からトークンを取得する必要があります。次の手順を実行します。

    1. Splunk アカウントにサインインします。

    2. [Settings (設定)][Data Inputs (データ入力)] に移動します。

    3. さまざまなオプションの中から [HTTP Event Collector (HTTP イベントコレクタ)] を見つけ、その横の [Add New (新規追加)] リンクをクリックします。

      Splunk の設定
    4. ウィザードのステップに従ってデータ入力をセットアップし、トークンを取得します。

  2. Runtime Manager に戻り、どのサーバの情報を送信するのかを選択します。

  3. 右側のメニューで、[Manage Server (サーバを管理)] をクリックし、サーバの設定にアクセスします。

    sending data from arm to external monitoring software manage server
  4. [Plugins (プラグイン)] タブを選択します。

    sending data from arm to external monitoring software plugins
  5. [Level (レベル)] ドロップダウンメニューで、送信する情報の種類を選択します。

    sending data from arm to external monitoring software level
  6. [Event Tracking (イベント追跡)] 領域で、[Splunk] スイッチを有効にします。Splunk ユーザ、パスワードデータ、接続のホストとポートを入力できるポップアップメニューが開きます。

    sending data from arm to external monitoring software splunk
    splunk
  7. [HTTP Event Collector (HTTP イベントコレクタ)] オプションを選択し、Splunk から提供されたトークンを貼り付けます。

  8. 必要に応じて詳細メニューを開き、送信されるデータの特定の書式設定プロパティをセットアップできます。

    splunk
Splunk アカウントにデータ入力を登録するときに Splunk インデックス、Splunk ソース、Splunk ソース種別の値を設定できますが、この値は Runtime Manager エージェントの [Plugins (プラグイン)] メニューの [Advanced (詳細)] セクションでこれらの項目に設定する値で上書きされます。

TCP

この機能には、エージェントバージョン 1.3.1 以降が必要です。

  1. 最初に Splunk で入力ソースを有効にする必要があります。次の手順を実行します。

    1. Splunk アカウントにサインインします。

    2. [Settings (設定)][Data Inputs (データ入力)] に移動します。

    3. さまざまなオプションの中から [TCP] オプションを見つけます。その横に [Add New (新規追加)] リンクがあります。目的のリンクをクリックします。

      Splunk の設定
    4. ウィザードのステップに従ってデータ入力をセットアップします。

  2. Runtime Manager に戻り、どのサーバの情報を送信するのかを選択します。

  3. 右側のメニューで、[Manage Server (サーバを管理)] をクリックし、サーバの設定にアクセスします。

    sending data from arm to external monitoring software manage server
  4. [Plugins (プラグイン)] タブを選択します。

    sending data from arm to external monitoring software plugins
  5. [Level (レベル)] ドロップダウンメニューで、送信する情報の種類を選択します。

    sending data from arm to external monitoring software level
  6. [Event Tracking (イベント追跡)] 領域で、[Splunk] スイッチを有効にします。Splunk ユーザ、パスワードデータ、接続のホストとポートを入力できるポップアップメニューが開きます。

    sending data from arm to external monitoring software splunk
  7. [Splunk] スイッチを有効にすると、ポップアップメニューが開きます。ドロップダウンで [TCP] を選択し、接続のホストとポートを入力します。

    splunk

ELK スタックの統合

ELK では、連携する 3 つのオープンソースツール (Elasticsearch、Logstash、Kibana) を組み合わせて、ログデータの保存、検索、分析を行うことができます。Mule イベント通知を汎用システムログとして出力できます。これは、ELK スタックで処理することができます。Logstash でデータがログにキャプチャおよびインデックス化されます。このログから、Elasticsearch と Kibana を使用してグラフ、レポート、アラート、ダッシュボード、可視化を生成することができます。 Runtime Manager エージェントでは、Mule Runtime フローから生成されたすべてのイベント通知を、ローリングファイルポリシーを使用して設定可能なログファイルに保存することができます。

amc onprem diagram detail elk

ELK スタックに読み取られるフォルダに情報を送るには、次を実行する必要があります。

  1. どのサーバの情報を送信するのかを選択します。

  2. 右側のメニューで、[Manage Server (サーバを管理)] をクリックし、サーバの設定にアクセスします。

    sending data from arm to external monitoring software manage server
  3. [Plugins (プラグイン)] タブを選択します。

    sending data from arm to external monitoring software plugins
  4. [Level (レベル)] ドロップダウンメニューで、送信する情報の種類を選択します。

    sending data from arm to external monitoring software level
  5. [Event Tracking (イベント追跡)] 領域で、[ELK] スイッチを有効にします。ELK スタックによって読み取られるログファイルの保存先フォルダのアドレスを入力できるポップアップメニューが開きます。

    sending data from arm to external monitoring software elk
  6. 必要に応じて詳細メニューを開き、送信するデータの特定の書式設定プロパティと情報のアーカイブ方法をセットアップできます。

    ELK の詳細

API Analytics の設定

Runtime Manager UI を使用して外部ソフトウェアとの接続をセットアップするには、その準備として先に API ゲートウェイに変更を加える必要があります。

  1. API ゲートウェイスタンドアロンのディレクトリで、conf/wrapper.conf ファイルを見つけます。

  2. ファイル内の次の行で、プロパティが true に設定されていることを確認します。

    wrapper.java.additional.<n>=-Danypoint.platform.analytics_enabled=true
  3. 次の行を見つけます。

    wrapper.java.additional.<n>=-Danypoint.platform.analytics_base_uri=https://analytics-ingest.anypoint.mulesoft.com
  4. 行から URL を削除します。次のようになります。

    wrapper.java.additional.<n>=-Danypoint.platform.analytics_base_uri=
  5. Anypoint Platform Private Cloud Edition を使用する場合は、変更が必要なパラメータがもう 1 つあります。

    wrapper.java.additional.<n>=-Danypoint.platform.on_prem=true

    anypoint.platform.on_prem はデフォルトで false に設定されます。Anypoint Platform Private Cloud Edition を使用して管理するには、これを true に設定する必要があります。クラウドの Runtime Manager を使用して管理する場合は false のままにしておきます。

上のコードスニペットで行に含まれている .<n> は、ラッパー内で一意の整数に置き換えられます。

スタンドアロン API ゲートウェイをセットアップしたら、Splunk と ELK に接続する手順は、対応するスイッチを使用して設定する必要があるという点を除けば、Mule カスタムイベントの場合と同じです。

sending data from arm to external monitoring software api analytics

Mule バージョン 4.2.0 および 3.9.3 以降では、wrapper.conf ファイルに新しいプロパティを追加することで、ELK や Splunk などのサードパーティシステムと Anypoint Platform の両方にイベントを転送するように Mule Runtime Engine を設定できます。

wrapper.java.additional.<n>=-Danypoint.platform.analytics_multiple_consumers_enabled=true
上記のように wrapper.conf ファイルを変更しても、(Runtime Manager UI を使用して) データに外部宛先を割り当てないと、この分析データは API ゲートウェイが実行されているサーバのキューに保存され、システムがクラッシュするまで集積する可能性があります。

API Analytics と Splunk および ELK の統合

API ゲートウェイを設定したら、Runtime Manager に戻り、サーバのメニューにオプションがいくつか追加されていることを確認できます。

sending data from arm to external monitoring software api analytics

API Analytics を Splunk と ELK の両方に送信するようセットアップできます。ビジネスイベントを送信する場合とまったく同じように設定できます。「ELK スタックの統合」「Splunk の統合」を参照してください。

ペイロード形式

ペイロードのコンテンツをログにエクスポートする場合は、すべての形式をエクスポートできるわけではないことに留意してください。詳細は、「ペイロード形式のログについて」を参照してください。

パスワードの暗号化

Mule インスタンスまたは API ゲートウェイスタンドアロンインスタンスを起動するときに、マスタパスワードを割り当てます。割り当てない場合、Runtime Manager UI を使用して外部アプリケーションのログイン情報をセットアップするときに、ログイン情報はプレーンテキストとして conf/mule-agent.yml ファイルに保存されます。これは、セキュリティ上の理由からお勧めできません。代わりに、引数を追加して Mule または API ゲートウェイランタイムを起動します。この引数を使用して、YAML ファイルに保存するときにこれらのパスワードが暗号化されます。

Mule

{MULE_HOME}/bin/mule -M-Dmule.agent.configuration.password=myMasterPassword

Windows の場合は次のようになります。

{MULE_HOME}\bin\mule.bat -M-Dmule.agent.configuration.password=myMasterPassword

API ゲートウェイ - 非推奨

{MULE_HOME}/bin/gateway -M-Dmule.agent.configuration.password=myMasterPassword

Windows の場合は次のようになります。

{MULE_HOME}\bin\gateway.bat -M-Dmule.agent.configuration.password=myMasterPassword

Mule または API ゲートウェイを再起動するときにこれらの暗号化されたパスワードにアクセスするには、生成するときに使用した同じマスタパスワードを割り当てる必要があります。 マスタパスワードを変更する、または Runtime の起動時に省略する場合、サードパーティインテグレーションが引き続き正常に機能するには、Runtime Manager UI を使用してパスワードを再割り当てする必要があります。

関連情報

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub