收集诊断信息


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

该工具会执行以下操作:

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

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

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

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

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

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

从虚拟机收集的诊断信息

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

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

限制

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

准备工作

  • 默认情况下,Compute Engine 会在高于 v20190714 的 Windows Server 映像公开版本上安装诊断工具。如果您的 Windows Server 映像版本低于 v20190714,或者您使用的是自定义映像,请使用 googet install google-compute-engine-diagnostics 命令安装该工具。
  • 设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证

从虚拟机收集诊断信息

直接从虚拟机运行诊断工具,或使用 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 格式。使用 gcloud CLI 或者通过 Google Cloud 控制台中的 Cloud Storage 页面查看或下载该存储桶:

    转到 Storage

后续步骤