監控健康狀態
使用者管理的筆記本執行個體提供多種方法,可監控筆記本的健康狀態。本頁面說明如何使用每種方法。
健康狀態監控方法
您可以透過幾種不同的方式,監控使用者管理的 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。- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Notebooks API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Notebooks API.
- 如果您打算搭配 GPU 使用使用者管理的 Notebook 執行個體,請查看 Google Cloud Google Cloud 控制台中的配額頁面,確保專案有足夠的 GPU。如果配額頁面未列出 GPU,或您需要額外的 GPU 配額,請要求增加配額。請參閱 Compute Engine 資源配額頁面的「要求提高配額」一節。
-
筆記本管理員 (
roles/notebooks.admin
) -
服務帳戶使用者 (
roles/iam.serviceAccountUser
) 前往 Google Cloud 控制台的「User-managed notebooks」頁面。或者前往 notebook.new (https://notebook.new),然後略過下一個步驟。
按一下「New notebook」(新增筆記本)
,然後選取「Customize」(自訂)。在「Create a user-managed notebook」(建立使用者管理的筆記本) 頁面的「Details」(詳細資料) 區段中,為新執行個體提供下列資訊:
- 名稱:新執行個體的名稱
- 「Region」(地區)和「Zone」(區域):選取新執行個體的地區和區域。如要獲得最佳網路效能,請選取最靠近您的地理區域。查看可用的使用者自行管理的筆記本位置。
選取「系統健康狀態」部分。
在「系統健康狀態與報告」部分,選取「啟用系統健康狀態報表」核取方塊。
完成執行個體建立對話方塊的其餘部分,然後按一下「建立」。
在 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
更改下列內容:
從 Google Cloud 控制台存取執行個體。
前往 Google Cloud 控制台的「User-managed notebooks」頁面。
按一下要查看系統健康狀態的執行個體名稱。
在「Notebook details」(筆記本詳細資料) 頁面中,按一下「健康狀態」分頁標籤。查看執行個體及其核心服務的狀態。
INSTANCE_NAME
:執行個體名稱ZONE
:執行個體所在的區域這些使用者自行管理的 Notebooks 核心服務的系統健康狀態:
- Docker 服務
- Docker 反向 Proxy 代理程式
- Jupyter 服務
- Jupyter API
下列 JupyterLab 指標:
- 核心數
- 終端機數量
- 連線數量
- 工作階段數量
- 最大記憶體
- 高記憶體
- 目前的記憶體容量
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Notebooks API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Notebooks API.
- 如果您打算搭配 GPU 使用使用者管理的 Notebook 執行個體,請查看 Google Cloud Google Cloud 控制台中的配額頁面,確保專案有足夠的 GPU。如果配額頁面未列出 GPU,或您需要額外的 GPU 配額,請要求增加配額。請參閱 Compute Engine 資源配額頁面的「要求提高配額」一節。
-
筆記本管理員 (
roles/notebooks.admin
) -
服務帳戶使用者 (
roles/iam.serviceAccountUser
) 前往 Google Cloud 控制台的「User-managed notebooks」頁面。或者前往 notebook.new (https://notebook.new),然後略過下一個步驟。
按一下「New notebook」(新增筆記本)
,然後選取「Customize」(自訂)。在「Create a user-managed notebook」(建立使用者管理的筆記本) 頁面的「Details」(詳細資料) 區段中,為新執行個體提供下列資訊:
- 名稱:新執行個體的名稱
- 「Region」(地區)和「Zone」(區域):選取新執行個體的地區和區域。如要獲得最佳網路效能,請選取最靠近您的地理區域。查看可用的使用者自行管理的筆記本位置。
選取「系統健康狀態」部分。
在「系統健康狀態與報告」部分中,選取「向 Cloud Monitoring 回報自訂指標」核取方塊。
完成執行個體建立對話方塊的其餘部分,然後按一下「建立」。
在 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
更改下列內容:
從 Google Cloud 控制台存取執行個體。
前往 Google Cloud 控制台的「User-managed notebooks」頁面。
按一下要查看自訂指標的執行個體名稱。
在「Notebook details」(筆記本詳細資料) 頁面上,按一下「Monitoring」(監控) 分頁標籤。查看執行個體的自訂指標。
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Notebooks API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Notebooks API.
- 如果您打算搭配 GPU 使用使用者管理的 Notebook 執行個體,請查看 Google Cloud Google Cloud 控制台中的配額頁面,確保專案有足夠的 GPU。如果配額頁面未列出 GPU,或您需要額外的 GPU 配額,請要求增加配額。請參閱 Compute Engine 資源配額頁面的「要求提高配額」一節。
-
筆記本管理員 (
roles/notebooks.admin
) -
服務帳戶使用者 (
roles/iam.serviceAccountUser
) 前往 Google Cloud 控制台的「User-managed notebooks」頁面。或者前往 notebook.new (https://notebook.new),然後略過下一個步驟。
按一下「New notebook」(新增筆記本)
,然後選取「Customize」(自訂)。在「Create a user-managed notebook」(建立使用者管理的筆記本) 頁面的「Details」(詳細資料) 區段中,為新執行個體提供下列資訊:
- 名稱:新執行個體的名稱
- 「Region」(地區)和「Zone」(區域):選取新執行個體的地區和區域。如要獲得最佳網路效能,請選取最靠近您的地理區域。查看可用的使用者自行管理的筆記本位置。
選取「系統健康狀態」部分。
在「系統健康狀態和報表」部分,選取「安裝 Cloud Monitoring 代理程式」核取方塊。
完成執行個體建立對話方塊的其餘部分,然後按一下「建立」。
在 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
更改下列內容:
從 Google Cloud 控制台存取執行個體。
前往 Google Cloud 控制台的「User-managed notebooks」頁面。
按一下要查看系統和應用程式指標的執行個體名稱。
在「Notebook details」(筆記本詳細資料) 頁面上,按一下「Monitoring」(監控) 分頁標籤。查看執行個體的系統和應用程式指標。如要瞭解如何解讀這些指標,請參閱「查看資源指標」。
驗證下列使用者代管的 Notebook 核心服務狀態:
- Docker 服務
- Docker 反向 Proxy 代理程式
- Jupyter 服務
- Jupyter API
檢查開機和資料磁碟的磁碟空間使用率是否超過 85% 的門檻。
安裝
lsof
(必須連上網路)。收集下列執行個體記錄:
- 網路資訊 (
ifconfig
、netstat
) - 「
/var/log/
」資料夾中的記錄 - Docker 狀態資訊
lsof
(開啟檔案) 資料- Docker 服務狀態
- Proxy 反向代理程式狀態
- Jupyter 服務狀態
- Jupyter API 狀態
- Proxy 代理程式設定檔
- Python 程序
- 網路資訊 (
執行下列指令並收集結果:
- pip freeze
- conda list
- gcloud compute instances describe
INSTANCE_NAME
- gcloud config list
在 SSH 終端機中執行下列指令:
sudo -i cd /opt/deeplearning/bin/ ./diagnostic_tool.sh
診斷工具會收集記錄,並壓縮成
.tar.gz
檔案,然後將檔案放在/tmp/
資料夾中。解壓縮檔案,然後評估內容。 內容包括:
log
資料夾:var/log/
資料夾中的記錄report.log
:收集的所有指令輸出內容proxy-agent-config.json
: Proxy 設定資訊- Docker 記錄檔:包含 Docker 容器記錄的
-json.log
檔案
必要的角色
如果您建立了專案,您在專案中就擁有「擁有者」(roles/owner
) IAM 角色,略過本節,直接建立由使用者管理的筆記本執行個體。如果您不是專案建立者,請繼續閱讀本節內容。
如要取得建立 Vertex AI Workbench 使用者管理筆記本執行個體所需的權限,請要求管理員授予您專案的下列 IAM 角色:
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
建立執行個體
主控台
gcloud
透過訪客屬性監控系統健康狀態
如果使用者管理的筆記本執行個體已啟用相關的客體屬性,您可以透過 Google Cloud 控制台、搭配 Compute Engine 指令的 Google Cloud CLI,或搭配 Vertex AI Workbench 指令的 Google Cloud CLI,擷取系統健康狀態客體屬性的值。
主控台
搭配 Compute Engine 使用 gcloud
gcloud compute instances get-guest-attributes INSTANCE_NAME \
--zone 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 的自訂指標包括:
執行個體如何向 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。必要的角色
如果您建立了專案,您在專案中就擁有「擁有者」(roles/owner
) IAM 角色,略過本節,直接建立由使用者管理的筆記本執行個體。如果您不是專案建立者,請繼續閱讀本節內容。
如要取得建立 Vertex AI Workbench 使用者管理筆記本執行個體所需的權限,請要求管理員授予您專案的下列 IAM 角色:
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
建立執行個體
主控台
gcloud
將 Monitoring Metric Writer 權限授予服務帳戶
建立新的使用者自行管理的 Notebooks 執行個體後,請將監控指標寫入者權限 (roles/monitoring.metricWriter
) 授予使用者自行管理的 Notebooks 執行個體的服務帳戶。詳情請參閱「管理專案、資料夾和機構的存取權」。
透過 Monitoring 監控自訂指標
如果使用者管理的 Notebooks 執行個體已啟用回報自訂指標,您可以使用 Google Cloud 控制台監控自訂指標。
在執行個體上安裝 Monitoring
這個選項會自動安裝 Monitoring。 安裝時需要 256 MB 的磁碟空間。必須連上網際網路,指標才會回報給監控服務。
執行個體如何回報系統和應用程式指標
如要在使用者自行管理的筆記本執行個體上安裝 Cloud Monitoring,並回報系統和應用程式指標,您必須在建立使用者自行管理的筆記本執行個體時,選取「安裝 Cloud Monitoring 代理程式」核取方塊。這些指標與啟用 report-notebook-metrics
中繼資料設定時回報的自訂指標不同。
建立由使用者管理的筆記本執行個體,向 Monitoring 服務回報系統和應用程式指標
如要在使用者管理的 Notebooks 執行個體上安裝 Monitoring,可以使用 Google Cloud 控制台或 Google Cloud CLI。
事前準備
如要建立由使用者管理的筆記本執行個體,您必須先擁有Google Cloud 專案,並為該專案啟用 Notebooks API。必要的角色
如果您建立了專案,您在專案中就擁有「擁有者」(roles/owner
) IAM 角色,略過本節,直接建立由使用者管理的筆記本執行個體。如果您不是專案建立者,請繼續閱讀本節內容。
如要取得建立 Vertex AI Workbench 使用者管理筆記本執行個體所需的權限,請要求管理員授予您專案的下列 IAM 角色:
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
建立執行個體
主控台
gcloud
透過 Monitoring 監控系統和應用程式指標
如果使用者管理的 Notebooks 執行個體已安裝監控功能,您可以使用 Google Cloud 控制台監控系統和應用程式指標:
使用診斷工具監控系統健康狀態
使用者管理的 Notebooks 執行個體內建診斷工具,可協助您監控執行個體的系統健康狀態。
診斷工具執行的工作
診斷工具會執行下列工作:
執行診斷工具
如要執行診斷工具,請完成下列步驟:
您可以在診斷工具中使用下列選項。
選項 | 說明 |
---|---|
-r | 啟用這個修復選項之後,如果使用者自行管理的筆記本核心服務處於失敗狀態,系統就會將其還原 |
-s | 不需確認即可執行 |
-b |
將 .tar.gz 檔案上傳至 Cloud Storage bucket。
|
-v | 如果工具發生錯誤,可使用偵錯選項進行疑難排解 |
-c | 系統會篩選 SSH,並將 30 秒的封包流量擷取至使用者自行管理的筆記本執行個體 |
-d | 用來儲存記錄的目標資料夾 |
-h | 說明 |