Apigee アクセスログのロギング

このページの内容は Apigee に適用されます。Apigee ハイブリッドには適用されません。

Apigee Edge のドキュメントを表示する。

Apigee サブスクリプションと従量課金制のお客様は、組織内の Apigee インスタンスごとに Cloud Logging のアクセスログを有効にできます。この機能を有効にすると、Apigee インフラストラクチャ(外部アプリケーション ロードバランサや Anthos ゲートウェイなど)で Ingress ゲートウェイによって生成されたログを表示し、Apigee API 呼び出しのトラブルシューティングに役立てることができます。

1 つ以上の Apigee インスタンスでこの機能を有効にすると、プロジェクトに送信されたログに対して課金されます。Google Cloud のロギング料金の詳細については、Cloud Logging の料金をご覧ください。

このトピックでは、Apigee のお客様が組織内の Apigee インスタンスに対して Cloud Logging の Ingress アクセスログを有効にして使用する方法について説明します。

始める前に

この機能を有効にするには、次のロールと権限が必要です。

  • ロール: Apigee 組織管理者(roles/apigee.admin
  • 権限:
    • apigee.instances.create
    • apigee.instances.update

ロールを確認する

  1. Google Cloud コンソールの [IAM] ページに移動します。

    [IAM] に移動
  2. プロジェクトを選択します。
  3. [プリンシパル] 列で、自分のメールアドレスを含む行を見つけます。

    自分のメールアドレスがその列にない場合、ロールは割り当てられていません。

  4. 自分のメールアドレスを含む行の [ロール] 列で、ロールのリストに必要なロールが含まれているかどうかを確認します。

ロールを付与する

  1. Google Cloud コンソールの [IAM] ページに移動します。

    [IAM] に移動
  2. プロジェクトを選択します。
  3. [アクセスを許可] をクリックします。
  4. [新しいプリンシパル] フィールドに、自分のメールアドレスを入力します。
  5. [ロールを選択] リストでロールを選択します。
  6. 追加のロールを付与するには、[ 別のロールを追加] をクリックしてロールを追加します。
  7. [保存] をクリックします。

Apigee インスタンスで上り(内向き)アクセスのロギングを有効にする

Cloud コンソールの Apigee UI または API を使用して Apigee インスタンスを作成または編集するときに、Cloud Logging の上り(内向き)アクセスのロギングを有効にできます。

Apigee インスタンスの作成または更新時にこの機能を有効にするには、インスタンスの管理の手順に沿ってインスタンスの作成または編集を開始します。

Cloud コンソールの Apigee

[インスタンスの作成] または [インスタンスの編集] ページの [ロギング] セクションで、次の操作を行います。

  1. [ロギングを有効にする] をオンに切り替えて、機能を有効にします。
  2. 必要に応じて、[レスポンス コード] ボックスから HTTP レスポンス コードを選択して、アクセスログのフィルタとして機能させます。

    HTTP レスポンス コードに関係なくすべてのログを含める場合は、None (all HTTP responses) を選択します。

    カスタム フィルタを作成するには、Custom を選択して、次の形式でフィルタを入力します。

    status_code > XX && status code <= YY

    次に例を示します。

    status_code >= 500 && status_code < 504

  3. インスタンスの作成または編集に必要な情報をすべて入力したら、[保存] をクリックします。

Apigee API

Apigee API を使用して既存のインスタンスを更新するには、次のコマンドを使用します。

curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/instances/INSTANCE_NAME?updateMask=access_logging_config.enabled,access_logging_config.filter" \
    -X PATCH -H "Authorization: Bearer $TOKEN" \
    -H 'Accept: application/json' -H 'Content-Type: application/json' \
    -d '{ 
      "name": "INSTANCE_NAME",
      "accessLoggingConfig": 
        { 
          "enabled": "true", 
          "filter": "status_code >= 0 && status_code < 600 " 
        }
      }'

ここで

  • ORG_NAME は実際の Apigee 組織の名前です。
  • INSTANCE_NAME は、編集する Apigee インスタンスの名前です。

このコマンドでは、filter プロパティに指定された値によってすべてのログが返されます。HTTP やその他のステータス コードに基づいてログをフィルタリングする場合は、filter の値を調整します。

インスタンスの作成または更新が成功すると、そのインスタンスの上り(内向き)アクセスログが数分以内にプロジェクトで利用可能になります。

上り(内向き)アクセスログを表示する

この機能を有効にすると、Google Cloud コンソールのログ エクスプローラを使用して、プロジェクト内のインスタンスの上り(内向き)アクセスログを数分以内に表示できます。

ログ エクスプローラでログエントリを表示するには:

  1. Google Cloud コンソールで、[ロギング] > [ログ エクスプローラ] を選択します。

    [ログ エクスプローラ] に移動

  2. Google Cloud プロジェクトが選択されていることを確認します。
  3. [クエリ] タブの [クエリ] エディタ フィールドに、次のいずれかの方法でログ名を入力します。
    • [ログ名] 選択ボックスを使用するには:
      1. [ログ名] 選択ボックスをクリックして、[ログ名] ペインを開きます。
      2. [ログ名を選択] ボックスに「ingress_instance」と入力します。
      3. [適用] をクリックします。
      4. ログ名が [クエリ] エディタ フィールドに表示されます。
    • [クエリ] エディタ フィールドに、ログ名を直接入力します。

      logName="projects/ORG_NAME/logs/apigee.googleapis.com/ORG_NAME"

      ここで、ORG_NAME は Apigee 組織の名前です。

  4. 残りのクエリを [クエリ] エディタ フィールドに入力します。ログは [クエリ結果] リストに表示されます。
  5. ログエントリをクリックすると、詳細が表示されます。

上り(内向き)アクセスログを使用したトラブルシューティング

機能が有効になり、ログ エクスプローラでログが使用可能になると、次のような Cloud Logging の機能を活用してトラブルシューティングを行うことができます。

  • Cloud Logging のクエリ言語を使用してクエリを作成する

    ログ エクスプローラを使用する場合、クエリエディタ フィールドにクエリを記述し、ログエントリに含まれるフィルタ メニュー オプションから選択することで、ログを取得して分析できます。ログ エクスプローラでクエリを作成し、データを分析する方法については、Cloud Logging のクエリ言語を使用してクエリを作成して保存するをご覧ください。

  • ログベースの指標とアラートを有効にする

    独自のログベースの指標を定義して、Apigee インスタンスに固有の情報を取得できます。詳しくは、ログベースの指標の概要をご覧ください。

    ログ エクスプローラからログベースのアラート ポリシーを作成できます。詳細と詳しい手順については、ログ エクスプローラを使用したログベースのアラート ポリシーの作成をご覧ください。

  • HTTP ステータス コードでフィルタする

    機能を有効にするときに HTTP ステータス コードで上り(内向き)アクセスログをフィルタしなかった場合でも、ログ エクスプローラでクエリを絞り込み、HTTP ステータス コードでフィルタできます。このフィルタをクエリに追加するには、次の形式を使用します。

    status_code > XX && status code <= YY

    次に例を示します。

    status_code >= 500 && status_code < 504

  • 上り(内向き)ステータス コードでフィルタする

    HTTP ステータス コードによるフィルタリングに加えて、ingress status_code 0 をフィルタするクエリを作成できます。多くの場合、このコードはネットワークまたは接続性の問題でクライアントがサーバー レスポンスを受信できないことを示します。

ログ エクスプローラで利用できるすべての機能の詳細については、ログ エクスプローラを使用してログを表示するをご覧ください。

機能を無効にする

Apigee インスタンスのトラブルシューティングが完了したら、インスタンスを編集して機能を無効にできます。この機能を無効にすると、プロジェクトの ingress_instance ログへのアクセスがオフになり、課金が停止します。

Cloud コンソールの Apigee UI または API を使用してインスタンスを編集し、機能を無効にできます。

Cloud コンソールの Apigee

Cloud コンソールの Apigee を使用してこの機能を無効にするには:

  • ブラウザで Google Cloud コンソールの Apigee UI を開きます。
  • [管理] > [インスタンス] を選択します。
  • 編集するインスタンスをクリックします。
  • [インスタンスの詳細] ページで、[編集] をクリックします。
  • [インスタンスの編集] ページで、[ロギングを有効にする] 切り替えボタンをクリックして機能を無効にします。
  • [保存] をクリックします。
  • Apigee API

    インスタンスでこの機能を無効にするには、次のコマンドを使用します。

    curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/instances/INSTANCE_NAME?updateMask=access_logging_config.enabled,access_logging_config.filter" \
        -X PATCH -H "Authorization: Bearer $TOKEN" \
        -H 'Accept: application/json' -H 'Content-Type: application/json' \
        -d '{ 
          "name": "INSTANCE_NAME",
          "accessLoggingConfig": 
            { 
                "enabled": "false" 
            }
            }'

    ここで

    • ORG_NAME は実際の Apigee 組織の名前です。
    • INSTANCE_NAME は、編集する Apigee インスタンスの名前です。