API Gateway は Simple Log Service (SLS) とシームレスに統合されています。SLS を使用すると、ログのリアルタイムでの照会、ダウンロード、多次元統計分析が可能です。また、ログを Object Storage Service (OSS) または MaxCompute に転送することもできます。

-
Simple Log Service で処理される最初の 500 MB のログデータは、毎月無料で利用できます。料金の詳細については、「Simple Log Service の料金」をご参照ください。
機能
オンラインログクエリ
トラブルシューティングおよび統計分析に役立ちます。
詳細な呼び出しログ
ログには以下のフィールドが含まれます。requestQueryString、requestHeaders、requestBody、responseHeaders、および responseBody フィールドは専用インスタンスでのみ使用可能で、グループの詳細ページで有効化する必要があります。
|
パラメータ |
説明 |
|
apiGroupUid |
API グループの ID。 |
|
apiGroupName |
API グループの名前。 |
|
apiUid |
API の ID。 |
|
apiName |
API の名前。 |
|
apiStageUid |
環境 ID。 |
|
apiStageName |
環境名。 |
|
httpMethod |
呼び出しに使用する HTTP メソッド。 |
|
path |
リクエストパス。 |
|
domain |
呼び出しに使用するドメイン名。 |
|
statusCode |
HTTP ステータスコード。 |
|
errorMessage |
エラーメッセージ。 |
|
appId |
呼び出し元のアプリケーション ID。 |
|
appName |
呼び出し元のアプリケーション名。 |
|
clientIp |
クライアントの IP アドレス。 |
|
exception |
バックエンドサービスからの具体的なエラーメッセージ。 |
|
exchangeTimestamp |
リクエストライフサイクル内の I/O イベントのタイムスタンプ。これらのイベントは主に HTTP/HTTPS プロトコルに適用されます。
|
|
providerAliUid |
API プロバイダーのアカウント ID。 |
|
region |
リージョン。例: |
|
requestHandleTime |
リクエスト時刻 (UTC)。 |
|
requestId |
グローバルに一意なリクエスト ID。 |
|
requestSize |
リクエストサイズ (単位: バイト)。 |
|
responseSize |
レスポンスサイズ (単位: バイト)。 |
|
serviceLatency |
バックエンドリソースへのアクセスに費やされた合計時間。接続リソースの割り当て、接続の確立、およびバックエンドサービスの呼び出しを含みます。単位: ミリ秒。 |
|
errorCode |
エラーコード。例: |
|
requestProtocol |
クライアントのリクエストプロトコル。有効な値: HTTP、HTTPS、WS。 |
|
instanceId |
API サービスが実行されているインスタンスの ID。 |
|
initialRequestId |
ある API が別の API を呼び出す場合 (たとえば、API-1 が API-2 を呼び出す場合)、このフィールドには 2 番目の呼び出し (API-2) のログに最初の呼び出し (API-1) のリクエスト ID が記録されます。 |
|
clientNonce |
クライアントからのリクエストの X-Ca-Nonce ヘッダー。 |
|
requestQueryString |
クライアントからのリクエストのクエリ文字列 (専用インスタンスのみ)。 |
|
requestHeaders |
クライアントからのリクエストのヘッダー (専用インスタンスのみ)。 |
|
requestBody |
クライアントからのリクエストの本文 (最大 1,024 バイト、専用インスタンスのみ)。 |
|
responseHeaders |
API レスポンスのヘッダー (専用インスタンスのみ)。 |
|
responseBody |
API レスポンスの本文 (最大 1,024 バイト、専用インスタンスのみ)。 |
|
consumerAppKey |
API リクエストの AppKey。 |
|
totalLatency |
API リクエストの合計レイテンシー (単位: ミリ秒)。 |
|
customTraceId |
エンドツーエンドログのトレース ID。 |
|
jwtClaims |
JSON Web Token (JWT) から解析されたクレーム。API グループ設定で構成できます。 |
|
plugin |
API リクエストに一致したプラグインのリストとその関連コンテキスト。 |
Simple Log Service で API ログを表示する
設定方法
2 つの設定方法があります。
-
SLS コンソールのログ監査機能を使用して API Gateway のログを同期します。この方法では、すべてのリージョンのログがログ監査プロジェクトに収集されます。API Gateway での追加設定は不要です。
-
SLS コンソールで API Gateway のデータインジェストを設定します。この方法では、リージョンごとに同期を 1 回設定する必要があります。
以下のセクションでは、これら 2 つの方法について説明します。
Alibaba Gov Cloud および Alibaba Finance Cloud の場合、SLS のログ同期は最初の方法でのみ実行できます。
ログ監査の使用
-
ログ監査サービス の設定ページを開き、中央リージョンを選択します。以降のすべての API Gateway ログがこのリージョンに配信されます。
グローバル設定ページの上部には、中央プロジェクトのリージョンと名前が表示されます。その下には、ActionTrail、Object Storage Service (OSS)、RDS、Virtual Private Cloud (VPC)、DNS、PolarDB、Server Load Balancer (SLB)、Application Load Balancer (ALB) などのクラウド製品の設定項目が表形式で表示されます。項目には、ログ収集スイッチ、[ストレージモード] (集中またはリージョン別)、保持期間、[中央に同期]、および [N 日後にアーカイブ] が含まれます。必要なクラウド製品のログ収集スイッチを有効にし、右上隅の [保存] をクリックします。[収集と同期の権限付与] セクションで、アカウントがログの収集と同期を行う権限がないことを示すメッセージが表示された場合は、[手動での権限付与] または [AccessKey で権限付与] を使用して権限付与を完了します。
-
権限付与方法を選択し、画面の指示に従います。この例では手動での権限付与を使用します。
-
権限付与が完了すると、API Gateway 呼び出しログは中央プロジェクト内の
apigateway_logLogstore で利用可能になります。API Gateway 呼び出しログには、
apiGroupName、apiGroupUid、apiName、apiStageName、apiStageUid、およびapiUidなどのフィールドが含まれます。[生ログ] タブで各ログエントリの詳細なキーと値のペアを表示できます。
API Gateway コンソールでの設定
1. SLS を有効化していることを確認します。次に、SLS コンソール にログオンし、対象リージョンを選択して、プロジェクトと Logstore を作成します。この例では中国 (杭州) リージョンを使用します。
[プロジェクトの作成] ダイアログボックスで、[プロジェクト名] (例: gateway-t***) を入力し、デフォルトの [リソースグループ] を維持し、[ログ記録を有効にする対象] セクションで [操作ログ] や [グローバルログ] などの設定を選択します。次に、[OK] をクリックします。プロジェクトが作成されたら、表示されるダイアログボックスで [Logstore の作成] をクリックします。Logstore を作成する際は、その設定を構成します。たとえば、Logstore 名を gateway_log、タイプを [標準]、課金モードを [Pay-By-Data-Written]、データ保持期間を [30] 日、シャード数を [2] に設定します。[シャードの自動分割] (最大 [64] シャード) と [ログパブリック IP] を有効にし、[OK] をクリックします。最終確認ダイアログボックスで、[データインポートウィザード] をクリックします。
2. API Gateway のデータインジェストを設定し、API Gateway 製品を選択します。
API Gateway を選択すると、[データソース設定] ページが表示されます。[RAM 認可] が完了していることを確認します (ページに「Log Service にログを配信する権限を付与しました」と表示されます)。[配信ルールの作成] セクションで、API Gateway アクセスログが宛先 Logstore にインポートされることを確認し、[次へ] をクリックします。残りの手順で [次へ] をクリックし続けて、設定を完了します。
ログの表示
SLS コンソールにログオンしてログを表示し、SLS のクエリ構文を使用して呼び出しログを検索します。
クエリ結果では、各ログエントリに apiGroupName、apiGroupUid、apiName、__source__、__tag__:__receive_time__、__topic__ などのフィールドが含まれます。左側の [クイック分析] ペインでフィールドごとにログをフィルタリングするか、上部の検索ボックスでクエリ構文を使用して正確な検索を実行できます。
カスタムクエリレポート
ビジネスニーズに基づいてカスタムクエリレポートを作成できます。手順については、「ダッシュボードの作成」をご参照ください。