監控健康狀態

使用者管理的筆記本執行個體提供多種方法,可監控筆記本的健康狀態。本頁面說明如何使用每種方法。

健康狀態監控方法

您可以透過幾種不同的方式,監控使用者管理的 Notebooks 執行個體健康狀態。本頁面說明如何使用下列方法:

設定 gcloud CLI

如要完成本頁的部分步驟,您需要使用 Google Cloud CLI。

After installing the Google Cloud CLI, initialize it by running the following command:

gcloud init

If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

使用訪客屬性回報系統健康狀態

您可以使用訪客屬性回報下列核心服務的系統健康狀態:

  • Docker 服務
  • Docker 反向 Proxy 代理程式
  • Jupyter 服務
  • Jupyter API

訪客屬性是一種特定類型的自訂中繼資料,可供應用程式在使用者管理的 Notebooks 執行個體上執行時寫入。如要進一步瞭解訪客屬性,請參閱「關於 VM 中繼資料」。

執行個體如何使用訪客屬性回報系統健康狀態

notebooks-collection-agent 服務會在背景執行 Python 程序,驗證使用者管理的 Notebooks 執行個體核心服務狀態,並將訪客屬性更新為 1 (未偵測到問題) 或 -1 (偵測到失敗)。

如要使用 notebooks-collection-agent 服務回報使用者管理的筆記本執行個體健康狀態,您必須在建立使用者管理的筆記本執行個體時,啟用下列訪客屬性:

  • enable-guest-attributes=TRUE:這會在使用者管理的筆記本執行個體上啟用訪客屬性。所有新執行個體都會預設啟用這項屬性。
  • report-system-health=TRUE:這項作業會將系統健康檢查結果記錄到訪客屬性。

notebooks-collection-agent 服務不需任何特殊權限,即可寫入執行個體的訪客屬性。

建立由使用者管理的筆記本執行個體,並啟用系統健康狀態訪客屬性

如要使用系統健康狀態訪客屬性回報使用者管理的 Notebooks 執行個體健康狀態,建立使用者管理的 Notebooks 執行個體時,請務必選取「啟用系統健康狀態報告」核取方塊。

您可以透過 Google Cloud 控制台或 Google Cloud CLI 啟用系統健康狀態報表。

事前準備

如要建立由使用者管理的筆記本執行個體,您必須先擁有Google Cloud 專案,並為該專案啟用 Notebooks API。
  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Notebooks API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Notebooks API.

    Enable the API

  8. 如果您打算搭配 GPU 使用使用者管理的 Notebook 執行個體,請查看 Google Cloud Google Cloud 控制台中的配額頁面,確保專案有足夠的 GPU。如果配額頁面未列出 GPU,或您需要額外的 GPU 配額,請要求增加配額。請參閱 Compute Engine 資源配額頁面的「要求提高配額」一節。
  9. 必要的角色

    如果您建立了專案,您在專案中就擁有「擁有者」(roles/owner) IAM 角色,略過本節,直接建立由使用者管理的筆記本執行個體。如果您不是專案建立者,請繼續閱讀本節內容。

    如要取得建立 Vertex AI Workbench 使用者管理筆記本執行個體所需的權限,請要求管理員授予您專案的下列 IAM 角色:

    如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

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

    建立執行個體

    主控台

    1. 前往 Google Cloud 控制台的「User-managed notebooks」頁面。或者前往 notebook.new (https://notebook.new),然後略過下一個步驟。

      前往使用者自行管理的筆記本

    2. 按一下「New notebook」(新增筆記本),然後選取「Customize」(自訂)

    3. 在「Create a user-managed notebook」(建立使用者管理的筆記本) 頁面的「Details」(詳細資料) 區段中,為新執行個體提供下列資訊:

      • 名稱:新執行個體的名稱
      • 「Region」(地區)和「Zone」(區域):選取新執行個體的地區和區域。如要獲得最佳網路效能,請選取最靠近您的地理區域。查看可用的使用者自行管理的筆記本位置
    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:執行個體 VM 的機器類型,例如 n1-standard-4
      • ZONE:新執行個體所在區域,例如 us-west1-a
    2. Google Cloud 控制台存取執行個體。

    透過訪客屬性監控系統健康狀態

    如果使用者管理的筆記本執行個體已啟用相關的客體屬性,您可以透過 Google Cloud 控制台、搭配 Compute Engine 指令的 Google Cloud CLI,或搭配 Vertex AI Workbench 指令的 Google Cloud CLI,擷取系統健康狀態客體屬性的值。

    主控台

    1. 前往 Google Cloud 控制台的「User-managed notebooks」頁面。

      前往使用者自行管理的筆記本

    2. 按一下要查看系統健康狀態的執行個體名稱。

    3. 在「Notebook details」(筆記本詳細資料) 頁面中,按一下「健康狀態」分頁標籤。查看執行個體及其核心服務的狀態。

    搭配 Compute Engine 使用 gcloud

    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
    

    搭配 Vertex AI Workbench 使用 gcloud

    如要監控系統健康狀態,可以使用 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 回報。這些自訂指標與在使用者管理的 Notebook 執行個體上安裝 Monitoring 時回報的標準指標不同。

    回報給 Monitoring 的自訂指標包括:

    • 這些使用者自行管理的 Notebooks 核心服務的系統健康狀態:

      • Docker 服務
      • Docker 反向 Proxy 代理程式
      • Jupyter 服務
      • Jupyter API
    • 下列 JupyterLab 指標:

      • 核心數
      • 終端機數量
      • 連線數量
      • 工作階段數量
      • 最大記憶體
      • 高記憶體
      • 目前的記憶體容量

    執行個體如何向 Monitoring 回報自訂指標

    如要將自訂指標回報給 Monitoring,您必須在建立使用者管理的 Notebooks 執行個體時,啟用 report-notebook-metrics 中繼資料設定

    此外,請務必確認使用者管理的 Notebooks 執行個體服務帳戶具備「Monitoring Metric Writer」(監控指標寫入者) (roles/monitoring.metricWriter) 權限。詳情請參閱「管理專案、資料夾和機構的存取權」。

    建立由使用者管理的筆記本執行個體,向 Monitoring 服務回報自訂指標

    如要向 Monitoring 回報自訂指標,您必須在建立使用者管理的筆記本執行個體時,選取「向 Cloud Monitoring 回報自訂指標」核取方塊。

    您可以使用 Google Cloud 主控台或 Google Cloud CLI,啟用向 Cloud Monitoring 傳送自訂指標的功能。

    事前準備

    如要建立由使用者管理的筆記本執行個體,您必須先擁有Google Cloud 專案,並為該專案啟用 Notebooks API。
    1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
    2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Go to project selector

    3. Make sure that billing is enabled for your Google Cloud project.

    4. Enable the Notebooks API.

      Enable the API

    5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

      Go to project selector

    6. Make sure that billing is enabled for your Google Cloud project.

    7. Enable the Notebooks API.

      Enable the API

    8. 如果您打算搭配 GPU 使用使用者管理的 Notebook 執行個體,請查看 Google Cloud Google Cloud 控制台中的配額頁面,確保專案有足夠的 GPU。如果配額頁面未列出 GPU,或您需要額外的 GPU 配額,請要求增加配額。請參閱 Compute Engine 資源配額頁面的「要求提高配額」一節。
    9. 必要的角色

      如果您建立了專案,您在專案中就擁有「擁有者」(roles/owner) IAM 角色,略過本節,直接建立由使用者管理的筆記本執行個體。如果您不是專案建立者,請繼續閱讀本節內容。

      如要取得建立 Vertex AI Workbench 使用者管理筆記本執行個體所需的權限,請要求管理員授予您專案的下列 IAM 角色:

      如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

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

      建立執行個體

      主控台

      1. 前往 Google Cloud 控制台的「User-managed notebooks」頁面。或者前往 notebook.new (https://notebook.new),然後略過下一個步驟。

        前往使用者自行管理的筆記本

      2. 按一下「New notebook」(新增筆記本),然後選取「Customize」(自訂)

      3. 在「Create a user-managed notebook」(建立使用者管理的筆記本) 頁面的「Details」(詳細資料) 區段中,為新執行個體提供下列資訊:

        • 名稱:新執行個體的名稱
        • 「Region」(地區)和「Zone」(區域):選取新執行個體的地區和區域。如要獲得最佳網路效能,請選取最靠近您的地理區域。查看可用的使用者自行管理的筆記本位置
      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:執行個體 VM 的機器類型,例如 n1-standard-4
        • ZONE:新執行個體所在區域,例如 us-west1-a
      2. Google Cloud 控制台存取執行個體。

      將 Monitoring Metric Writer 權限授予服務帳戶

      建立新的使用者自行管理的 Notebooks 執行個體後,請將監控指標寫入者權限 (roles/monitoring.metricWriter) 授予使用者自行管理的 Notebooks 執行個體的服務帳戶。詳情請參閱「管理專案、資料夾和機構的存取權」。

      透過 Monitoring 監控自訂指標

      如果使用者管理的 Notebooks 執行個體已啟用回報自訂指標,您可以使用 Google Cloud 控制台監控自訂指標。

      1. 前往 Google Cloud 控制台的「User-managed notebooks」頁面。

        前往使用者自行管理的筆記本

      2. 按一下要查看自訂指標的執行個體名稱。

      3. 在「Notebook details」(筆記本詳細資料) 頁面上,按一下「Monitoring」(監控) 分頁標籤。查看執行個體的自訂指標。

      在執行個體上安裝 Monitoring

      這個選項會自動安裝 Monitoring。 安裝時需要 256 MB 的磁碟空間。必須連上網際網路,指標才會回報給監控服務。

      執行個體如何回報系統和應用程式指標

      如要在使用者自行管理的筆記本執行個體上安裝 Cloud Monitoring,並回報系統和應用程式指標,您必須在建立使用者自行管理的筆記本執行個體時,選取「安裝 Cloud Monitoring 代理程式」核取方塊。這些指標與啟用 report-notebook-metrics 中繼資料設定時回報的自訂指標不同。

      建立由使用者管理的筆記本執行個體,向 Monitoring 服務回報系統和應用程式指標

      如要在使用者管理的 Notebooks 執行個體上安裝 Monitoring,可以使用 Google Cloud 控制台或 Google Cloud CLI。

      事前準備

      如要建立由使用者管理的筆記本執行個體,您必須先擁有Google Cloud 專案,並為該專案啟用 Notebooks API。
      1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
      2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

        Go to project selector

      3. Make sure that billing is enabled for your Google Cloud project.

      4. Enable the Notebooks API.

        Enable the API

      5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

        Go to project selector

      6. Make sure that billing is enabled for your Google Cloud project.

      7. Enable the Notebooks API.

        Enable the API

      8. 如果您打算搭配 GPU 使用使用者管理的 Notebook 執行個體,請查看 Google Cloud Google Cloud 控制台中的配額頁面,確保專案有足夠的 GPU。如果配額頁面未列出 GPU,或您需要額外的 GPU 配額,請要求增加配額。請參閱 Compute Engine 資源配額頁面的「要求提高配額」一節。
      9. 必要的角色

        如果您建立了專案,您在專案中就擁有「擁有者」(roles/owner) IAM 角色,略過本節,直接建立由使用者管理的筆記本執行個體。如果您不是專案建立者,請繼續閱讀本節內容。

        如要取得建立 Vertex AI Workbench 使用者管理筆記本執行個體所需的權限,請要求管理員授予您專案的下列 IAM 角色:

        如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

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

        建立執行個體

        主控台

        1. 前往 Google Cloud 控制台的「User-managed notebooks」頁面。或者前往 notebook.new (https://notebook.new),然後略過下一個步驟。

          前往使用者自行管理的筆記本

        2. 按一下「New notebook」(新增筆記本),然後選取「Customize」(自訂)

        3. 在「Create a user-managed notebook」(建立使用者管理的筆記本) 頁面的「Details」(詳細資料) 區段中,為新執行個體提供下列資訊:

          • 名稱:新執行個體的名稱
          • 「Region」(地區)和「Zone」(區域):選取新執行個體的地區和區域。如要獲得最佳網路效能,請選取最靠近您的地理區域。查看可用的使用者自行管理的筆記本位置
        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:執行個體 VM 的機器類型,例如 n1-standard-4
          • ZONE:新執行個體所在區域,例如 us-west1-a
        2. Google Cloud 控制台存取執行個體。

        透過 Monitoring 監控系統和應用程式指標

        如果使用者管理的 Notebooks 執行個體已安裝監控功能,您可以使用 Google Cloud 控制台監控系統和應用程式指標:

        1. 前往 Google Cloud 控制台的「User-managed notebooks」頁面。

          前往使用者自行管理的筆記本

        2. 按一下要查看系統和應用程式指標的執行個體名稱。

        3. 在「Notebook details」(筆記本詳細資料) 頁面上,按一下「Monitoring」(監控) 分頁標籤。查看執行個體的系統和應用程式指標。如要瞭解如何解讀這些指標,請參閱「查看資源指標」。

        使用診斷工具監控系統健康狀態

        使用者管理的 Notebooks 執行個體內建診斷工具,可協助您監控執行個體的系統健康狀態。

        診斷工具執行的工作

        診斷工具會執行下列工作:

        • 驗證下列使用者代管的 Notebook 核心服務狀態:

          • Docker 服務
          • Docker 反向 Proxy 代理程式
          • Jupyter 服務
          • Jupyter API
        • 檢查開機和資料磁碟的磁碟空間使用率是否超過 85% 的門檻。

        • 安裝 lsof (必須連上網路)。

        • 收集下列執行個體記錄:

          • 網路資訊 (ifconfignetstat)
          • /var/log/」資料夾中的記錄
          • Docker 狀態資訊
          • lsof (開啟檔案) 資料
          • Docker 服務狀態
          • Proxy 反向代理程式狀態
          • Jupyter 服務狀態
          • Jupyter API 狀態
          • Proxy 代理程式設定檔
          • 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: Proxy 設定資訊
          • Docker 記錄檔:包含 Docker 容器記錄的 -json.log 檔案

        您可以在診斷工具中使用下列選項。

        選項 說明
        -r 啟用這個修復選項之後,如果使用者自行管理的筆記本核心服務處於失敗狀態,系統就會將其還原
        -s 不需確認即可執行
        -b .tar.gz 檔案上傳至 Cloud Storage bucket。
        -v 如果工具發生錯誤,可使用偵錯選項進行疑難排解
        -c 系統會篩選 SSH,並將 30 秒的封包流量擷取至使用者自行管理的筆記本執行個體
        -d 用來儲存記錄的目標資料夾
        -h 說明

        後續步驟