確認報表中的伺服器使用情況

有了 GCP Console 提供的 Stackdriver 記錄工具,您就能查看歷來的伺服器使用資料。這一點相當實用,因為每當特定節點中的 VM 放置在實體伺服器上,您就可以檢視並取得實體伺服器 ID。

事前準備

如要在 Stackdriver Logging 上查看實體伺服器的使用情況,必須啟用 Stackdriver Logging API,然後再將 VM 啟動至單一用戶群節點,以便從頭開始收集資料。如果您尚未啟用記錄功能卻已啟動 VM,還是可以啟用該項服務,不過您只能存取記錄功能啟用後收集到的資料。

啟用 Stackdriver Logging API

取得伺服器 ID

如要取得單一用戶群節點的實體伺服器 ID,請按照下列指示操作:

  1. 前往 GCP Console 的 [Stackdriver Logging] > [Logs] (記錄) ([Logs Viewer] (記錄檢視器)) 頁面:

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

  2. 如果系統顯示提示訊息,請按照指示選取現有的 GCP 專案。

  3. 在第一個下拉式選單中,選取 [GCE VM Instance] (GCE VM 執行個體)

  4. 在第三個下拉式選單中選取時間限制,藉此限縮結果範圍。

  5. 在文字方塊中輸入 text:NotifyInstanceLocation

    篩選結果的螢幕截圖

  6. 展開每個項目的結果並搜尋 serverIdserverId 是實體機器的唯一識別碼,這個實體機器會為您提供單一用戶群節點。提供 n1-node-96-624 節點類型的實體伺服器會具備 56 個實體核心。

    伺服器 ID 的螢幕截圖

將授權資料匯出至 BigQuery

您可以將系統事件資訊匯出至 BigQuery 資料集,藉此確認每個核心或每個通訊端的使用情況:

  1. 在第一個下拉式選單中,確認您已選取 [GCE VM Instance] (GCE VM 執行個體)
  2. 按一下記錄檢視器 頁面頂端的 [Create Export] (建立匯出)
  3. 在「Sink Name」(接收器名稱) 中輸入接收器名稱,並選取 [BigQuery] 來當做「Sink Service」(接收器服務),接著選取 BigQuery 資料集來建立資料接收器。

建立完成之後,資料接收器會接收所有後續的稽核記錄活動。也就是說,BigQuery 會接收後續的所有伺服器使用情況資料。請注意,您「無法」存取 BigQuery 整合作業設定完成前的任何資料。

用來識別 BigQuery 中伺服器使用情況的查詢範例

本節假定您已熟悉如何在 BigQuery 中執行查詢

請使用以下傳送至 cloudaudit_googleapis_com_activity_[DATE] 資料表的查詢,識別並列出使用您自訂映像檔的執行個體:

-- QUERY TO IDENTIFY ALL INSTANCE IDs USING A SPECIFIC SOURCE IMAGE
SELECT resource.labels.instance_id, resource.labels.project_id, resource.labels.zone, disks.initializeparams.sourceimage
FROM `[MY_BYOL_PROJECT_SINK_NAME].cloudaudit_googleapis_com_activity_*`, UNNEST(protopayload_auditlog.request_instances_insert.disks) AS disks
WHERE disks.initializeparams.sourceimage LIKE '%[BYOL_IMAGE_NAME]%'

接著,請使用 VM 執行個體。您可以透過下列查詢找出各個執行個體的主機。

-- QUERY TO IDENTIFY ALL SERVER IDs USED BY A PROJECT
SELECT protopayload_auditlog.metadata_audit_gceinstancelocationmetadata.serverid, protopayload_auditlog.metadata_audit_gceinstancelocationmetadata.timestamp,
56 AS physical_cores
FROM `[MY_BYOL_PROJECT_SINK_NAME].cloudaudit_googleapis_com_system_event_*`
GROUP BY 1,2

以下為聯合查詢範例:

-- QUERY TO IDENTIFY ALL INSTANCE IDs USING A SPECIFIC SOURCE IMAGE
SELECT
resource.labels.instance_id, protopayload_auditlog.metadata_audit_gceinstancelocationmetadata.serverid as server_id, protopayload_auditlog.metadata_audit_gceinstancelocationmetadata.timestamp,
56 AS physical_cores,
2 AS physical_sockets
FROM `[MY_BYOL_PROJECT_SINK_NAME].cloudaudit_googleapis_com_system_event_*`
WHERE resource.labels.instance_id IN (
SELECT resource.labels.instance_id
FROM `[MY_BYOL_PROJECT_SINK_NAME].cloudaudit_googleapis_com_activity_*`, UNNEST(protopayload_auditlog.request_instances_insert.disks) AS disks
WHERE disks.initializeparams.sourceimage LIKE '%[BYOL_IMAGE_NAME]%')
GROUP BY 1,2,3
ORDER BY 1 ASC,3 ASC;

在上述指令中:

  • [MY_BYOL_PROJECT_SINK_NAME] 是所建立資料接收器的名稱。
  • [BYOL_IMAGE_NAME] 是您用於自備授權的映像檔名稱。

如需使用萬用字元來選取日期的操作說明,以及透過 BigQuery 查詢雲端稽核記錄的其他實用提示,請參閱雲端稽核記錄說明文件

後續步驟

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

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

這個網頁
Compute Engine 說明文件