监控健康状况

用户管理的笔记本实例提供了多种方法来监控笔记本的健康状况。本页面介绍如何使用这些方法。

监控健康状况的方法

您可以通过几种不同的方法监控用户管理的笔记本实例的健康状况。本页面介绍如何使用以下方法:

设置 gcloud CLI

如需完成本页面上的某些步骤,您需要使用 Google Cloud CLI。

安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

gcloud init

使用客机特性报告系统健康状况

您可以使用客机特性来报告以下核心服务的系统健康状况:

  • Docker 服务
  • Docker 反向代理代理
  • Jupyter 服务
  • Jupyter API

客机属性是指应用在用户管理的笔记本实例上运行时可写入的特定类型的自定义元数据。如需详细了解客机属性,请参阅虚拟机元数据简介

实例如何使用客机属性报告系统健康状况

notebooks-collection-agent 服务在后台运行 Python 进程,以验证用户管理的笔记本实例的核心服务的状态,并将客机特性更新为 1(如果未检测到任何问题)或 -1(如果检测到故障)。

要使用 notebooks-collection-agent 服务报告用户管理的笔记本实例的健康状况,您必须在创建用户管理的笔记本实例时启用以下客机特性

  • enable-guest-attributes=TRUE:这会启用用户管理的笔记本实例上的客机特性。默认情况下,所有新实例都会启用此特性。
  • report-system-health=TRUE:这会将系统健康状况检查结果记录到客机特性。

notebooks-collection-agent 服务不需要任何特殊权限即可写入实例的客机特性。

创建启用了系统健康状况客机特性的用户管理的笔记本实例

如需使用系统运行状况客机特性报告用户管理的笔记本实例的运行状况,您必须在创建用户管理的笔记本实例时选中启用系统运行状况报告复选框。

您可以使用 Google Cloud 控制台或 Google Cloud CLI 启用系统健康状况报告。

须知事项

在创建用户管理的笔记本实例之前,您必须拥有 Google Cloud 项目并为该项目启用 Notebooks API。
  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. 启用 Notebooks API。

    启用 API

  5. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  6. 确保您的 Google Cloud 项目已启用结算功能

  7. 启用 Notebooks API。

    启用 API

  8. 如果您计划在用户管理的笔记本实例中使用 GPU,请查看 Google Cloud 控制台中的配额页面,确保您的项目中有足够的 GPU 可用。如果配额页面上未列出 GPU,或者您需要额外的 GPU 配额,您可以申请增加配额。请参阅 Compute Engine 资源配额页面的申请增加配额

所需的角色

如果您已创建项目,则需要具有项目的 Owner (roles/owner) IAM 角色,该角色可提供所有必需的权限。跳过此部分并开始创建用户管理的笔记本实例。如果您未自行创建项目,请继续阅读本部分。

如需确保您的用户账号具有创建 Vertex AI Workbench 用户管理的笔记本实例所需的权限,请让您的管理员向您的用户账号授予项目的以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理访问权限

您的管理员还可以通过自定义角色或其他预定义角色向您的用户账号授予所需的权限。

创建实例

控制台

  1. 在 Google Cloud 控制台中,转到用户管理的笔记本页面。 或者转到 notebook.new (https://notebook.new) 并跳过下一步。

    转到“用户管理的笔记本”

  2. 点击  新建笔记本,然后选择自定义

  3. 创建用户管理的笔记本页面的详细信息部分中,为新实例提供以下信息:

    • 名称:新实例的名称。
    • 区域可用区:为新实例选择区域和可用区。为获得最佳网络性能,请选择与您的地理位置最近的区域。 查看可用的用户管理的笔记本位置
  4. 选择系统健康状况部分。

  5. 系统健康状况和报告部分中,选中启用系统健康状况报告复选框。

  6. 完成实例创建对话框的其余部分,然后点击创建

gcloud

  1. Cloud Shell 中或安装了 Google Cloud CLI 的任何环境中,输入以下 Google Cloud CLI 命令:

    gcloud notebooks instances create INSTANCE_NAME \
        --vm-image-project=deeplearning-platform-release \
        --vm-image-family=IMAGE_FAMILY \
        --machine-type=MACHINE_TYPE \
        --location=ZONE \
        --metadata=enable-guest-attributes=TRUE,report-system-health=TRUE
    

    请替换以下内容:

    • INSTANCE_NAME:新实例的名称
    • IMAGE_FAMILY:要用于创建实例的映像系列名称
    • MACHINE_TYPE:实例虚拟机的机器类型;例如 n1-standard-4
    • ZONE:您希望新实例所在的可用区,例如 us-west1-a
  2. 通过 Google Cloud 控制台访问实例。

通过客机特性监控系统健康状况

对于已启用相关客机属性的用户管理笔记本实例,您可以使用 Google Cloud 控制台、Google Cloud CLI 和 Compute Engine 命令,或Google Cloud CLI 和 Vertex AI Workbench 命令来检索系统健康状况客机属性的值。

控制台

  1. 在 Google Cloud 控制台中,打开用户管理的笔记本页面。

    进入“用户管理的笔记本”

  2. 点击要查看其系统运行状况的实例名称。

  3. 笔记本详情页面上,点击健康状况标签页。查看实例及其核心服务的状态。

gcloud 和 Compute Engine

gcloud compute instances get-guest-attributes INSTANCE_NAME \
    --zone ZONE

请替换以下内容:

  • INSTANCE_NAME:实例的名称
  • ZONE:实例所在的可用区

如果您的核心服务健康状况良好,结果将如下所示。 值 1 表示未检测到故障。

 NAMESPACE   KEY                         VALUE
 notebooks   docker_proxy_agent_status   1
 notebooks   docker_status               1
 notebooks   jupyterlab_api_status       1
 notebooks   jupyterlab_status           1
 notebooks   system-health               1
 notebooks   updated                     2020-10-01 17:00:00.12345

如果四个核心服务中的任何一个发生故障,系统健康状况将报告为值 -1,表示系统故障。在大多数情况下,系统故障意味着无法访问 JupyterLab。

故障结果的示例可能如下所示。

 NAMESPACE   KEY                         VALUE
 notebooks   docker_proxy_agent_status   -1
 notebooks   docker_status               -1
 notebooks   jupyterlab_api_status       1
 notebooks   jupyterlab_status           1
 notebooks   system-health               -1
 notebooks   updated                     2020-10-01 17:00:00.12345

gcloud 和 Vertex AI Workbench

如需监控系统健康状况,您可以使用 getInstanceHealth 方法检索客机特性的值。

以下示例展示了如何使用 gcloud CLI 执行此操作。

gcloud notebooks instances is-healthy example-instance \
    --location=ZONE

ZONE 替换为您的实例所在的可用区,例如 us-west1-a

如果您的核心服务健康状况良好,结果将如下所示。 值 1 表示未检测到故障。

  {
          "health_state": HEALTHY,
          "docker-proxy-agent": 1,
          "docker-service": 1,
          "jupyter-service": 1,
          "jupyter-api": 1,
          "last-updated": "2020-10-01 17:00:30.12345"
  }

故障结果的示例可能如下所示。

  {
          "healthy": UNHEALTHY,
          "docker-proxy-agent": 1,
          "docker-service": 1,
          "jupyter-service": -1,
          "jupyter-api": -1,
          "last-updated": "2020-10-01 17:00:30.12345"
  }

向 Monitoring 报告自定义指标

用户管理的笔记本实例可让您收集系统状态和 JupyterLab 指标,并将它们报告给 Cloud Monitoring。这些自定义指标与在用户管理的笔记本实例上安装 Monitoring 时报告的标准指标不同。

报告给 Monitoring 的自定义指标包括:

  • 以下用户管理的笔记本核心服务的系统健康状况:

    • Docker 服务
    • Docker 反向代理代理
    • Jupyter 服务
    • Jupyter API
  • 以下 JupyterLab 指标:

    • 内核数量
    • 终端数量
    • 连接数量
    • 会话数量
    • 最高内存使用量
    • 高内存
    • 当前内存量

实例如何向 Monitoring 报告自定义指标

要向 Monitoring 报告自定义指标,您必须在创建用户管理的笔记本实例时启用 report-notebook-metrics 元数据设置。

您还必须确保用户管理的笔记本实例的服务账号具有 Monitoring Metric Writer (roles/monitoring.metricWriter) 权限。如需了解详情,请参阅管理对项目、文件夹和组织的访问权限

创建用户管理的笔记本实例,用于向 Monitoring 报告自定义指标

如需向 Monitoring 报告自定义指标,您必须在创建用户管理的笔记本实例时选中向 Cloud Monitoring 报告自定义指标复选框。

您可以使用 Google Cloud 控制台或 Google Cloud CLI 启用向 Cloud Monitoring 报告自定义指标的功能。

须知事项

在创建用户管理的笔记本实例之前,您必须拥有 Google Cloud 项目并为该项目启用 Notebooks API。
  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. 启用 Notebooks API。

    启用 API

  5. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  6. 确保您的 Google Cloud 项目已启用结算功能

  7. 启用 Notebooks API。

    启用 API

  8. 如果您计划在用户管理的笔记本实例中使用 GPU,请查看 Google Cloud 控制台中的配额页面,确保您的项目中有足够的 GPU 可用。如果配额页面上未列出 GPU,或者您需要额外的 GPU 配额,您可以申请增加配额。请参阅 Compute Engine 资源配额页面的申请增加配额

所需的角色

如果您已创建项目,则需要具有项目的 Owner (roles/owner) IAM 角色,该角色可提供所有必需的权限。跳过此部分并开始创建用户管理的笔记本实例。如果您未自行创建项目,请继续阅读本部分。

如需确保您的用户账号具有创建 Vertex AI Workbench 用户管理的笔记本实例所需的权限,请让您的管理员向您的用户账号授予项目的以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理访问权限

您的管理员还可以通过自定义角色或其他预定义角色向您的用户账号授予所需的权限。

创建实例

控制台

  1. 在 Google Cloud 控制台中,转到用户管理的笔记本页面。 或者转到 notebook.new (https://notebook.new) 并跳过下一步。

    转到“用户管理的笔记本”

  2. 点击  新建笔记本,然后选择自定义

  3. 创建用户管理的笔记本页面的详细信息部分中,为新实例提供以下信息:

    • 名称:新实例的名称。
    • 区域可用区:为新实例选择区域和可用区。为获得最佳网络性能,请选择与您的地理位置最近的区域。 查看可用的用户管理的笔记本位置
  4. 选择系统健康状况部分。

  5. 系统健康状况和报告部分中,选中向 Cloud Monitoring 报告自定义指标复选框。

  6. 完成实例创建对话框的其余部分,然后点击创建

gcloud

  1. Cloud Shell 中或安装了 Google Cloud CLI 的任何环境中,输入以下 Google Cloud CLI 命令:

    gcloud notebooks instances create INSTANCE_NAME \
        --vm-image-project=deeplearning-platform-release \
        --vm-image-family=IMAGE_FAMILY \
        --machine-type=MACHINE_TYPE \
        --location=ZONE \
        --metadata=report-notebook-metrics=TRUE
    

    请替换以下内容:

    • INSTANCE_NAME:新实例的名称
    • IMAGE_FAMILY:要用于创建实例的映像系列名称
    • MACHINE_TYPE:实例虚拟机的机器类型,例如 n1-standard-4
    • ZONE:您希望新实例所在的可用区,例如 us-west1-a
  2. 通过 Google Cloud 控制台访问实例。

向服务账号授予 Monitoring Metric Writer 权限

创建新的用户管理的笔记本实例后,向该笔记本实例的服务账号授予 Monitoring Metric Writer 权限 (roles/monitoring.metricWriter)。如需了解详情,请参阅管理对项目、文件夹和组织的访问权限

通过 Monitoring 监控自定义指标

对于启用了报告自定义指标功能的用户管理笔记本实例,您可以使用 Google Cloud Console 监控自定义指标。

  1. 在 Google Cloud 控制台中,打开用户管理的笔记本页面。

    转到“用户管理的笔记本”

  2. 点击要查看其自定义指标的实例名称。

  3. 笔记本详情页面上,点击 Monitoring 标签页。查看实例的自定义指标。

在实例上安装 Monitoring

此选项会自动安装 Monitoring。安装需要使用 256 MB 磁盘空间。需要连接到互联网才能向 Monitoring 报告指标。

实例如何报告系统和应用指标

如需通过在用户管理的笔记本实例上安装 Cloud Monitoring 来报告系统和应用指标,您必须在创建用户管理的笔记本实例时选中安装 Cloud Monitoring 代理复选框。 这些指标不同于您启用 report-notebook-metrics 元数据设置时报告的自定义指标。

创建用户管理的笔记本实例,用于向 Monitoring 报告系统和应用指标

如需在用户管理的笔记本实例上安装 Monitoring,您可以使用 Google Cloud 控制台或 Google Cloud CLI。

须知事项

在创建用户管理的笔记本实例之前,您必须拥有 Google Cloud 项目并为该项目启用 Notebooks API。
  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. 启用 Notebooks API。

    启用 API

  5. 在 Google Cloud Console 中的项目选择器页面上,选择或创建一个 Google Cloud 项目

    转到“项目选择器”

  6. 确保您的 Google Cloud 项目已启用结算功能

  7. 启用 Notebooks API。

    启用 API

  8. 如果您计划在用户管理的笔记本实例中使用 GPU,请查看 Google Cloud 控制台中的配额页面,确保您的项目中有足够的 GPU 可用。如果配额页面上未列出 GPU,或者您需要额外的 GPU 配额,您可以申请增加配额。请参阅 Compute Engine 资源配额页面的申请增加配额

所需的角色

如果您已创建项目,则需要具有项目的 Owner (roles/owner) IAM 角色,该角色可提供所有必需的权限。跳过此部分并开始创建用户管理的笔记本实例。如果您未自行创建项目,请继续阅读本部分。

如需确保您的用户账号具有创建 Vertex AI Workbench 用户管理的笔记本实例所需的权限,请让您的管理员向您的用户账号授予项目的以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理访问权限

您的管理员还可以通过自定义角色或其他预定义角色向您的用户账号授予所需的权限。

创建实例

控制台

  1. 在 Google Cloud 控制台中,转到用户管理的笔记本页面。 或者转到 notebook.new (https://notebook.new) 并跳过下一步。

    转到“用户管理的笔记本”

  2. 点击  新建笔记本,然后选择自定义

  3. 创建用户管理的笔记本页面的详细信息部分中,为新实例提供以下信息:

    • 名称:新实例的名称。
    • 区域可用区:为新实例选择区域和可用区。为获得最佳网络性能,请选择与您的地理位置最近的区域。 查看可用的用户管理的笔记本位置
  4. 选择系统健康状况部分。

  5. 系统健康状况和报告部分中,选中安装 Cloud Monitoring 代理复选框。

  6. 完成实例创建对话框的其余部分,然后点击创建

gcloud

  1. Cloud Shell 中或安装了 Google Cloud CLI 的任何环境中,输入以下 Google Cloud CLI 命令:

    gcloud notebooks instances create INSTANCE_NAME \
        --vm-image-project=deeplearning-platform-release \
        --vm-image-family=IMAGE_FAMILY \
        --machine-type=MACHINE_TYPE \
        --location=ZONE \
        --metadata=install-monitoring-agent=TRUE
    

    请替换以下内容:

    • INSTANCE_NAME:新实例的名称
    • IMAGE_FAMILY:要用于创建实例的映像系列名称
    • MACHINE_TYPE:实例虚拟机的机器类型;例如 n1-standard-4
    • ZONE:您希望新实例所在的可用区,例如 us-west1-a
  2. 通过 Google Cloud 控制台访问实例。

通过 Monitoring 监控系统和应用指标

对于已安装 Monitoring 的用户管理笔记本实例,您可以使用 Google Cloud Console 监控系统和应用指标:

  1. 在 Google Cloud 控制台中,打开用户管理的笔记本页面。

    转到“用户管理的笔记本”

  2. 点击要查看其系统和应用指标的实例名称。

  3. 笔记本详情页面上,点击 Monitoring 标签页。查看实例的系统和应用指标。 如需了解如何解读这些指标,请参阅查看资源指标

使用诊断工具监控系统健康状况

用户管理的笔记本实例包含一个内置的诊断工具,可帮助您监控实例的系统健康状况。

诊断工具执行的任务

该诊断工具会执行以下任务:

  • 验证以下用户管理的笔记本核心服务的状态:

    • Docker 服务
    • Docker 反向代理代理
    • Jupyter 服务
    • Jupyter API
  • 检查启动磁盘和数据磁盘的磁盘占用空间是否超过 85% 的阈值。

  • 安装 lsof(需要互联网连接)。

  • 收集以下实例日志:

    • 网络信息(ifconfignetstat
    • /var/log/ 文件夹中的日志
    • Docker 状态信息
    • lsof(打开文件)数据
    • Docker 服务状态
    • “反向代理”代理的状态
    • Jupyter 服务状态
    • Jupyter API 状态
    • 代理的代理配置文件
    • Python 进程
  • 运行以下命令并收集结果:

    • pip freeze
    • conda list
    • gcloud compute instances describe INSTANCE_NAME
    • gcloud config list

运行诊断工具

要运行诊断工具,请完成以下步骤:

  1. 使用 ssh 连接到用户管理的笔记本实例

  2. 在 SSH 终端中,运行以下命令:

    sudo -i
    cd /opt/deeplearning/bin/
    ./diagnostic_tool.sh
    

    诊断工具会收集日志,将它们压缩到 .tar.gz 文件中,并将该文件放到 /tmp/ 文件夹中。

  3. 提取该文件,然后评估内容。 内容包括:

    • log 文件夹var/log/ 文件夹中的日志
    • report.log:收集的所有命令的输出
    • proxy-agent-config.json:代理配置信息
    • Docker 日志:包含 Docker 容器日志的 -json.log 文件

您可以将以下选项与诊断工具结合使用。

选项 说明
-r 尝试恢复失败的用户管理的笔记本核心服务状态的修复选项
-s 在未确认的情况下运行
-b .tar.gz 文件上传到 Cloud Storage 存储桶。
-v 在失败时排查相应工具的调试选项
-c 将 30 秒的数据包流量捕获到用户管理的笔记本实例中,并过滤 SSH
-d 用于保存日志的目标文件夹
-h 帮助

后续步骤