記錄 Apigee 存取記錄

本頁內容適用於 Apigee,但不適用於 Apigee Hybrid

查看 Apigee Edge 說明文件。

Apigee 訂閱和即付即用客戶可以為機構中的每個 Apigee 執行個體啟用 Cloud Logging 傳入存取記錄。啟用後,您就能查看 Apigee 基礎架構中 Ingress 閘道產生的記錄 (例如外部應用程式負載平衡器或 Anthos 閘道),協助排解 Apigee API 呼叫問題。

請注意,如果為一或多個 Apigee 執行個體啟用這項功能,系統會針對傳送至專案的記錄檔向您收費。如要進一步瞭解記錄的費用,請參閱 Cloud Logging 定價。 Google Cloud

本主題說明 Apigee 客戶如何為機構中的 Apigee 執行個體啟用及使用 Cloud Logging 傳入存取記錄。

事前準備

如要啟用這項功能,您必須具備下列角色和權限:

  • 角色:Apigee 機構管理員 (roles/apigee.admin)
  • 權限
    • apigee.instances.create
    • apigee.instances.update

檢查角色

  1. 前往 Google Cloud 控制台的「IAM」(身分與存取權管理)IAM 頁面。

    前往「IAM」頁面
  2. 選取專案。
  3. 在「主體」欄中,找出包含您電子郵件地址的資料列。

    如果該欄中沒有您的電子郵件地址,表示您沒有任何角色。

  4. 在電子郵件地址所在列的「角色」欄中,確認角色清單是否包含必要角色。

授予角色

  1. 前往 Google Cloud 控制台的「IAM」(身分與存取權管理)IAM 頁面。

    前往「IAM」頁面
  2. 選取專案。
  3. 按一下 「授予存取權」
  4. 在「New principals」(新增主體) 欄位中輸入您的電子郵件地址。
  5. 在「Select a role」(選取角色) 清單中,選取角色。
  6. 如要授予其他角色,請按一下 「新增其他角色」,然後新增每個其他角色。
  7. 按一下「儲存」

為 Apigee 執行個體啟用 Ingress 存取記錄

使用 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 控制台,依序選取「Logging」(記錄) >「Logs Explorer」(記錄檔探索工具)

    前往記錄檔探索工具

  2. 確認已選取 Google Cloud 專案。
  3. 在「Query」(查詢) 分頁中,使用下列任一方法,在「Query」(查詢) 編輯器欄位中輸入記錄名稱:
    • 如要使用「記錄檔名稱」選取方塊:
      1. 按一下「記錄檔名稱」選取方塊,開啟「記錄檔名稱」窗格。
      2. 在「Select log names」(選取記錄檔名稱) 方塊中輸入 ingress_instance
      3. 按一下 [套用]
      4. 記錄名稱會顯示在「查詢」編輯器欄位中。
    • 在「Query」(查詢) 編輯器欄位中,直接輸入記錄名稱:

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

  4. 在「查詢」編輯器欄位中,建構查詢的其餘部分。記錄會顯示在「Query results」(查詢結果) 清單中。
  5. 按一下任一記錄項目即可查看詳細資料。

使用 Ingress 存取記錄檔排解問題

啟用這項功能並在記錄檔探索工具中查看記錄後,您就能運用多項 Cloud Logging 功能排解問題,包括:

  • 使用 Cloud Logging 查詢語言建構查詢

    使用記錄檔探索工具時,您可以在查詢編輯器欄位中編寫查詢,並從記錄項目隨附的篩選器選單選項中進行選取,藉此擷取及分析記錄。如要進一步瞭解如何在記錄檔探索工具中建構查詢及分析資料,請參閱「使用 Cloud Logging 查詢語言建構及儲存查詢」。

  • 啟用記錄指標和快訊

    您可以定義自己的記錄指標,擷取 Apigee 執行個體專屬的資訊。詳情請參閱「記錄指標總覽」的說明。

    您可以透過 Logs Explorer 建立記錄型快訊政策。如需更多資訊和詳細步驟,請參閱「使用記錄檔探索工具建立以記錄為基礎的快訊政策」。

  • 依 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

如要使用 Apigee in Cloud 控制台停用這項功能,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往「管理」>「執行個體」頁面。

    前往「Instances」(執行個體) 頁面

  2. 按一下要編輯的執行個體。
  3. 在「Instance details」(執行個體詳細資料) 頁面中,按一下「Edit」(編輯)
  4. 在「編輯執行個體」頁面中,按一下「啟用記錄功能」切換按鈕,即可停用這項功能。
  5. 按一下 [儲存]

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 執行個體名稱。