このページでは、Vertex AI Workbench の使用中に問題が発生した場合に役立つトラブルシューティング手順について説明します。
Vertex AI のその他のコンポーネントの使用方法については、Vertex AI のトラブルシューティングをご覧ください。
このページのコンテンツをフィルタするには、トピックをクリックします。
役に立つ手順
このセクションでは、役に立ちそうな手順について説明します。
SSH を使用してユーザー管理ノートブック インスタンスに接続する
SSH を使用してインスタンスに接続するには、Cloud Shell または Google Cloud CLI がインストールされている環境で次のコマンドを入力します。
gcloud compute ssh --project PROJECT_ID \
--zone ZONE \
INSTANCE_NAME -- -L 8080:localhost:8080
次のように置き換えます。
PROJECT_ID
: プロジェクト IDZONE
: インスタンスが配置される Google Cloud のゾーンINSTANCE_NAME
: インスタンスの名前
インスタンスの Compute Engine の詳細ページを開いてから、[SSH] ボタンをクリックして、インスタンスに接続することもできます。
Inverting Proxy サーバーに再登録する
ユーザー管理ノートブック インスタンスを内部 Inverting Proxy サーバーに再登録するには、ユーザー管理ノートブックのページから VM を停止して起動します。あるいは、SSH を使用してユーザー管理ノートブック インスタンスに接続して、次のように入力します。
cd /opt/deeplearning/bin sudo ./attempt-register-vm-on-proxy.sh
Docker サービスのステータスを確認する
Docker サービスのステータスを確認するには、SSH でユーザー管理のノートブック インスタンスに接続して、次のように入力します。
sudo service docker status
Inverting Proxy エージェントが実行されていることを確認する
ノートブックの Inverting Proxy エージェントが実行されているかどうかを確認するには、SSH でユーザー管理のノートブック インスタンスに接続して、次のように入力します。
# Confirm Inverting Proxy agent Docker container is running (proxy-agent) sudo docker ps # Verify State.Status is running and State.Running is true. sudo docker inspect proxy-agent # Grab logs sudo docker logs proxy-agent
Jupyter サービスのステータスを確認してログを収集する
Jupyter サービスのステータスを確認するには、SSH でユーザー管理のノートブック インスタンスに接続して、次のように入力します。
sudo service jupyter status
Jupyter サービスログを収集するには:
sudo journalctl -u jupyter.service --no-pager
Jupyter の内部 API がアクティブであることを確認する
Jupyter API は常にポート 8080 で実行する必要があります。これを確認するには、インスタンスの syslog で次のようなエントリを調べます。
Jupyter Server ... running at: http://localhost:8080
Jupyter の内部 API がアクティブであることを確認するには、SSH を使用してユーザー管理ノートブック インスタンスに接続し、次のように入力します。
curl http://127.0.0.1:8080/api/kernelspecs
リクエストに時間がかかりすぎる場合は、API がレスポンスを返すまでの時間を測定することもできます。
time curl -V http://127.0.0.1:8080/api/status
time curl -V http://127.0.0.1:8080/api/kernels
time curl -V http://127.0.0.1:8080/api/connections
Vertex AI Workbench インスタンスでこれらのコマンドを実行するには、JupyterLab を開いて新しいターミナルを作成します。
Docker サービスを再起動する
Docker サービスを再起動するには、ユーザー管理のノートブックのページから VM を停止して起動します。あるいは、SSH でユーザー管理ノートブック インスタンスに接続して、次のように入力します。
sudo service docker restart
Inverting Proxy エージェントを再起動する
Inverting Proxy エージェントを再起動するには、ユーザー管理のノートブックのページから VM を停止して起動します。あるいは、SSH でユーザー管理ノートブック インスタンスに接続して、次のように入力します。
sudo docker restart proxy-agent
Jupyter サービスを再起動する
Jupyter サービスを再起動するには、ユーザー管理ノートブックのページから VM を停止して起動します。あるいは、SSH を使用してユーザー管理ノートブック インスタンスに接続し、次のように入力します。
sudo service jupyter restart
Notebooks Collection Agent を再起動する
Notebooks Collection Agent サービスは、Vertex AI Workbench インスタンスのコアサービスのステータスを確認する Python プロセスをバックグラウンドで実行します。
Notebooks Collection Agent サービスを再起動するには、Google Cloud コンソールから VM を停止して起動します。あるいは、SSH を使用して Vertex AI Workbench インスタンスに接続し、次のように入力します。
sudo systemctl stop notebooks-collection-agent.service
続けて次のように入力します。
sudo systemctl start notebooks-collection-agent.service
Vertex AI Workbench インスタンスでこれらのコマンドを実行するには、JupyterLab を開いて新しいターミナルを作成します。
Notebooks Collection Agent スクリプトを変更する
スクリプトにアクセスして編集するには、インスタンスでターミナルを開くか、SSH を使用して Vertex AI Workbench インスタンスに接続し、次のように入力します。
nano /opt/deeplearning/bin/notebooks_collection_agent.py
ファイルを編集したら、必ず保存してください。
次に、Notebooks Collection Agent サービスを再起動する必要があります。
インスタンスで必要な DNS ドメインを解決できることを確認する
インスタンスで必要な DNS ドメインを解決できることを確認するには、SSH を使用してユーザー管理ノートブック インスタンスに接続し、次のように入力します。
host notebooks.googleapis.com
host *.notebooks.cloud.google.com
host *.notebooks.googleusercontent.com
host *.kernels.googleusercontent.com
または
curl --silent --output /dev/null "https://notebooks.cloud.google.com"; echo $?
インスタンスで Dataproc が有効になっている場合は、次のコマンドを実行すると、インスタンスが *.kernels.googleusercontent.com
を解決することを確認できます。
curl --verbose -H "Authorization: Bearer $(gcloud auth print-access-token)" https://${PROJECT_NUMBER}-dot-${REGION}.kernels.googleusercontent.com/api/kernelspecs | jq .
Vertex AI Workbench インスタンスでこれらのコマンドを実行するには、JupyterLab を開いて新しいターミナルを作成します。
インスタンスのユーザーデータのコピーを作成する
インスタンスのユーザーデータを Cloud Storage にコピーするには、次の手順を完了します。
Cloud Storage バケットを作成する(省略可)
インスタンスが配置されているプロジェクトと同じプロジェクトに、ユーザーデータを保存する Cloud Storage バケットを作成します。すでに Cloud Storage バケットがある場合は、この手順をスキップします。
-
Create a Cloud Storage bucket:
Replacegcloud storage buckets create gs://BUCKET_NAME
BUCKET_NAME
with a bucket name that meets the bucket naming requirements.
ユーザーデータをコピーする
インスタンスの JupyterLab インターフェースで、[File] > [New] > [Terminal] を選択して、ターミナル ウィンドウを開きます。ユーザー管理ノートブック インスタンスの場合は、代わりに SSH を使用してインスタンスのターミナルに接続できます。
gcloud CLI を使用して、Cloud Storage バケットにユーザーデータをコピーします。次のコマンドの例では、インスタンスの
/home/jupyter/
ディレクトリから Cloud Storage バケット内のディレクトリにすべてのファイルをコピーします。gcloud storage cp /home/jupyter/* gs://BUCKET_NAMEPATH --recursive
次のように置き換えます。
BUCKET_NAME
: Cloud Storage バケットの名前。PATH
: ファイルをコピーするディレクトリのパス(例:/copy/jupyter/
)
gcpdiag を使用して、プロビジョニングのままになっているインスタンスを調べる
gcpdiag
はオープンソース ツールです。正式にサポートされている Google Cloud プロダクトではありません。gcpdiag
ツールを使用すると、Google Cloud プロジェクトの問題を特定して修正できます。詳細については、GitHub の gcpdiag プロジェクトをご覧ください。
gcpdiag
ランブックでは、Vertex AI Workbench インスタンスがプロビジョニングのステータスのままになっている潜在的な原因を調べます。次の領域が対象になります。- ステータス: インスタンスの現在のステータスを確認し、プロビジョニングのままになっていて、停止していないかアクティブであることを確認します。
- インスタンスの Compute Engine VM ブートディスク イメージ: インスタンスがカスタム コンテナ、公式の
workbench-instances
イメージ、Deep Learning VM Image、サポートされていないイメージで作成されたかどうか確認します。これらは、インスタンスがプロビジョニングのステータスのままになる原因になり得ます。 - カスタム スクリプト: インスタンスで、デフォルトの Jupyter ポートを変更するか、依存関係を破るカスタムの起動スクリプトまたは起動後のスクリプトが使用されているかどうか確認します。これらは、インスタンスがプロビジョニングのステータスのままになる原因になり得ます。
- 環境バージョン: アップグレードの可否を確認して、インスタンスで最新の環境バージョンが使用されているかどうか確認します。バージョンが古いと、インスタンスがプロビジョニングのステータスのままになる原因になり得ます。
- インスタンスの Compute Engine VM のパフォーマンス: VM の現在のパフォーマンスを確認し、通常の運用を中断し得る高い CPU 使用率、メモリ不足、ディスク容量の問題によって低下していないことを確認します。
- インスタンスの Compute Engine シリアルポートまたはシステム ロギング: インスタンスにシリアルポートのログがあるかどうか確認します。このログを分析して、Jupyter がポート
127.0.0.1:8080
で実行されていることを確認します。 - インスタンスの Compute Engine SSH とターミナルへのアクセス: インスタンスの Compute Engine VM が実行されているかどうか確認します。これにより、ユーザーは SSH を使用してターミナルを開き、「home/jupyter」の容量の使用率が 85% 未満であることを確認できます。空き容量が残っていないと、インスタンスがプロビジョニングのステータスのままになる原因になり得ます。
- 外部 IP がオフになっている: 外部 IP アクセスがオフになっているかどうか確認します。ネットワーク構成が正しくないと、インスタンスがプロビジョニングのステータスのままになる原因になり得ます。
Google Cloud コンソール
- 次のコマンドを入力してコピーします。
- Google Cloud コンソールを開き、Cloud Shell をアクティブにします。 Cloud コンソールを開く
- コピーしたコマンドを貼り付けます。
gcpdiag
コマンドを実行します。gcpdiag
Docker イメージがダウンロードされ、診断チェックが実行されます。必要に応じて、出力の指示に沿って、失敗したチェックを修正します。
GOOGLE_AUTH_TOKEN=GOOGLE_AUTH_TOKEN \
gcpdiag runbook vertex/workbench-instance-stuck-in-provisioning \
--parameter project_id=PROJECT_ID \
--parameter instance_name=INSTANCE_NAME \
--parameter zone=ZONE \
--auto --reason=REASON
Docker
Docker コンテナで gcpdiag
を起動するラッパーを使用して gcpdiag
を実行できます。Docker または Podman がインストールされている必要があります。
- ローカル ワークステーションで次のコマンドをコピーして実行します。
curl https://gcpdiag.dev/gcpdiag.sh >gcpdiag && chmod +x gcpdiag
-
gcpdiag
コマンドを実行します。./gcpdiag runbook vertex/workbench-instance-stuck-in-provisioning \ --parameter project_id=PROJECT_ID \ --parameter instance_name=INSTANCE_NAME \ --parameter zone=ZONE
このランブックで使用可能なパラメータを表示します。
次のように置き換えます。
- PROJECT_ID: リソースを含むプロジェクトの ID。
- INSTANCE_NAME: プロジェクト内のターゲット Vertex AI Workbench インスタンスの名前。
- ZONE: ターゲット Vertex AI Workbench インスタンスが配置されているゾーン。
有用なフラグ:
--universe-domain
: 該当する場合、リソースをホストする信頼できるパートナーのソブリン クラウド ドメイン--parameter
または-p
: ランブック パラメータ
gcpdiag
ツールのフラグの一覧と説明については、gcpdiag
の使用手順をご覧ください。