API ゲートウェイランタイムで動作している Mule アプリケーションからの HTTP API Analytics データをデータベースに保存するように Runtime Manager を設定できます。
サードパーティソフトウェアへのデータの送信は、ローカルサーバーにデプロイされたアプリケーションのみで行えます。 CloudHub にデプロイされたアプリケーションでは使用できません。
このデータを Splunk、ELK、またはその他のサードパーティソフトウェアに送信する方法については、「外部分析ツールへのデータのエクスポート」を参照してください。
前提条件
次のソフトウェアがインストールされていることを確認してください。
-
API ゲートウェイスタンドアロンバージョン 2.1.0 以降
-
Runtime Manager エージェントバージョン 1.3.0 以降
エージェントの更新については、「Runtime Manager エージェントのインストールまたは更新」を参照してください。
API Analytics 追跡データベース内部ハンドラーのインストール
使用している Runtime Manager エージェントのバージョンによっては、API Analytics 追跡データベース内部ハンドラーの ZIP ファイルをインストールする必要があります。
次のエージェントバージョンでは、必要な JAR ファイルがエージェントプラグインに含まれているため、ZIP ファイルのインストールは不要です。
-
1.14.3 以降
-
2.4.5 以降
次のエージェントバージョンでは、ZIP ファイルを手動でダウンロードしてインストールする必要があります。
-
1.14.2 以前
-
2.4.4 以前
ZIP ファイルをインとする手順は次のとおりです。
-
API Analytics 追跡データベース内部ハンドラーの ZIP ファイル (
mule-agent-internal-handlers-db-1.5.1.zip) をサポートに要求します。 -
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 項目も設定できます。
| 項目 | データ型 | 説明 | 型 | デフォルト値 |
|---|---|---|---|---|
|
String (文字列) |
データベースサーバーとの通信に使用される JDBC ドライバー。 |
必須 |
|
|
String (文字列) |
データベースサーバーの JDBC URL。 |
必須 |
|
|
String (文字列) |
データベースサーバーに接続するために使用するユーザー名。 |
必須 |
|
|
String (文字列) |
データベースサーバーに接続するために使用するパスワード。 |
必須 |
|
|
String (文字列) |
エージェントがイベントを保存するテーブルの名前。 |
省略可能 |
|
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;
内部ハンドラー設定
-
次の場所から MySQL JDBC ドライバーをダウンロードします。
-
ZIP ファイルを抽出します。
-
mysql-connector-java-{VERSION}.jar ファイルを {MULE_HOME}/plugins/mule-agent-plugin/lib/modules にコピーします。 -
{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;
内部ハンドラー設定
-
次の場所から Oracle JDBC ドライバーをダウンロードします。
-
GZ ファイルを抽出します。
-
JAR ファイルを
{MULE_HOME}/plugins/mule-agent-plugin/lib/modules にコピーします。 -
{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;
内部ハンドラー設定
-
次の場所から SQL Server 用の Microsoft JDBC ドライバーをダウンロードします。
-
sqljdbc%version%.tar.gz ファイルを抽出します。 -
適切な
sqljdbc%version%.jar ファイルを {MULE_HOME}/plugins/mule-agent-plugin/lib/modules にコピーします。 -
{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