ELK を使用したビジネスおよび API データの分析

Elastic Stack (ELK スタック) を使用してビジネスデータおよび Anypoint Platform Private Cloud Edition (Anypoint Platform PCE) によって生成される API Analytics を分析します。Filebeat を使用して Anypoint Platform ログファイルを処理して Elasticsearch データベースに挿入し、Kibana を使用して分析できます。

次の例は、Kibana で API データがどのように表示されるかを示しています。

kibana example

前提条件

  • 必須ソフトウェア

    外部分析データを ELK にエクスポートするには、次のソフトウェアが必要です。

    • Mule Runtime Engine (Mule)、バージョン 3.8.4 以降

    • Anypoint Runtime Manager エージェント、バージョン 1.7.0 以降

    • Elasticsearch、バージョン 7.6.2

    • Filebeat、バージョン 7.6.2

    • Kibana、バージョン 7.6.2

  • Mule Runtime Engine インスタンスをインストールして設定していることを確認します。

  • Mule Runtime Engine インスタンスを Runtime Manager に登録していることを確認します。

wrapper.conf プロパティファイルの編集

Mule Runtime インストールで、​conf/wrapper.conf​ ファイルの次のプロパティを編集します。

  1. analytics_enabled​ プロパティを ​true​ に設定します。

    wrapper.java.additional.<n>=-Danypoint.platform.analytics_enabled=true
  2. URI 値を ​analytics_base_uri​ プロパティから削除します。

    wrapper.java.additional.<n>=-Danypoint.platform.analytics_base_uri=
  3. on_prem​ プロパティを ​true​ に設定します。

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

イベント追跡を有効にする

ビジネスおよびイベント追跡データをエクスポートするには、Runtime Manager でイベント追跡を有効にする必要があります。

  1. Anypoint Platform から ​[Runtime Manager]​ を選択します。

  2. [Servers (サーバー)]​ を選択します。

  3. ELK を設定するサーバーが含まれる行を選択します。

  4. [Manager Server (Manager サーバー)]​ を選択し、​[Plugins (プラグイン)]​ タブを選択します。

  5. [​Event Tracking (イベント追跡)]​ で、​[Levels (レベル)]​ ドロップダウンメニューから ​[Business Events (ビジネスイベント)]​ を選択します。

  6. スイッチをオンにして ELK でイベント追跡を有効にします。

    Runtime Manager に ​[ELK Integration (ELK 統合)]​ ダイアログが表示されます。

  7. 必要に応じてログファイルを設定します。

  8. [Apply (適用)]​ を選択します。

API Analytics を有効にする

API Analytics をエクスポートするには、Runtime Manager で API Analytics を有効にする必要があります。

  1. Anypoint Platform から ​[Runtime Manager]​ を選択します。

  2. [Servers (サーバー)]​ を選択します。

  3. ELK を設定するサーバーが含まれる行を選択します。

  4. スイッチをオンにして API Analytics を有効にして、​[ELK]​ の横にあるスイッチをオンにします。

  5. 必要に応じてログファイルを設定します。

  6. [Apply (適用)]​ を選択します。

Filebeat エージェントをインストールして設定する

Mule Runtime インスタンスを含む各サーバーで、オペレーティングシステムに合った Filebeat をダウンロードしてインストールします。

Mule Filebeat Module を設定する

Mule Runtime インスタンスを含む各サーバーで、次の URL から Filebeat Module アーカイブをダウンロードして展開します。

https://s3.us-east-2.amazonaws.com/elk-integration/elk-integration-06-08-20/elk-integration.tar.gz
  1. 各ログファイルの絶対パスを ​manifest.yml​ ファイルに追加します。

    • businessevents​ フォルダー内で、イベントログのパスをオペレーティングシステム (OS) の ​var​ 変数に設定します。

      var:
        - name: paths
          default:
            - /var/mule/logs/events.log
          os.darwin:
            - /var/mule/logs/events.log
          os.windows:
            - /var/mule/logs/events.log
    • apianalytics​ フォルダー内で、API Analytics ログのパスを OS の ​var​ 変数に設定します。

      var:
        - name: paths
          default:
            - /var/mule/logs/api-analytics-elk.log*
          os.darwin:
            - /var/mule/logs/api-analytics-elk.log*
          os.windows:
            - c:/programdata/mule/logs/api-analytics-elk.log*
  2. mule​ モジュールフォルダーを Filebeat インストールの ​module​ フォルダーにコピーします。

  3. mule.yml​ ファイルを Filebeat インストールの ​modules.d​ フォルダーにコピーします。

  4. Elasticsearch を開始して、次に Kibana を開始します。

  5. Filebeat をセットアップし、Kibana のダッシュボードをプロビジョニングします。

    Filebeat インストールフォルダー内で次のコマンドを実行します。​${filebeat-installation-folder}​ を Filebeat インストールのルートフォルダーへのパスに置き換えて、必要に応じて Elasticsearch ホストを変更します。


    /filebeat setup -e \
      -E output.elasticsearch.hosts="['localhost:9200']" \
      -E output.elasticsearch.index="mule-%{+yyyy.MM.dd}" \
      -E setup.dashboards.enabled=true \
      -E setup.dashboards.directory=${filebeat-installation-folder}/module/mule/_meta/kibana \
      -E setup.ilm.enabled=false	\
      -E setup.template.name="mule" \
      -E setup.template.pattern="mule-*" \
      -E setup.template.overwrite=true
    ---
  6. Filebeat を起動します。

    Filebeat インストールフォルダー内で次のコマンドを実行します。​${filebeat-installation-folder}​ を Filebeat インストールのルートフォルダーへのパスに置き換えて、必要に応じて Elasticsearch ホストを変更します。

    ./filebeat -e \
      -E output.elasticsearch.hosts="['localhost:9200']" \
      -E output.elasticsearch.index="mule-%{+yyyy.MM.dd}" \
      -E setup.dashboards.enabled=true \
      -E setup.dashboards.directory=${filebeat-installation-folder}/module/mule/_meta/kibana \
      -E setup.ilm.enabled=false	\
      -E setup.template.name="mule" \
      -E setup.template.pattern="mule-*" \
      -E setup.template.overwrite=true

インデックスを読み込むための Kibana の設定

Filebeat および Elasticsearch をインストールしたら、Anypoint Platform からのデータをコンシュームするように Kibana を設定する必要があります。

MuleSoft にはデフォルトの Kibana 設定が用意されており、これを使用してビジネスおよび API データを分析できます。この設定にはダッシュボード、検索、視覚化が含まれます。

  1. インデックスパターンを設定します。

    Anypoint Platform データ用の Elasticsearch インデックスを作成する必要があります。

    1. 最初のデータのセットを生成します。

      これは、作成するインデックスを Kibana が認識できるようにするために必要です。最初のデータのセットを生成するテスト API への要求を送信するには、次の手順を実行します。

      1. Kibana 管理コンソールで、​mule-*​ を値としてインデックスパターンを作成します。

      2. [Time Filter field name (時間検索条件項目名)]​ で ​[@timestamp]​ を選択します。

      3. [Show advanced options (詳細オプションを表示)]​ で、​[Custom index pattern ID (カスタムインデックスパターン ID)]​ 項目の値として ​mule-index​ を設定します。

    2. インデックスを作成します。

      [Dashboard (ダッシュボード)]​ タブですべての Mule ダッシュボードにアクセスできるようになりました。