データを外部の分析ツールにエクスポートするように Runtime Manager エージェントを設定できます。
Runtime Manager クラウドコンソールまたは Anypoint Platform Private Cloud Edition を使用すると、以下を行うことができます。
-
フローの実行や例外などの Mule イベント通知を Splunk や ELK に送信する。
[Splunk のインテグレーション]と [ELK スタックのインテグレーション]を参照してください。
-
API Analytics の Splunk および ELK への送信。
API Analytics と Splunk または ELK のインテグレーションを参照してください。
ペイロードのコンテンツをログにエクスポートする場合は、すべての形式をエクスポートできるわけではないことを考慮してください。 「ペイロード形式とログ記録」を参照してください。
CloudHub にデプロイされたアプリケーションでは、サードパーティツールへのデータ送信はサポートされていません。 CloudHub カスタムログアペンダーを使用することで、自分のログシステムと統合できます。 「Log4j を使用したログシステムとのインテグレーション」を参照してください。
前提条件
次のソフトウェアがインストールされていることを確認してください。
-
Mule Runtime Engine バージョン 3.6 以降
イベントを API Analytics から外部ツールと Anypoint Platform の両方に転送するには、以下のバージョンが必要です。
-
Mule バージョン 4.2.0 以降
-
Mule バージョン 3.9.3 以降
-
-
API ゲートウェイスタンドアロンバージョン 2.1.0 以降
-
Runtime Manager エージェント 1.2.0 以降
HTTP イベントコレクターを使用するか、または TCP 経由でデータを Splunk に送信するには、Runtime Manager agent 1.3.1 以降が必要です。
エージェントの更新については、「Runtime Manager エージェントのインストールまたは更新」を参照してください。
Splunk の前提条件
HTTP イベントコレクターを使用してデータを Splunk に送信するには、事前にデータ入力を設定して、Splunk からトークンを取得する必要があります。
-
Splunk アカウントにサインインします。
-
[Settings (設定)] → [Data Inputs (データ入力)] に移動します。
-
[HTTP Event Collector (HTTP イベントコレクター)] 種別で [Add new (新規追加)] をクリックします。
Figure 1. 矢印は、[Splunk Data Inputs (Splunk データ入力)] ページの HTTP イベントコレクターの [Add new (新規追加)] オプションを示しています。 -
ステップに従ってデータ入力をセットアップし、トークンを取得します。
TCP 経由でデータを Splunk に送信するには、事前に Splunk で入力元を有効化する必要があります。
-
Splunk アカウントにサインインします。
-
[Settings (設定)] → [Data Inputs (データ入力)] に移動します。
-
[TCP] 種別で [Add new (新規追加)] をクリックします。
Figure 2. 矢印は、[Splunk Data Inputs (Splunk データ入力)] ページの TCP の [Add new (新規追加)] オプションを示しています。 -
ステップに従ってデータ入力をセットアップします。
データ入力の設定に関する詳細は、 Splunk ドキュメントを参照してください。
ログレベルオプション
Splunk または ELK とのインテグレーションを設定する場合は、以下のログレベルを使用できます。
- ビジネスイベント
-
フローの開始または終了、非同期メッセージ、例外、カスタムイベント
- 追跡
-
ビジネスイベントに加えて例外戦略とエンドポイントメッセージ
- Debug (デバッグ)
-
追跡に加えてメッセージプロセッサーの起動と終了
Splunk とのインテグレーション
Splunk を使用して、Mule イベント通知を検索可能なリポジトリに取得およびインデックス化し、このリポジトリからグラフ、レポート、アラート、ダッシュボード、視覚化を生成することができます。
Splunk インスタンスでのエージェントの設定
Splunk と統合するためには、Splunk インスタンスで新しい接続元種別を作成して、Runtime Manager エージェントから送信された HTTP イベントを解析できるように設定する必要があります。
-
必要に応じて
$SPLUNK_HOME/opt/splunk/etc/system/local/props.conf ファイルを作成します。 -
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 インスタンスを再起動して変更内容を有効にします。
Runtime Manager での Splunk のインテグレーションの設定
Runtime Manager エージェントから Splunk に Mule イベント通知を送信する手順は次のとおりです。
-
HTTP イベントコレクターを使用するか、または TCP 経由でデータを Splunk に送信する場合は、Splunk の前提条件を参照してください。
-
Anypoint Platform から [Runtime Manager] を選択します。
-
[Servers (サーバー)] タブをクリックします。
-
[Type (種別)] 列をクリックして、設定するサーバーの詳細ペインを表示します。
-
[Manage Server (サーバーを管理)] をクリックします。
-
[Plugins (プラグイン)] タブをクリックします。
Figure 3. このスクリーンショットには、(1) [Event Tracking (イベント追跡)] オプション、(2) [Level (レベル)] メニュー、(3) [Plugins (プラグイン)] タブの歯車アイコンが表示されています。 -
[Event Tracking (イベント追跡)] で [Splunk] を有効化します。
-
送信する情報の種別を [Level (レベル)] メニューから選択します。
ログレベルオプションを参照してください。
-
歯車アイコンをクリックして、Splunk 設定を指定します。
Figure 4. このスクリーンショットには、Splunk 設定ウィンドウの (1) プロトコルオプション、(2) データ入力種別、(3) [Show more options (その他のオプションを表示)] スイッチが表示されています。Splunk 設定オプションを参照してください。
-
Splunk が動作しているサーバーのホスト (IP アドレスまたはホスト名) と管理ポートを指定します。
-
REST API を使用してデータを Splunk に送信する場合は、[Rest API] を選択して、自分の Splunk アカウントのユーザー名とパスワードを入力します。
-
TCP 経由でデータを Splunk に送信する場合は、メニューから [tcp] を選択して、自分の Splunk アカウントのユーザー名とパスワードを入力します。
-
HTTP イベントコレクターを使用してデータを Splunk に送信する場合は、[HTTP Event Collector (HTTP イベントコレクター)] を選択して、Splunk からのトークンを [Token (トークン)] 項目に貼り付けます。
Figure 5. このスクリーンショットには、Splunk 設定ウィンドウの (1) [HTTP Event Collector (HTTP イベントコレクター)] オプションと (2) [Token (トークン)] 項目が表示されています。
-
-
必要に応じて、[Show more options (その他のオプションを表示)] をクリックして、送信データの書式設定プロパティを指定します。
Figure 6. 矢印は、Splunk 設定ウィンドウで展開されたオプションを示しています。Splunk 設定オプションを参照してください。
[SSL Protocol (SSL プロトコル)] オプションは、REST API データ入力種別にのみ適用されます。
Splunk でデータ入力を登録したときに Splunk インデックス、Splunk 接続元、Splunk 接続元種別の値を設定してある場合は、このウィンドウで指定した値がそれらの値よりも優先されます。 -
[Apply (適用)] をクリックして変更内容を保存します。
Splunk 設定オプション
Splunk のインテグレーションには、以下の設定オプションがあります。
| 項目 | 説明 | デフォルト値 |
|---|---|---|
Username (ユーザー名) (必須) |
Splunk に接続するためのユーザー名 |
|
Password (パスワード) (必須) |
Splunk ユーザー名に関連付けられているパスワード |
|
host (ホスト) (必須) |
Splunk を実行中のサーバーの IP アドレスまたはホスト名 |
|
port (ポート) |
Splunk 管理ポート |
8089 |
protocol (プロトコル) |
Splunk 管理ポートとの接続用プロトコル 選択できる値は http、https、tcp です。 |
https |
SSL Protocol (SSL プロトコル) (REST API のみ) |
HTTPS 接続で使用される SSL セキュリティプロトコル 可能な値は TLSv1_2、TLSv1_1、TLSv1、SSLv3 です。 |
TLSv1_2 |
Splunk Index (Splunk インデックス) |
すべてのイベントの送信先となる Splunk インデックスの名前 指定したインデックスが存在しない場合は、ユーザー名に関連付けられている権限が適切であれば、内部ハンドラーによってインデックスが作成されます。 |
main |
Splunk Source (Splunk 送信元種別) |
Splunk に送信されるイベントで使用される送信元 |
mule-events |
Splunk Type (Splunk 種別) |
Splunk に送信されるイベントで使用される送信元種別 |
mule |
Date Format (日付形式) |
タイムスタンプで使用される日付形式 |
yyyy-MM-dd’T’HH:mm:ssSZ |
ELK スタックとのインテグレーション
ELK (Elasticsearch、Logstash、Kibana) スタックにより、ログデータを保存、検索、分析できます。
Mule フローからのイベント通知を設定可能なログファイルに保存するように Runtime Manager を設定できます。 まず、Logstash でデータを取得してインデックス化します。 次に、Elasticsearch と Kibana を使用して、グラフ、レポート、アラート、ダッシュボード、視覚化を生成します。
ELK スタックのログファイルの設定
自分の ELK スタックが読み取るフォルダーにイベント通知を送信する手順は次のとおりです。
-
Anypoint Platform から [Runtime Manager] を選択します。
-
[Servers (サーバー)] タブをクリックします。
-
[Type (種別)] 列をクリックして、設定するサーバーの詳細ペインを表示します。
-
[Manage Server (サーバーを管理)] をクリックします。
-
[Plugins (プラグイン)] タブをクリックします。
Figure 7. このスクリーンショットには、(1) [Event Tracking (イベント追跡)] オプション、(2) [Level (レベル)] メニュー、(3) [Plugins (プラグイン)] タブの歯車アイコンが表示されています。 -
送信する情報の種別を [Level (レベル)] メニューから選択します。
ログレベルオプションを参照してください。
-
[Event Tracking (イベント追跡)] で [ELK] を有効化します。
-
歯車アイコンをクリックして、ELK のログファイルの場所を設定します。
Figure 8. このスクリーンショットには、ELK 設定ウィンドウの (1) ログファイルの場所と (2) [Show more options (その他のオプションを表示)] スイッチが表示されています。デフォルトの場所は
$MULE_HOME/logs/events.log であり、$MULE_HOME は wrapper.conf ファイルの -Dmule.home パラメーターによって指定される場所です。 デフォルトの場所を変更するには、/var/logs/elk/events.log のように、ELK ログファイルの場所の絶対パスを指定します。/var/logs/elk など、指定したディレクトリが存在している必要があります。 -
必要に応じて、[Show more options (その他のオプションを表示)] をクリックして、その他のログファイルプロパティを指定します。
Figure 9. 矢印は、ELK 設定ウィンドウで展開されたオプションを示しています。 -
[Apply (適用)] をクリックして変更内容を保存します。
イベント追跡ログファイル ($MULE_HOME/logs/events-%d{yyyy-dd-MM}-%i.log) は自動的には削除されません。定期的に手動でログを削除する必要があります。
|
API Analytics と Splunk または ELK のインテグレーション
API Analytics と Splunk または ELK を統合する手順は次のとおりです。
API ゲートウェイ wrapper.conf を設定しても (ステップ 1)、データの外部宛先を割り当てないと (ステップ 2)、分析データは API ゲートウェイサーバーのキューに累積し、システムクラッシュの原因となることがあります。
|
API ゲートウェイを設定する
外部分析ツールとの接続を設定するには、API ゲートウェイを設定します。
-
API ゲートウェイスタンドアロンのディレクトリで、
conf/wrapper.conf ファイルを開きます。コードスニペットの
.<n> 値は、wrapper.conf 内で一意の整数です。 -
次のプロパティが
true に設定されていて、行がコメント解除されていることを確認します。wrapper.java.additional.<n>=-Danypoint.platform.analytics_enabled=true -
次の行から URL を削除します。
wrapper.java.additional.<n>=-Danypoint.platform.analytics_base_uri=https://analytics-ingest.anypoint.mulesoft.com行は次のようになります。
wrapper.java.additional.<n>=-Danypoint.platform.analytics_base_uri= -
Anypoint Platform Private Cloud Edition を使用している場合は、
anypoint.platform.on_prem パラメーターを true に変更します。wrapper.java.additional.<n>=-Danypoint.platform.on_prem=trueRuntime Manager クラウドコンソールを使用している場合は、このパラメーターはデフォルトの
false のままにしておきます。
Splunk または ELK に接続するための API Analytics の設定
API ゲートウェイを設定したら、Runtime Manager で Splunk または ELK を設定します。
-
Anypoint Platform から [Runtime Manager] を選択します。
-
[Servers (サーバー)] タブをクリックします。
-
[Type (種別)] 列をクリックして、設定するサーバーの詳細ペインを表示します。
-
[Manage Server (サーバーを管理)] をクリックします。
-
[Plugins (プラグイン)] タブをクリックします。
Figure 10. 矢印は、サーバーの [Plugins (プラグイン)] タブの [API Analytics] オプションを示しています。 -
[API Analytics] で [ELK] または [Splunk] を有効化します。
-
歯車アイコンをクリックし、以下のセクションのステップ 8 から続行して設定を完了します。