Edge for Private Cloud v. 4.17.09
すべての 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 にログインし、[使用量] オプションを選択します。[使用状況] ページには、各 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 ユーティリティの help コマンドを実行してユーティリティをテストできます。
> /opt/apigee/apigee-service/bin/ apigee-service apigee-analytics-collector export traffic --help
apigee-analytics-collector を実行するために必要な情報
apigee-analytics-collector コマンドを実行してデータを Apigee に転送するには、次の情報が必要です。
- apigee_mgmt_api_uri: 管理サーバー上の Edge API のベース URL。この URL は通常、次の形式です。
http://ms_IP:8080/v1
ここで、ms_IP は IP アドレスまたは Management Server で、8080 は Edge API で使用されるポートです。Edge API 用に DNS エントリを作成した場合、URL は次の形式になります。
http://ms_DNS/v1
Edge Management API で TLS を有効にすると、URL は次の形式になります。
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 サポートにチケットを送信して、apigee_analytics_client_id と apigee_analytics_secret を取得してください。
コマンドの例
以下は、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 <comma-separated list of items>
- -n、--include_envs <comma-separated list of items>
- -e、--exclude_envs <comma-separated list of items>
たとえば、本番環境の組織と環境のみを指定するには、-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 の本番環境からのみデータを収集します。
データを 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 オプションを使用する理由の 1 つは、さまざまなタイプのデータをローカルで表示できるようにすることです。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 オプションを含めて詳細な出力を取得し、-R オプションを指定して apigee-analytics-collector によって生成された curl コマンドを表示します。
> /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 管理 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-analytics-collector ユーティリティをインストールすることをおすすめします。これにより、apigee-analytics-collector ユーティリティがデータを Apigee に直接アップロードできます。
ただし、インストール対象のマシンに外部インターネット アクセスがない場合は、Edge 管理 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/?select=sum(message_count)&timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM"
このコマンドは、Edge Get API のメッセージ カウント API を使用します。コマンドの内容:
- apigee_mgmt_api_email:apigee_mgmt_api_password は、Edge /stats API にアクセスできるアカウントのメールアドレスを指定します。
- <ms_IP> は、Edge Management Server の IP アドレスまたは DNS 名です。
- {org_name} と {env_name} は組織と環境を指定します。
- MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM は、収集する統計情報の期間を指定します。cURL コマンドは、期間のスペースに 16 進数コード %20 を使用します。
たとえば、24 時間の統計情報を収集するには、次のコマンドを使用します。
curl -X GET -u apigee_mgmt_api_email:apigee_mgmt_api_password \ "http://192.168.56.103:8080/v1/organizations/myOrg/environments/prod/stats/?select=sum(message_count)&timeRange=08/29/2016%2000:00~08/30/2016%2000:00"
レスポンスは次の形式で表示されます。
{ "environments" : [ { "metrics" : [ { "name" : "sum(message_count)", "values" : [ "42.0" ] } ], "name" : "prod" } ], "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 サポートから取得したデータを Apigee にアップロードするための認証情報を apigee_analytics_client_id:apigee_analytics_secret に指定します。
- {org_name} は組織を指定します。
- {"environments"...} には、上記の統計情報の収集に使用した cURL コマンドの結果が含まれています。