Runtime Manager から外部データベースへの API Analytics の送信

API ゲートウェイランタイムで動作している Mule アプリケーションからの HTTP API Analytics データをデータベースに保存するように Runtime Manager を設定できます。

サードパーティソフトウェアへのデータの送信は、ローカルサーバーにデプロイされたアプリケーションのみで行えます。 CloudHub にデプロイされたアプリケーションでは使用できません。

このデータを Splunk、ELK、またはその他のサードパーティソフトウェアに送信する方法については、​「外部分析ツールへのデータのエクスポート」​を参照してください。

前提条件

次のソフトウェアがインストールされていることを確認してください。

API Analytics 追跡データベース内部ハンドラーのインストール

使用している Runtime Manager エージェントのバージョンによっては、API Analytics 追跡データベース内部ハンドラーの ZIP ファイルをインストールする必要があります。

次のエージェントバージョンでは、必要な JAR ファイルがエージェントプラグインに含まれているため、ZIP ファイルのインストールは不要です。

  • 1.14.3 以降

  • 2.4.5 以降

次のエージェントバージョンでは、ZIP ファイルを手動でダウンロードしてインストールする必要があります。

  • 1.14.2 以前

  • 2.4.4 以前

ZIP ファイルをインとする手順は次のとおりです。

  1. API Analytics 追跡データベース内部ハンドラーの ZIP ファイル (​mule-agent-internal-handlers-db-1.5.1.zip​) をサポートに要求します。

  2. ZIP ファイルを ​{MULE_HOME}/plugins/mule-agent-plugin/lib/modules​ フォルダーに展開します。

エージェントの設定可能項目

最新の Runtime Manager エージェントと API Analytics 追跡データベース内部ハンドラーを API ゲートウェイスタンドアロンサーバーにインストールしたら、​{MULE_HOME}/conf/mule-agent.yml​ 設定ファイルを変更して内部ハンドラーを有効にします。

次の MySQL Server、Oracle、Microsoft SQL Server の設定例では、必須項目は ​driver​、​jdbcUrl​、​user​、​pass​ です。 分析が保存される場所を指定する ​apiAnalyticsTable​ 項目も設定できます。

項目 データ型 説明 デフォルト値

driver

String (文字列)

データベースサーバーとの通信に使用される JDBC ドライバー。

必須

jdbcUrl

String (文字列)

データベースサーバーの JDBC URL。

必須

user

String (文字列)

データベースサーバーに接続するために使用するユーザー名。

必須

pass

String (文字列)

データベースサーバーに接続するために使用するパスワード。

必須

apiAnalyticsTable

String (文字列)

エージェントがイベントを保存するテーブルの名前。

省略可能

MULE_API_ANALYTICS

MySQL の設定例

次の例は、MySQL データベースと連携させるための Runtime Manager エージェントのセットアップ方法を示しています。

スキーマ

CREATE TABLE MULE_API_ANALYTICS (
  id                           CHAR(36)     NOT NULL,
  api_id                       INT          NOT NULL,
  api_name                     VARCHAR(64)  NULL,
  api_version                  VARCHAR(150) NULL,
  api_version_id               INT          NOT NULL,
  application_name             VARCHAR(42)  NULL,
  client_id                    VARCHAR(255) NULL,
  client_ip                    VARCHAR(45)  NOT NULL,
  event_id                     VARCHAR(36)  NOT NULL,
  host_id                      VARCHAR(255) NULL,
  org_id                       VARCHAR(36)  NULL,
  path                         VARCHAR(500) NOT NULL,
  policy_violation_policy_id   VARCHAR(50)  NULL,
  policy_violation_policy_name VARCHAR(150) NULL,
  policy_violation_outcome     VARCHAR(10)  NULL,
  received_ts                  VARCHAR(30)  NOT NULL,
  replied_ts                   VARCHAR(30)  NOT NULL,
  request_bytes                INT          NOT NULL,
  request_disposition          VARCHAR(10)  NOT NULL,
  response_bytes               INT          NOT NULL,
  status_code                  INT          NOT NULL,
  transaction_id               VARCHAR(36)  NULL,
  user_agent                   VARCHAR(500) NULL,
  verb                         VARCHAR(8)   NOT NULL,
  PRIMARY KEY (id)
);

バージョン 2.3.0 より前の Runtime Manager エージェントから移行する場合、スキーマを更新する必要があります。 次の移行スクリプトを使用して、MySQL で ​policy_violation_policy_id​ データ種別を更新できます。

ALTER TABLE MULE_API_ANALYTICS MODIFY policy_violation_policy_id VARCHAR(50) NULL;

内部ハンドラー設定

  1. 次の場所から MySQL JDBC ドライバーをダウンロードします。

  2. ZIP ファイルを抽出します。

  3. mysql-connector-java-{VERSION}.jar​ ファイルを ​{MULE_HOME}/plugins/mule-agent-plugin/lib/modules​ にコピーします。

  4. {MULE_HOME}/conf/mule-agent.yml​ ファイルを変更して次を含めます。

      mule.agent.gw.http.handler.database:
        enabled: true
        driver: com.mysql.jdbc.Driver
        jdbcUrl: jdbc:mysql://192.168.61.128/mule
        user: root
        pass: test

Oracle の設定例

次の例は、Oracle データベースと連携させるための Runtime Manager エージェントのセットアップ方法を示しています。

スキーマ

CREATE TABLE MULE_API_ANALYTICS (
  id                           CHAR(36)     NOT NULL,
  api_id                       INT          NOT NULL,
  api_name                     VARCHAR(64)  NULL,
  api_version                  VARCHAR(150) NULL,
  api_version_id               INT          NOT NULL,
  application_name             VARCHAR(42)  NULL,
  client_id                    VARCHAR(255) NULL,
  client_ip                    VARCHAR(45)  NOT NULL,
  event_id                     VARCHAR(36)  NOT NULL,
  host_id                      VARCHAR(255) NULL,
  org_id                       VARCHAR(36)  NULL,
  path                         VARCHAR(500) NOT NULL,
  policy_violation_policy_id   VARCHAR(50)  NULL,
  policy_violation_policy_name VARCHAR(150) NULL,
  policy_violation_outcome     VARCHAR(10)  NULL,
  received_ts                  VARCHAR(30)  NOT NULL,
  replied_ts                   VARCHAR(30)  NOT NULL,
  request_bytes                INT          NOT NULL,
  request_disposition          VARCHAR(10)  NOT NULL,
  response_bytes               INT          NOT NULL,
  status_code                  INT          NOT NULL,
  transaction_id               VARCHAR(36)  NULL,
  user_agent                   VARCHAR(500) NULL,
  verb                         VARCHAR(8)   NOT NULL,
  PRIMARY KEY (id)
);

バージョン 2.3.0 より前の Runtime Manager エージェントから移行する場合、スキーマを更新する必要があります。 たとえば、次の移行スクリプトを使用して、Oracle 11g XE で ​policy_violation_policy_id​ データ種別を更新できます。

ALTER TABLE MULE_API_ANALYTICS ADD temp VARCHAR(50);
update MULE_API_ANALYTICS set temp=cast(policy_violation_policy_id as VARCHAR(50));
ALTER TABLE MULE_API_ANALYTICS DROP COLUMN policy_violation_policy_id;
ALTER TABLE MULE_API_ANALYTICS RENAME COLUMN temp TO policy_violation_policy_id;

内部ハンドラー設定

  1. 次の場所から Oracle JDBC ドライバーをダウンロードします。

  2. GZ ファイルを抽出します。

  3. JAR ファイルを ​{MULE_HOME}/plugins/mule-agent-plugin/lib/modules​ にコピーします。

  4. {MULE_HOME}/conf/mule-agent.yml​ ファイルを変更して次を含めます。

      mule.agent.gw.http.handler.database:
        enabled: true
        driver: oracle.jdbc.OracleDriver
        jdbcUrl: jdbc:oracle:thin:@192.168.61.128/XE
        user: root
        pass: test

Microsoft SQL Server の設定例

次の例は、Microsoft SQL Server データベースと連携させるための Runtime Manager エージェントのセットアップ方法を示しています。

スキーマ

CREATE TABLE MULE_API_ANALYTICS (
  id                           CHAR(36)     NOT NULL,
  api_id                       INT          NOT NULL,
  api_name                     VARCHAR(64)  NULL,
  api_version                  VARCHAR(150) NULL,
  api_version_id               INT          NOT NULL,
  application_name             VARCHAR(42)  NULL,
  client_id                    VARCHAR(255) NULL,
  client_ip                    VARCHAR(45)  NOT NULL,
  event_id                     VARCHAR(36)  NOT NULL,
  host_id                      VARCHAR(255) NULL,
  org_id                       VARCHAR(36)  NULL,
  path                         VARCHAR(500) NOT NULL,
  policy_violation_policy_id   VARCHAR(50)  NULL,
  policy_violation_policy_name VARCHAR(150) NULL,
  policy_violation_outcome     VARCHAR(10)  NULL,
  received_ts                  VARCHAR(30)  NOT NULL,
  replied_ts                   VARCHAR(30)  NOT NULL,
  request_bytes                INT          NOT NULL,
  request_disposition          VARCHAR(10)  NOT NULL,
  response_bytes               INT          NOT NULL,
  status_code                  INT          NOT NULL,
  transaction_id               VARCHAR(36)  NULL,
  user_agent                   VARCHAR(500) NULL,
  verb                         VARCHAR(8)   NOT NULL,
  PRIMARY KEY (id)
);

バージョン 2.3.0 より前の Runtime Manager エージェントから移行する場合、スキーマを更新する必要があります。 次の移行スクリプトを使用して、Microsoft SQL Server 2014 で ​policy_violation_policy_id​ データ種別を更新できます。

ALTER TABLE MULE_API_ANALYTICS ALTER COLUMN policy_violation_policy_id VARCHAR(50) NULL;

内部ハンドラー設定

  1. 次の場所から SQL Server 用の Microsoft JDBC ドライバーをダウンロードします。

  2. sqljdbc%version%.tar.gz​ ファイルを抽出します。

  3. 適切な ​sqljdbc%version%.jar​ ファイルを ​{MULE_HOME}/plugins/mule-agent-plugin/lib/modules​ にコピーします。

  4. {MULE_HOME}/conf/mule-agent.yml​ ファイルを変更して次を含めます。

      mule.agent.gw.http.handler.database:
        enabled: true
        driver: com.microsoft.sqlserver.jdbc.SQLServerDriver
        jdbcUrl: jdbc:sqlserver://192.168.61.128:1433;databaseName=Mule;
        user: root
        pass: test