本文說明如何使用診斷工具收集虛擬機器 (VM) 執行個體的相關資訊。在與 Cloud Customer Care 聯絡之前,請先使用工具收集的資訊,協助進行基本疑難排解。
這項工具會執行下列操作:
只從您指定的 VM 收集資訊。
只將資訊儲存在專案中。
將資訊儲存在 Cloud Storage bucket 10 天,預設只有您能存取。
與客戶服務團隊分享收集到的資訊前,請先完成下列步驟:
檢查資訊是否包含機密或個人識別資訊 (PII)。
視需要刪除或遮蓋資訊。
事前準備
-
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
-
安裝 Google Cloud CLI。 安裝完成後,請執行下列指令,初始化 Google Cloud CLI:
gcloud init若您採用的是外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
- 設定預設區域和可用區。
從 VM 收集的診斷資訊
這項診斷工具會收集下列資訊:
磁碟:
事件:
- Windows 事件,包括應用程式事件和系統事件
聯播網:
計畫:
- 程序、排定的工作、服務和 Google Kubernetes Engine (GKE) 的 WMI 物件資訊
系統:
- 使用者的 WMI 物件資訊、使用 rdp_status.ps1 指令碼的遠端桌面通訊協定 (RDP) 設定,以及 bcdedit、driverquery、msinfo32、pnputil 和 systeminfo 的輸出內容,以及記憶體傾印記錄
如要進一步瞭解 Compute Engine 如何收集這項資訊,請參閱公開 GitHub 存放區。
限制
- 您只能從依據 Windows Server 建立的 VM 收集診斷資訊。
必要的角色
如要取得使用 Google Cloud CLI 執行診斷工具所需的權限,請要求管理員授予您專案的服務帳戶權杖建立者 (roles/iam.serviceAccountTokenCreator) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
如要將診斷資訊附加至客服案件,您也必須具備技術支援編輯者 (roles/cloudsupport.techSupportEditor) 角色。
從 VM 收集診斷資訊
直接從 VM 執行診斷工具,或使用 Google Cloud CLI 遠端執行。
gcloud
如果您尚未授予專案的
iam.serviceAccountTokenCreator角色,請將該角色授予要執行gcloud compute diagnose export-logs指令的使用者帳戶或服務帳戶:gcloud projects add-iam-policy-binding PROJECT_ID \ --member user:EMAIL \ --role roles/iam.serviceAccountTokenCreator更改下列內容:
PROJECT_ID:專案 IDEMAIL:要授予iam.serviceAccountTokenCreator角色的電子郵件地址
使用
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 名稱。記錄匯出程序可能需要幾分鐘才能完成。使用
gcloud compute instances get-serial-port-output指令查看狀態。Compute Engine 會將包含診斷資訊的值區名稱格式設為
diagnostic_logs_project_PROJECT_NUMBER。使用 gcloud CLI,或在Google Cloud 控制台的「Cloud Storage」頁面,查看或下載 bucket:
本機 (僅限 Windows)
如要在 Windows VM 中執行診斷工具,請按照下列步驟操作:
連線至 Windows VM。
以管理員權限開啟命令提示字元或 PowerShell 視窗。
前往診斷工具所在的目錄:
cd "C:\Program Files\Google\Compute Engine\diagnostics"
執行診斷工具:
.\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。
- 案件已開啟。
如要將診斷資訊附加至客服案件,請按照下列步驟操作:
確認您已安裝 alpha 指令元件:
gcloud components install alpha
執行加上
--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旗標時相同。
後續步驟
瞭解如何擷取 VM 的螢幕截圖。
瞭解如何排解 Windows 執行個體問題。
瞭解如何排解 RDP 問題。