查看自動配置器記錄

這個頁面說明如何查看和解釋與自動配置有關的記錄。啟用自動調度資源時,自動配置器會根據您指定的選項進行調度決策。Stackdriver Logging 會記錄每個調度決策,您也可以透過記錄檢視器瀏覽這些記錄。

透過記錄檢視器,您可以查看與以下內容相關的事件:

  • 調整執行個體群組的大小。如果自動配置器調整執行個體群組的大小,則會在自動配置器記錄中描述調整大小。
  • 自動配置器狀態的變更。舉例來說,假設自動配置器原本能正常運作但後來遇到問題,則自動配置器記錄中將描述相關變更。如需部分常見狀態訊息的說明,請參閱常見的傳回狀態訊息一節。

事前準備

查看自動配置器記錄

如要查看自動配置器記錄,請使用 Google Cloud Platform 主控台gcloud 工具或是 Stackdriver Logging API。

主控台

  1. 前往「Logs Viewer」(記錄檢視器) 頁面。

    前往「Logs Viewer」(記錄檢視器) 頁面

  2. 將資源下拉式選單往下拉,然後選取 [GCE Autoscaler] (GCE 自動配置器)
  3. 接著,展開「All logs」(所有記錄) 下拉式選單。選擇 [autoscaler] (自動配置器) 以查看自動調度資源的記錄。

gcloud

使用 gcloud 工具,執行 logging read 測試版指令來找尋所有與自動調度資源有關的記錄 (包含活動稽核記錄)。例如:

gcloud beta logging read "resource.type=gce_autoscaler" --limit 10 \
    --format json

如果您要將項目限制為僅與自動配置器調整大小操作有關的記錄,請指定 logName 參數並依照 jsonPayload.newSize 欄位篩選。將 logName 設為:

`projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler`

例如:

gcloud beta logging read 'logName="projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler" AND jsonPayload.newSize:*' \
    --limit 10 --format json

如需自動配置器狀態變更,請使用 logName 參數並依照 jsonPayload.new_status 欄位篩選。將 logName 設為:

`projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler`

例如:

gcloud beta logging read 'logName="projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler" AND jsonPayload.new_status:*' \
    --limit 10 --format json

API

Logging V2 API 提出要求。要求內容必須包含搜尋記錄時可使用的 filter 參數,以及您想要查看記錄的 project。舉例來說,如何提出取得調整大小操作清單的要求:

POST https://logging.googleapis.com/v2/entries:list

{
  "filter": "logName=\"projects\/[PROJECT_ID]\/logs\/compute.googleapis.com%2Fautoscaler\" AND jsonPayload.new_size:*",
  "pageSize": 10,
  "resourceNames": [
    "projects\/[PROJECT_ID]"
  ]
}

如何提出取得狀態變更清單的要求:

POST https://logging.googleapis.com/v2/entries:list

{
  "filter": "logName=\"projects\/[PROJECT_ID]\/logs\/compute.googleapis.com%2Fautoscaler\" AND jsonPayload.new_status:*",
  "pageSize": 10,
  "resourceNames": [
    "projects\/[PROJECT_ID]"
  ]
}

調整大小記錄

與調整大小操作有關的記錄,說明執行個體群組的調整前與調整後的大小。這些記錄項目可透過以下 JSON 酬載中的現有欄位識別:

jsonPayload.new_size
jsonPayload.old_size

舉例來說,在以下項目中,記錄描述舊執行個體群組從大小為 8 變更到大小為 10 的新執行個體群組。

{
"insertId": "1l68z7sg4jw7kzo",
"jsonPayload": {
  "autoscaler_name": "example-autoscaler",
  "instance_group_name": "example-igm",
  "new_size": 10,
  "old_size": 8,
  "project_id": "myproject",
  "zone_name": "europe-west1-b"
},
"logName": "projects/myproject/logs/compute.googleapis.com%2Fautoscaler",
"receiveTimestamp": "2017-10-24T16:12:08.294439822Z",
"resource": {
  "labels": {
    "autoscaler_id": "1234567890123456789",
    "location": "europe-west1-b",
    "project_id": "myproject"
  },
  "type": "gce_autoscaler"
},
"severity": "INFO",
"timestamp": "2017-10-24T16:12:07.715125478Z"

}

記錄中各個欄位的說明如下:

屬性
insertId 記錄項目的專屬識別碼。
jsonPayload 記錄項目酬載,代表一個以 JSON 物件表示的架構。
new_size 群組獲得自動調度資源的新大小。假如群組資源調度提高,新的大小將大於舊的太小。如果調降,新的大小將大於舊的太小。
old_size 群組在變更之前舊的太小。
instance_group_name 記錄項目所套用代管執行個體群組的名稱。
project_id 執行個體群組的專案 ID。而且一律是目前專案的 ID。
autoscaler_name 負責此操作的自動配置器名稱。
zone_name 自動配置器和執行個體群組的區域。
resource 有關自動配置器的詳細資訊。
type 資源的類型。針對自動配置器,此欄位應該始終是 gce_autoscaler
labels 自動配置器的中繼資料。
location 自動配置器的區域。
autoscaler_id 由伺服器產生的自動配置器數字 ID。
project_id 自動配置器所屬的專案 ID
timestamp 記錄項目描述的事件發生的時間。在 RFC 3339 UTC Zulu 格式中的時間戳記,精確度達奈秒單位。
severity 這個記錄的嚴重性。對於自動配置器記錄,這個項目一律為 "INFO"
logName 此記錄項目所屬的資源名稱。對於自動配置器調大小記錄,這個項目一律會是 projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler
receiveTimestamp Stackdriver Logging 接收記錄項目的時間。在 RFC 3339 UTC Zulu 格式中的時間戳記,精確度達奈秒單位。

狀態變更記錄

當自動配置器的狀態變更時,Compute Engine 會建立一個擷取狀態變更的記錄項目。這些記錄項目可通過 JSON 酬載中的現有欄位識別:

jsonPayload.old_status
jsonPayload.new_status

舉例來說,以下項目描述了狀態變更從 OK 變為新狀態:

The autoscaler is configured to scale based on a load balancing signal but
the instance group has not received any utilization data from the load
balancer or the utilization is constantly 0. Check that the load balancing
configuration is working

您可以使用這些狀態訊息找出您的自動配置器未按預期運行的原因,或針對您注意到的先前問題進行偵錯。在這種情況下,您可能會注意到新的狀態訊息,並檢查您的負載平衡設定是否已正確設置。

{
"insertId": "ivho6kg4icqfio",
"jsonPayload": {
  "autoscaler_name": "example-autoscaler",
  "instance_group_name": "example-igm",
  "new_status": {
    "details": "The autoscaler is configured to scale based on a load
        balancing signal but the instance group has not received any
        utilization data from the load balancer or the utilization is
        constantly 0. Check that the load balancing configuration is working."
  },
  "old_status": {
    "details": "OK"
  },
  "project_id": "myproject",
  "zone_name": "us-east1-b"
},
"logName": "projects/myproject/logs/compute.googleapis.com%2Fautoscaler",
"receiveTimestamp": "2017-10-24T15:11:58.076196762Z",
"resource": {
  "labels": {
    "autoscaler_id": "1234567890123456789",
    "location": "us-east1-b",
    "project_id": "myproject"
  },
  "type": "gce_autoscaler"
},
"severity": "INFO",
"timestamp": "2017-10-24T15:11:57.619997893Z"

}

記錄中各個欄位的說明如下:

屬性
insertId 記錄項目的專屬識別碼。
jsonPayload 記錄項目酬載,代表一個以 JSON 物件表示的架構。
new_status 新的自動配置器狀態。請參閱一些常見的傳回訊息
old_status 舊的自動配置器在變更之前的狀態。
instance_group_name 這個記錄項目所套用代管執行個體群組的名稱。
project_id 執行個體群組的專案 ID
autoscaler_name 負責此操作的自動配置器名稱。
zone_name 自動配置器和執行個體群組的區域。
resource 有關自動配置器的詳細資訊。
type 資源的類型。針對自動配置器,此欄位應該始終是 gce_autoscaler
labels 自動配置器的中繼資料。
location 自動配置器的區域。
autoscaler_id 由伺服器產生的自動配置器數字 ID。
project_id 自動配置器所屬的專案 ID。這應該一律是目前的專案。
timestamp 記錄項目描述的事件發生的時間。在 RFC 3339 UTC Zulu 格式中的時間戳記,精確度達奈秒單位。
severity 這個記錄的嚴重性。對於自動配置器記錄,這個項目一律為 "INFO"
logName 此記錄項目所屬的資源名稱。對於狀態變更記錄,這個項目一律會是 projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler
receiveTimestamp Stackdriver Logging 接收記錄項目的時間。在 RFC 3339 UTC Zulu 格式中的時間戳記,精確度達奈秒單位。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Compute Engine 說明文件