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

logo cloud disabled logo hybrid active logo server active logo pcf disabled

いくつかの設定を行うことで、API ゲートウェイランタイムを実行するアプリケーションによって生成された HTTP API Analytics を、データベースに簡単に保存することができます。

サードパーティソフトウェアへのデータの送信は、現在ローカルサーバにデプロイされたアプリケーションのみで使用可能な機能です。Runtime Manager から CloudHub にデプロイするアプリケーションでは使用できません。「デプロイメント戦略」を参照してください。

この同じ情報を Splunk、ELK、またはその他のサードパーティソフトウェアに送信する方法については、「Runtime Manager から外部の分析ソフトウェアへのデータの送信」を参照してください。

前提条件

  • API ゲートウェイスタンドアロン – バージョン 2.1.0 以降

  • Runtime Manager エージェントプラグインのバージョン 1.3.0 以降

Runtime Manager エージェントのインストール

Runtime Manager エージェントは、Mule からメッセージの送信を行います。サードパーティソフトウェアにイベント情報を送信するには、Runtime Manager エージェントのバージョン 1.3.0 以降を使用する必要があります。

エージェントのインストールについては、「Runtime Manager エージェントのインストールと設定」を参照してください。

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

API Analytics 追跡データベース内部ハンドラをダウンロードして、{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 の設定例では、必須項目は driverjdbcUrluserpass です。分析が保存される apiAnalyticsTable も設定できます。

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

driver

String (文字列)

デーベースサーバとの通信に使用される JDBC ドライバを表します。

必須

jdbcUrl

String (文字列)

データベースサーバの JDBC URL を表します。

必須

user

String (文字列)

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

必須

pass

String (文字列)

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

必須

apiAnalyticsTable

String (文字列)

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

省略可能

MULE_API_ANALYTICS

提案する設定

一般的ないくつかのデータベースを使用するエージェントのセットアップ例

MySQL

スキーマ

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. http://dev.mysql.com/downloads/connector/j/ から MySQL JDBC ドライバをダウンロードします。

  2. ZIP ファイルを展開し、mysql-connector-java-VERSION-bin.jar ファイルを取得します。

  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: com.mysql.jdbc.Driver
        jdbcUrl: jdbc:mysql://192.168.61.128/mule
        user: root
        pass: test

ORACLE

スキーマ

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. http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html から Oracle JDBC ドライバをダウンロードします。

  2. ZIP ファイルを展開し、JAR ファイルを取得します。

  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

スキーマ

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 で update policy_violation_policy_id データ種別を更新するために提案されたスクリプトでの移行。

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

内部ハンドラ設定

  1. https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11774 から Microsoft JDBC ドライバをダウンロードします。

  2. sqljdbc_4_%version%.tar.gz ファイルを展開し、sqljdbc4%version%_.jar ファイルを取得します。

  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: com.microsoft.sqlserver.jdbc.SQLServerDriver
        jdbcUrl: jdbc:sqlserver://192.168.61.128:1433;databaseName=Mule;
        user: root
        pass: test

関連情報

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub