Edge for Private Cloud v4.18.01
すべての Edge for Private Cloud のお客様は、API プロキシのトラフィックに関する統計情報を Apigee に提供していただく必要があります。cron ジョブを作成することによって、1 日 1 回統計情報をアップロードすることを推奨しています。
本番環境にデプロイされた API のデータを提供していただく必要がありますが、開発環境やテスト環境にデプロイされた API のデータを提供していただく必要はありません。Edge 実装環境では、多くの場合、本番環境用 API に特定の組織または特定の環境を定義します。ご提供いただいたデータは、本番環境用の組織と環境にのみ使用されます。
このデータのアップロードを支援するため、Apigee は apigee-analytics-collector コマンドライン ユーティリティのベータ版を提供しています。このユーティリティは、API 呼び出しボリューム レポートを Apigee に返します。Edge for Private Cloud のすべてのインストールで、このユーティリティを使用してトラフィック データを取得し、Apigee に報告できます。
apigee-analytics-collector によってアップロードされたデータへのアクセス
apigee-analytics-collector ユーティリティを使用してデータをアップロードすると、Apigee 360 でデータを表示できます。
データを表示するには、Apigee 360 にログインして [Usage] オプションを選択します。[使用状況] ページには、各 Edge 組織の使用状況グラフと使用状況データの表が表示されます。
apigee-analytics-collector をインストールする
apigee-analytics-collector ユーティリティは、apigee-service ユーティリティを使用してインストールする RPM です。
設置場所
apigee-analytics-collector ユーティリティをインストールするノードは、Edge Management Server の Edge Management API にアクセスできる任意のノードにできます。Management Server に直接インストールすることも、Edge インストールの別のノードにインストールすることも、Management Server に API リクエストを送信できる別のノードにインストールすることもできます。
インターネット アクセスの要件
外部インターネットにアクセスできるマシンに apigee-analytics-collector ユーティリティをインストールします。その後、apigee-analytics-collector ユーティリティはデータを Apigee に直接アップロードできます。
Edge Management Server の Edge Management API にアクセスでき、外部インターネットにアクセスできるノードがない場合は、Edge Management API を使用してトラフィック データをローカルに保存できます。その後、Apigee にアップロードするために、インターネット アクセスできるマシンにデータを転送する必要があります。このシナリオでは、apigee-analytics-collector ユーティリティを使用する必要はありません。詳細については、後述の Apigee へのデータの手動アップロードをご覧ください。
設置
次のコマンドを使用して、apigee-analytics-collector ユーティリティをインストールします。RPM ファイルをインストールするため、このコマンドは root ユーザーまたは sudo フルアクセス権限を持つユーザーが実行する必要があります。完全な sudo アクセス権とは、ユーザーが root と同じオペレーションを実行するための sudo アクセス権を持っていることを意味します。
> /opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector install
apigee-analytics-collector の実行
このセクションでは、apigee-analytics-collector ユーティリティを実行する方法について説明します。
apigee-analytics-collector を実行するユーザーの構成
apigee-analytics-collector は、root 以外のユーザーとして実行する必要があります。このユーザーには、「apigee」ユーザーに対する sudo フルアクセス権限が必要です。
「apigee」ユーザーに対する sudo フルアクセス権限を持つユーザーを構成するには、「visudo」コマンドを使用して sudoers ファイルを編集し、次の行を追加します。
analyticsUser ALL=(apigee) NOPASSWD: ALL
ここで、analyticsUser は、apigee-analytics-collector ユーティリティを実行するユーザーのユーザー名です。
apigee-analytics-collector ユーティリティをインストールしてユーザーを構成したら、apigee-analytics-collector ユーティリティのヘルプコマンドを実行してユーティリティをテストできます。
> /opt/apigee/apigee-service/bin/ apigee-service apigee-analytics-collector export traffic --help
apigee-analytics-collector の実行に必要な情報
apigee-analytics-collector コマンドを実行して Apigee にデータを転送するには、次の情報が必要です。
- apigee_mgmt_api_uri: Management Server 上の Edge API のベース URL。この URL は通常、次の形式になります。
http://ms_IP:8080/v1
ここで、ms_IP は Management Server の IP アドレス、8080 は Edge API で使用されるポートです。Edge API の DNS エントリを作成した場合、URL は次の形式になります:
http://ms_DNS/v1
Edge Management API で TLS を有効にした場合、次の形式になります:
https://ms_IP:8080/v1
https://ms_DNS/v1 - apigee_mgmt_api_email: Edge /stats API へのアクセス権を持つアカウントのメールアドレス。多くの場合、これは Edge システム管理者のメールアドレスか、本番環境組織の組織管理者のメールアドレスです。
- apigee_mgmt_api_password: apigee_mgmt_api_email で指定されたアカウントの Edge パスワード。
- apigee_analytics_client_id と apigee_analytics_secret: Apigee にデータをアップロードするための認証情報。apigee_analytics_client_id と apigee_analytics_secret を取得するには、Apigee サポートにチケットを送信してください。
コマンドの例
以下に、Edge インストール内のすべての組織と環境のトラフィック データを取得し、そのデータを Apigee にアップロードするコマンドの例を示します。apigee-service を使用して apigee-analytics-collector コマンドを実行する方法に注目してください。
> /opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic \ --apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \ --apigee_mgmt_api_email $ae_username \ --apigee_mgmt_api_password $ae_password \ --apigee_analytics_client_id $apigee_analytics_client_id \ --apigee_analytics_secret $apigee_analytics_secret
このコマンドには、apigee_analytics_client_id や apigee_analytics_secret など、必要な情報がすべて含まれています。
結果は次の形式で表示されます。
[
{
"org": "myOrg",
"env": "prod",
"time_range_start": "08/27/2016 00:00",
"time_range_end": "08/30/2016 00:00",
"response": [
{
"store_org_env_metrics_hourly_v4": 1
}
]
},
{
"org": "VALIDATE",
"env": "test",
"time_range_start": "08/27/2016 00:00",
"time_range_end": "08/30/2016 00:00",
"response": [
{
"store_org_env_metrics_hourly_v4": 1
}
]
}
]コマンドのコマンドライン オプションを使用して、そのアクションを制御します。次のオプションを使用して、生成されたデータに含める組織と環境を指定します。
- -i, --include_orgs <カンマ区切りのリスト>
- -x, --exclude_orgs <カンマ区切りのリスト>
- -n, --include_envs <カンマ区切りのリスト>
- -e, --exclude_envs <カンマ区切りのリスト>
たとえば、本番環境の組織と環境のみを指定するには、-i(または --include_orgs)オプションと -n(または --include_envs)オプションを使用します。
> /opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic -i myOrg -n prod \ --apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \ --apigee_mgmt_api_email $ae_username \ --apigee_mgmt_api_password $ae_password \ --apigee_analytics_client_id $apigee_analytics_client_id \ --apigee_analytics_secret $apigee_analytics_secret
この例では、myOrg の prod 環境からのみデータを収集します。
Apigee に送信する前にデータを画面にダンプして確認するには、-S オプションを使用します。
> /opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic -i myOrg -n prod -S \ --apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \ --apigee_mgmt_api_email $ae_username \ --apigee_mgmt_api_password $ae_password \ --apigee_analytics_client_id $apigee_analytics_client_id \ --apigee_analytics_secret $apigee_analytics_secret
-S オプションは、Apigee へのデータ アップロードを省略します。その後、-S オプションを指定せずにコマンドを再実行して、データを Apigee に送信できます。
-S オプションを使用する理由の一つは、さまざまな種類のデータをローカルに表示できることです。Apigee では、API トラフィック データのアップロードのみが必要ですが、-D オプションを使用すると、API プロダクト、デベロッパー、アプリ、API プロキシに関するデータを表示できます。次の例では、-D オプションと -S オプションを使用して、デベロッパー データをローカルに表示しています。
> /opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic -i myOrg -n prod -S -D devs \ --apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \ --apigee_mgmt_api_email $ae_username \ --apigee_mgmt_api_password $ae_password \ --apigee_analytics_client_id $apigee_analytics_client_id \ --apigee_analytics_secret $apigee_analytics_secret
詳細な出力を取得するには -v オプションを、apigee-analytics-collector によって生成された curl コマンドを表示するには -R オプションを指定します。
> /opt/apigee/apigee-service/bin/apigee-service apigee-analytics-collector export traffic -i myOrg -n prod -S -R -v \ --apigee_mgmt_api_uri http://192.168.56.103:8080/v1 \ --apigee_mgmt_api_email $ae_username \ --apigee_mgmt_api_password $ae_password \ --apigee_analytics_client_id $apigee_analytics_client_id \ --apigee_analytics_secret $apigee_analytics_secret
次のセクションでは、コマンドライン オプションの全リストを示します。
コマンド パラメータ
次の表に、apigee-analytics-collector ユーティリティのオプションの一覧を示します。
|
コマンド |
次のコマンドを実行します。 |
|---|---|
|
-h、--help |
使用状況情報を出力する |
|
-D, --dimension <dimension> |
収集するトラフィック ディメンション。有効なディメンション: apiproducts、devs、apps、apiproxy(デフォルト) |
|
-d, --days <days> |
収集するデータの過去の日数(現在の日付から開始)。デフォルトは 3 です。 -d を指定する場合は、-s と -z を指定して期間を設定しないでください。 |
|
-m, --apigee_mgmt_api_uri <apigee_mgmt_api_uri> |
Edge Management API の URL。 |
|
-u, --apigee_mgmt_api_email <apigee_mgmt_api_email> |
Edge /stats API へのアクセス権を持つアカウントのメールアドレス。多くの場合、これは Edge システム管理者のメールアドレスか、本番環境組織の組織管理者のメールアドレスです。 |
|
-p, --apigee_mgmt_api_password <apigee_mgmt_api_password> |
-u で指定された Edge Management API のメールアカウントに関連付けられたパスワード。 |
|
-i, --include_orgs <items> |
出力に含める組織のカンマ区切りのリスト。 |
|
-x, --exclude_orgs <items> |
出力から除外する組織のカンマ区切りのリスト。 |
|
-n, --include_envs <items> |
出力に含める環境のカンマ区切りのリスト。 |
|
-e, --exclude_envs <items> |
出力に含める環境のカンマ区切りのリスト。 |
|
-o、--output <path> |
出力を保存するパスとファイル名。 |
|
-s, --time_range_start <time_range_start> |
トラフィック統計情報のクエリを開始する期間(「03/01/2016 00:00」の形式)。 -d を指定する場合は、期間を設定するために -s と -z も指定しないでください。 |
|
-z, --time_range_end <time_range_end> |
トラフィック統計情報をクエリする期間の終了。形式は「04/01/2016 24:00」です。 -d を指定する場合は、期間を設定するために -s と -z も指定しないでください。 |
|
-t, --time_unit <time_unit> |
トラフィック データの時間単位。デフォルトの週。デフォルトの単位は時間です。有効な時間単位: 秒、分、時間、日、週。 |
|
-S, --standard_output |
出力を Apigee にアップロードするのではなく、ターミナル(stdout)に書き込みます。 |
|
-c, --apigee_analytics_client_id <apigee_analytics_client_id> |
Apigee にデータをアップロードするための ID。Apigee サポートにチケットを送信して取得してください。 |
|
-r, --apigee_analytics_secret <apigee_analytics_secret> |
Apigee にデータをアップロードするためのシークレット。Apigee サポートにチケットを送信して取得してください。 |
|
-R, --include_curl_commands |
生成された cURL コマンドをデバッグ用の出力に含めます。 |
|
-v, --verbose |
詳細な出力を表示します。 |
Apigee へのデータの手動アップロード
Apigee では、外部インターネット アクセスが可能なマシンに apigee-analytics-collector ユーティリティをインストールすることをおすすめします。その後、apigee-analytics-collector ユーティリティはデータを Apigee に直接アップロードできます。
ただし、マシンに外部インターネット アクセスがない場合は、Edge Management API を使用してトラフィック データを収集し、cURL コマンドを使用して、インターネット アクセスのあるマシンから Apigee にアップロードします。Edge 実装環境内のすべての本番環境の組織と環境に対して、この手順を繰り返してください。
次の cURL コマンドを使用して、特定の組織と環境のトラフィック データを指定の時間間隔で収集します。
curl -X GET -u apigee_mgmt_api_email:apigee_mgmt_api_password \
"http://<ms_IP>:8080/v1/organizations/{org_name}/environments/{env_name}/stats/apiproxy?select=sum(message_count)&timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour"このコマンドは、Edge の Get API message count API を使用します。コマンドの内容:
- apigee_mgmt_api_email:apigee_mgmt_api_password には、Edge /stats API へのアクセス権を持つアカウントのメールアドレスを指定します。
- <ms_IP> は、Edge Management Server の IP アドレスまたは DNS 名です。
- {org_name} と {env_name} は、組織と環境を指定します。
- apiproxy は、API プロキシごとに指標をグループ化するディメンションです。
- MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM&timeUnit=hour は、収集する指標の時間単位に分割された期間を指定します。cURL コマンドでは、期間のスペースに 16 進数コード
%20が使用されています。
たとえば、24 時間にわたって API プロキシのメッセージ数を 1 時間ごとに収集するには、次の Management API 呼び出しを使用します。timeRange には URL エンコードされた文字が含まれています。
curl -X GET -u apigee_mgmt_api_email:apigee_mgmt_api_password \ "http://192.168.56.103:8080/v1/organizations/myOrg/environments/prod/stats/apiproxy?select=sum(message_count)&timeRange=01%2F01%2F2018%2000%3A00~01%2F02%2F2018%2000%3A00"
レスポンスは次の形式で表示されます。
{
"environments" : [ {
"metrics" : [ {
"name" : "sum(message_count)",
"values": [
{
"timestamp": 1514847600000,
"value": "35.0"
},
{
"timestamp": 1514844000000,
"value": "19.0"
},
{
"timestamp": 1514840400000,
"value": "58.0"
},
{
"timestamp": 1514836800000,
"value": "28.0"
},
{
"timestamp": 1514833200000,
"value": "29.0"
},
{
"timestamp": 1514829600000,
"value": "33.0"
},
{
"timestamp": 1514826000000,
"value": "26.0"
},
{
"timestamp": 1514822400000,
"value": "57.0"
},
{
"timestamp": 1514818800000,
"value": "41.0"
},
{
"timestamp": 1514815200000,
"value": "27.0"
},
{
"timestamp": 1514811600000,
"value": "47.0"
},
{
"timestamp": 1514808000000,
"value": "66.0"
},
{
"timestamp": 1514804400000,
"value": "50.0"
},
{
"timestamp": 1514800800000,
"value": "41.0"
},
{
"timestamp": 1514797200000,
"value": "49.0"
},
{
"timestamp": 1514793600000,
"value": "35.0"
},
{
"timestamp": 1514790000000,
"value": "89.0"
},
{
"timestamp": 1514786400000,
"value": "42.0"
},
{
"timestamp": 1514782800000,
"value": "47.0"
},
{
"timestamp": 1514779200000,
"value": "21.0"
},
{
"timestamp": 1514775600000,
"value": "27.0"
},
{
"timestamp": 1514772000000,
"value": "20.0"
},
{
"timestamp": 1514768400000,
"value": "12.0"
},
{
"timestamp": 1514764800000,
"value": "7.0"
}
]
}
],
"name" : "proxy1"
} ],
"metaData" : {
"errors" : [ ],
"notices" : [ "query served by:53dab80c-e811-4ba6-a3e7-b96f53433baa", "source pg:6b7bab33-e732-405c-a5dd-4782647ce096", "Table used: myorg.prod.agg_api" ]
}
}インターネットにアクセスできるマシンから Apigee にデータをアップロードするには、次の cURL コマンドを使用します。
curl -X POST -H 'Content-Type:application/json' \
-u apigee_analytics_client_id:apigee_analytics_secret \
https://nucleus-api-prod.apigee.com/v1/apigee-analytics-cli-api/traffic/orgs/{org_name}/apis -d '{"environments"...}'ここで
- apigee_analytics_client_id:apigee_analytics_secret: Apigee サポートから取得した、Apigee にデータをアップロードするための認証情報を指定します。
- {org_name} は組織を指定します。
- {"environments"...} には、上記の統計情報の収集に使用した cURL コマンドの結果が含まれています。