收集诊断信息


本文档介绍如何使用诊断工具收集有关虚拟机 (VM) 实例的信息。在联系支持团队之前,请使用该工具收集的信息进行基本的问题排查。

该工具会执行以下操作:

  • 仅从您指定的虚拟机收集信息。

  • 仅将这些信息存储在您的项目中。

  • 将信息存储在 Cloud Storage 存储桶中 10 天,默认情况下,只有您才能访问。

在与 Google 支持团队共享收集的信息之前,请执行以下操作:

  1. 查看机密信息或个人身份信息 (PII) 的相关信息。

  2. 根据需要删除或遮盖信息。

从虚拟机收集的诊断信息

此诊断工具会收集以下方面的信息:

如需详细了解 Compute Engine 如何收集这些信息,请参阅公共代码库

限制

  • 您只能从基于 Windows Server 创建的虚拟机收集诊断信息。

准备工作

  • 如果您要使用本指南中的命令行示例,请执行以下操作:
    1. 安装或更新到 Google Cloud CLI 的最新版本。
    2. 设置默认区域和可用区
  • 如果您要使用本指南中的 API 示例,请设置 API 访问权限
  • 默认情况下,Compute Engine 会在高于 v20190714 的 Windows Server 映像公开版本上安装诊断工具。如果您的 Windows Server 映像版本低于 v20190714,或者您使用的是自定义映像,请使用 googet install google-compute-engine-diagnostics 命令安装该工具。

从虚拟机收集诊断信息

直接从虚拟机运行诊断工具,或使用 Google Cloud CLI 远程运行诊断工具。在基于 Windows 的虚拟机上,从 C:\Program Files\Google\Compute Engine\diagnostics 目录中找到诊断工具。

执行此任务所需的权限

您必须拥有以下权限才能执行此任务:

  • 针对项目的 roles/iam.serviceAccountTokenCreator

gcloud

  1. 授予对项目的 iam.serviceAccountTokenCreator 角色:

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

    请替换以下内容:

    • PROJECT_ID:项目 ID
    • EMAIL:要向其授予 iam.serviceAccountTokenCreator 角色的电子邮件地址
  2. 将诊断信息作为对象导出到 Cloud Storage 存储桶。

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

    可选的 --collect-process-traces 标志指定诊断工具是否收集正在运行的系统的 10 分钟跟踪记录,包括 CPU、磁盘、文件和网络活动。在基于 Windows 的虚拟机上,它使用 Windows 性能记录器

    请替换以下内容:

    • VM_NAME:要从中收集诊断信息的虚拟机的名称
  3. 日志导出过程可能需要几分钟才能完成。使用 gcloud compute instances get-serial-port-output 命令可以查看状态。

  4. Compute Engine 会将包含诊断信息的存储桶的名称设置为 diagnostic_logs_project_PROJECT_NUMBER 格式。使用 gsutil tool 或者通过 Google Cloud Console 中的 Cloud Storage 页面查看或下载该存储桶:

    转到 Storage

后续步骤