收集診斷資訊

本文說明如何使用診斷工具收集虛擬機器 (VM) 執行個體的相關資訊。在與 Cloud Customer Care 聯絡之前,請先使用工具收集的資訊,協助進行基本疑難排解。

這項工具會執行下列操作:

  • 只從您指定的 VM 收集資訊。

  • 只將資訊儲存在專案中。

  • 將資訊儲存在 Cloud Storage bucket 10 天,預設只有您能存取。

與客戶服務團隊分享收集到的資訊前,請先完成下列步驟:

  1. 檢查資訊是否包含機密或個人識別資訊 (PII)。

  2. 視需要刪除或遮蓋資訊。

事前準備

  • Compute Engine 預設會在 v20190714 之後的 Windows Server 映像檔公開版本上安裝診斷工具。否則,如果 Windows Server 映像檔版本早於 v20190714,或您使用的是自訂映像檔,請使用 googet install google-compute-engine-diagnostics 指令安裝工具。
  • 如果尚未設定驗證,請先完成設定。驗證程序會確認您的身分,以便授予 Google Cloud 服務和 API 的存取權。如要從本機開發環境執行程式碼或範例,您可以選取下列其中一個選項,向 Compute Engine 進行驗證:

    請根據您打算如何使用本頁範例,選取對應的分頁標籤:

    控制台

    使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,不需要設定驗證機制。

    gcloud

    1. 安裝 Google Cloud CLI。 安裝完成後,請執行下列指令,初始化 Google Cloud CLI:

      gcloud init

      若您採用的是外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。

  • 設定預設區域和可用區。

從 VM 收集的診斷資訊

這項診斷工具會收集下列資訊:

如要進一步瞭解 Compute Engine 如何收集這項資訊,請參閱公開 GitHub 存放區。

限制

  • 您只能從依據 Windows Server 建立的 VM 收集診斷資訊。

必要的角色

如要取得使用 Google Cloud CLI 執行診斷工具所需的權限,請要求管理員授予您專案的服務帳戶權杖建立者 (roles/iam.serviceAccountTokenCreator) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

如要將診斷資訊附加至客服案件,您也必須具備技術支援編輯者 (roles/cloudsupport.techSupportEditor) 角色。

從 VM 收集診斷資訊

直接從 VM 執行診斷工具,或使用 Google Cloud CLI 遠端執行。

gcloud

  1. 如果您尚未授予專案的 iam.serviceAccountTokenCreator 角色,請將該角色授予要執行 gcloud compute diagnose export-logs 指令的使用者帳戶或服務帳戶:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member user:EMAIL \
        --role roles/iam.serviceAccountTokenCreator
    

    更改下列內容:

    • PROJECT_ID:專案 ID
    • EMAIL:要授予iam.serviceAccountTokenCreator角色的電子郵件地址
  2. 使用 diagnose export-logs 指令,將診斷資訊匯出為 Cloud Storage bucket 中的物件。

    gcloud compute diagnose export-logs VM_NAME \
      [--collect-process-traces]
    

    選用的 --collect-process-traces 旗標會指定診斷工具是否收集執行中系統的 10 分鐘追蹤記錄,包括 CPU、磁碟、檔案和網路活動。在 Windows VM 上,這項功能會使用 Windows Performance Recorder。

    將 VM_NAME 替換為要收集診斷資訊的 VM 名稱。

  3. 記錄匯出程序可能需要幾分鐘才能完成。使用 gcloud compute instances get-serial-port-output 指令查看狀態。

  4. Compute Engine 會將包含診斷資訊的值區名稱格式設為 diagnostic_logs_project_PROJECT_NUMBER。使用 gcloud CLI,或在Google Cloud 控制台的「Cloud Storage」頁面,查看或下載 bucket:

    前往「Storage」(儲存空間)

本機 (僅限 Windows)

如要在 Windows VM 中執行診斷工具,請按照下列步驟操作:

  1. 連線至 Windows VM。

  2. 以管理員權限開啟命令提示字元或 PowerShell 視窗。

  3. 前往診斷工具所在的目錄:

    cd "C:\Program Files\Google\Compute Engine\diagnostics"
    
  4. 執行診斷工具:

    .\diagnostics.exe
    

    工具執行完畢後,會將收集到的診斷資訊儲存到目前使用的目錄中的壓縮檔案 logs.zip。

選用旗標

  • -trace:擷取其他追蹤資訊。這項工具會使用 Windows Performance Recorder 擷取 10 分鐘的系統追蹤記錄,包括 CPU、磁碟、檔案和網路活動。

在客服案件中附加診斷資訊

如果您已向 Cloud Customer Care 提交案件,可以在收集診斷資訊時,直接將資訊附加至案件。這樣一來,您就不必從 Cloud Storage 下載封存檔,再自行附加到案件中。

診斷資訊會直接附加到案件中,不需經過審查。如果您需要在分享前查看資訊,或移除機密或個人識別資訊 (PII),請勿使用這個選項。請改為按照「從 VM 收集診斷資訊」一節所述收集資訊,在 Cloud Storage 中查看封存檔,然後將其附加至案件。

將診斷資訊附加至客服案件前,請務必確認下列事項:

  • 貴組織訂閱的客戶服務方案 (Standard、Enhanced 或 Premium 支援服務) 允許建立技術支援案件。
  • 您具備技術支援編輯者 (roles/cloudsupport.techSupportEditor) 角色。如果案件屬於某個組織,則您必須具備該組織的角色。
  • 專案已啟用 Cloud Support API。
  • 案件已開啟。

如要將診斷資訊附加至客服案件,請按照下列步驟操作:

  1. 確認您已安裝 alpha 指令元件:

    gcloud components install alpha
    
  2. 執行加上 --support-case 旗標的 gcloud alpha compute diagnose export-logs 指令:

    gcloud alpha compute diagnose export-logs INSTANCE_NAME \
        --zone=ZONE \
        --support-case=CASE_NUMBER
    

    更改下列內容:

    • INSTANCE_NAME:Windows Server 運算執行個體的名稱。
    • ZONE:執行個體的可用區。
    • CASE_NUMBER:待處理客服案件的編號。

    指令會先確認案件是否存在,以及您是否可以新增附件,然後才開始收集。接著,指令碼會等待執行個體完成收集診斷資訊 (可能需要幾分鐘),並將封存檔上傳至案件。封存檔也會保留在 Cloud Storage bucket 中,與省略 --support-case 旗標時相同。

後續步驟