ヘルス ステータスをモニタリングする

ユーザー管理ノートブック インスタンスには、ノートブックの状態をモニタリングする方法がいくつかあります。このページでは、それぞれの方法について説明します。

ヘルス ステータスをモニタリングする方法

ユーザー管理のノートブック インスタンスの状態をモニタリングするには、いくつかの方法があります。このページでは、次の方法について説明します。

gcloud CLI を設定する

このページの一部の手順を完了するには、Google Cloud CLI コマンドライン ツールを使用する必要があります。

Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

gcloud init

ゲスト属性を使用してシステムの状態を報告する

ゲスト属性を使用すると、次のコアサービスのシステム状態を報告できます。

  • Docker サービス
  • Docker リバース プロキシ エージェント
  • Jupyter サービス
  • Jupyter API

ゲスト属性は、ユーザー管理のノートブック インスタンスで実行中にアプリケーションから書き込み可能なカスタム メタデータです。ゲスト属性の詳細については、VM メタデータについてをご覧ください。

インスタンスがゲスト属性を使用してシステムの状態を報告する方法

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. 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. 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 のリソースの割り当てページの割り当て量の増加をリクエストするをご覧ください。

必要なロール

プロジェクトを作成した場合、そのプロジェクトに対するオーナー(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: インスタンスの VM のマシンタイプ(例: 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

4 つのコアサービスのいずれかで障害が発生した場合、system-health はシステム障害を表す -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 メタデータ設定を有効にする必要があります。

また、ユーザー管理のノートブック インスタンスのサービス アカウントに、モニタリング指標の書き込み(roles/monitoring.metricWriter)権限が必要です。詳細については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

カスタム指標を Monitoring にレポートするユーザー管理のノートブック インスタンスを作成する

Monitoring にカスタム指標を報告するには、ユーザー管理ノートブック インスタンスを作成するときに、[Cloud Monitoring にカスタム指標を報告する] チェックボックスをオンにする必要があります。

Cloud 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. 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 のリソースの割り当てページの割り当て量の増加をリクエストするをご覧ください。

必要なロール

プロジェクトを作成した場合、そのプロジェクトに対するオーナー(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: インスタンスの VM のマシンタイプ(例: n1-standard-4
    • ZONE: 新しいインスタンスを配置するゾーン(例: us-west1-a
  2. Google Cloud コンソールからインスタンスにアクセスします。

モニタリング指標の書き込み権限をサービス アカウントに付与する

新しいユーザー管理のノートブック インスタンスを作成したら、ユーザー管理のノートブック インスタンスのサービス アカウントにモニタリング指標書き込み権限(roles/monitoring.metricWriter)を付与します。詳細については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

Monitoring を使用してカスタム指標をモニタリングする

ユーザー管理のノートブック インスタンスでカスタム指標が有効になっている場合、Google Cloud Console でそのカスタム指標をモニタリングできます。

  1. Google Cloud コンソールで、[ユーザー管理のノートブック] ページに移動します。

    [ユーザー管理のノートブック] に移動

  2. カスタム指標を表示するインスタンス名をクリックします。

  3. [ノートブックの詳細] ページで、[モニタリング] タブをクリックします。インスタンスのカスタム指標を確認します。

インスタンスに Monitoring をインストールする

このオプションを使用すると、Monitoring が自動的にインストールされます。インストールには 256 MB のディスク容量が必要です。指標を Monitoring に報告するには、インターネット接続が必要です。

インスタンスによるシステム指標とアプリケーション指標の報告方法

ユーザー管理のノートブック インスタンスに Cloud Monitoring をインストールしてシステム指標とアプリケーション指標を報告するには、ユーザー管理のノートブック インスタンスを作成するときに、[Cloud Monitoring エージェントをインストールする] をオンにする必要があります。これらの指標は、report-notebook-metrics メタデータ設定が有効になっているときに報告されるカスタム指標とは異なります。

システム指標とアプリケーション指標を Monitoring に報告するユーザー管理ノートブック インスタンスを作成する

ユーザー管理ノートブック インスタンスに 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. 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 のリソースの割り当てページの割り当て量の増加をリクエストするをご覧ください。

必要なロール

プロジェクトを作成した場合、そのプロジェクトに対するオーナー(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: インスタンスの VM のマシンタイプ(例: n1-standard-4
    • ZONE: 新しいインスタンスを配置するゾーン(例: us-west1-a
  2. Google Cloud コンソールからインスタンスにアクセスします。

Monitoring を使用してシステムとアプリケーションの指標をモニタリングする

ユーザー管理のノートブック インスタンスに Monitoring がインストールされている場合、Google Cloud Console を使用して、システムとアプリケーションの指標をモニタリングできます。

  1. Google Cloud コンソールで、[ユーザー管理のノートブック] ページに移動します。

    [ユーザー管理のノートブック] に移動

  2. システムとアプリケーションの指標を表示するインスタンス名をクリックします。

  3. [ノートブックの詳細] ページで、[モニタリング] タブをクリックします。インスタンスのシステム指標とアプリケーション指標を確認します。これらの指標の解釈方法については、リソース指標を確認するをご覧ください。

診断ツールを使用してシステムの状態をモニタリングする

ユーザー管理のノートブック インスタンスには、インスタンスのシステム状態のモニタリングに役立つ診断ツールが組み込まれています。

診断ツールで実行されるタスク

この診断ツールは次のタスクを行います。

  • ユーザー管理ノートブックの次のコアサービスのステータスを確認します。

    • 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 SSH をフィルタリングして、30 秒のパケット トラフィックをユーザー管理のノートブック インスタンスにキャプチャします。
-d ログの保存先フォルダ
-h ヘルプ

次のステップ