Fehlerbehebung bei Vertex AI Workbench

Auf dieser Seite werden Schritte zur Fehlerbehebung beschrieben, die bei Problemen mit Vertex AI Workbench hilfreich sein können.

Informationen zur Verwendung anderer Komponenten von Vertex AI finden Sie unter Fehlerbehebung für Vertex AI.

Klicken Sie auf ein Thema, um die Inhalte dieser Seite zu filtern:

Nützliche Vorgehensweisen

In diesem Abschnitt werden Verfahren beschrieben, die Ihnen helfen können.

SSH verwenden, um eine Verbindung zu Ihrer nutzerverwalteten Notebookinstanz herzustellen

Verwenden Sie SSH, um eine Verbindung zu Ihrer Instanz herzustellen. Geben Sie dafür folgenden Befehl in Cloud Shell oder in einer Umgebung ein, in der das Google Cloud CLI installiert ist.

gcloud compute ssh --project PROJECT_ID \
  --zone ZONE \
  INSTANCE_NAME -- -L 8080:localhost:8080

Dabei gilt:

  • PROJECT_ID: Ihre Projekt-ID
  • ZONE: Die Google Cloud-Zone, in der sich die Instanz befindet.
  • INSTANCE_NAME: Der Name Ihrer Instanz.

Sie können auch eine Verbindung zu Ihrer Instanz herstellen, indem Sie die Compute Engine-Detailseite der Instanz öffnen und dann auf die Schaltfläche SSH klicken.

Beim Inverting-Proxy-Server neu registrieren

Wenn Sie die nutzerverwaltete Notebookinstanz noch einmal beim internen Inverting-Proxy-Server registrieren möchten, können Sie die VM auf der Seite Nutzerverwaltete Notebooks anhalten und starten oder SSH verwenden, um eine Verbindung zu Ihrer nutzerverwalteten Notebookinstanz herzustellen, und dann Folgendes eingeben:

cd /opt/deeplearning/bin
sudo ./attempt-register-vm-on-proxy.sh

Docker-Dienststatus überprüfen

Prüfen Sie den Docker-Dienststatus, indem Sie SSH verwenden, um eine Verbindung zu Ihrer nutzerverwalteten Notebookinstanz herzustellen, und dann Folgendes eingeben:

sudo service docker status

Prüfen, ob der Backverting-Proxy-Agent ausgeführt wird

Sie können prüfen, ob der Notebook-Inverting-Proxy-Agent ausgeführt wird. Stellen Sie dazu mit SSH eine Verbindung zu Ihrer nutzerverwalteten Notebookinstanz her und geben Sie Folgendes ein:

# 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-Dienststatus prüfen und Logs erfassen

Prüfen Sie den Jupyter-Dienststatus, indem Sie SSH verwenden, um eine Verbindung zu Ihrer nutzerverwalteten Notebookinstanz herzustellen, und dann Folgendes eingeben:

sudo service jupyter status

So erfassen Sie Jupyter-Dienstlogs:

sudo journalctl -u jupyter.service --no-pager

Prüfen, ob die interne Jupyter API aktiv ist

Die Jupyter API sollte immer auf Port 8080 ausgeführt werden. Sie können dies prüfen, indem Sie in den Protokollen der Instanz nach einem Eintrag suchen, der in etwa so aussieht:

Jupyter Server ... running at:
http://localhost:8080

Sie können prüfen, ob die interne Jupyter API aktiv ist. Stellen Sie dazu mit SSH eine Verbindung zu Ihrer nutzerverwalteten Notebookinstanz her und geben Sie Folgendes ein:

curl http://127.0.0.1:8080/api/kernelspecs

Sie können auch die Zeit messen, die die API für die Antwort benötigt, falls die Anfragen zu lange dauern:

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

Wenn Sie diese Befehle in Ihrer Vertex AI Workbench-Instanz ausführen möchten, öffnen Sie JupyterLab und erstellen Sie ein neues Terminal.

Starten Sie den Docker-Dienst neu

Sie können den Docker-Dienst neu starten, indem Sie die VM über die Seite Nutzerverwaltete Notebooks anhalten und starten oder SSH verwenden, um eine Verbindung zu Ihrer nutzerverwalteten Notebookinstanz herzustellen, und dann Folgendes eingeben:

sudo service docker restart

Reverse-Proxy-Agent neu starten

Wenn Sie den Inverting-Proxy-Agent neu starten möchten, können Sie die VM über die Seite Nutzerverwaltete Notebooks anhalten und starten oder SSH verwenden, um eine Verbindung zu Ihrer nutzerverwalteten Notebookinstanz herzustellen, und dann Folgendes eingeben:

sudo docker restart proxy-agent

Jupyter-Dienst neu starten

Sie können den Jupyter-Dienst neu starten, indem Sie die VM über die Seite Nutzerverwaltete Notebooks anhalten und starten oder SSH verwenden, um eine Verbindung zu Ihrer nutzerverwalteten Notebookinstanz herzustellen, und dann Folgendes eingeben:

sudo service jupyter restart

Notebooks-Erfassungs-Agent neu starten

Der Notebooks Collection Agent-Dienst führt einen Python-Prozess im Hintergrund aus, der den Status der Hauptdienste der Vertex AI Workbench-Instanz prüft.

Sie können den Dienst „Notebooks Collection Agent“ neu starten, indem Sie die VM über die Google Cloud Console anhalten und starten oder SSH verwenden, um eine Verbindung zu Ihrer Vertex AI Workbench-Instanz herzustellen, und dann Folgendes eingeben:

sudo systemctl stop notebooks-collection-agent.service

gefolgt von:

sudo systemctl start notebooks-collection-agent.service

Wenn Sie diese Befehle in Ihrer Vertex AI Workbench-Instanz ausführen möchten, öffnen Sie JupyterLab und erstellen Sie ein neues Terminal.

Skript für Notebooks Collection Agent ändern

Wenn Sie auf das Script zugreifen und es bearbeiten möchten, öffnen Sie ein Terminal in unserer Instanz oder verbinden Sie sich per SSH mit Ihrer Vertex AI Workbench-Instanz und geben Sie Folgendes ein:

nano /opt/deeplearning/bin/notebooks_collection_agent.py

Denken Sie daran, die Datei nach der Bearbeitung zu speichern.

Anschließend müssen Sie den Dienst „Notebooks Collection Agent“ neu starten.

Prüfen, ob die Instanz die erforderlichen DNS-Domains auflösen kann

Sie können prüfen, ob die Instanz die erforderlichen DNS-Domains auflösen kann. Stellen Sie dazu mit SSH eine Verbindung zu Ihrer nutzerverwalteten Notebookinstanz her und geben Sie Folgendes ein:

host notebooks.googleapis.com
host *.notebooks.cloud.google.com
host *.notebooks.googleusercontent.com
host *.kernels.googleusercontent.com

oder:

curl --silent --output /dev/null "https://notebooks.cloud.google.com"; echo $?

Wenn für die Instanz Dataproc aktiviert ist, können Sie mit dem folgenden Befehl prüfen, ob die Instanz *.kernels.googleusercontent.com auflöst:

curl --verbose -H "Authorization: Bearer $(gcloud auth print-access-token)" https://${PROJECT_NUMBER}-dot-${REGION}.kernels.googleusercontent.com/api/kernelspecs | jq .

Wenn Sie diese Befehle in Ihrer Vertex AI Workbench-Instanz ausführen möchten, öffnen Sie JupyterLab und erstellen Sie ein neues Terminal.

Kopie der Nutzerdaten auf einer Instanz erstellen

Führen Sie die folgenden Schritte aus, um eine Kopie der Nutzerdaten Ihrer Instanz in Cloud Storage zu speichern.

Cloud Storage-Bucket erstellen (optional)

Erstellen Sie in dem Projekt, in dem sich Ihre Instanz befindet und einen Cloud Storage-Bucket, in dem Sie Ihre Nutzerdaten speichern können. Wenn Sie bereits einen Cloud Storage-Bucket haben, überspringen Sie diesen Schritt.

  • Create a Cloud Storage bucket:
    gcloud storage buckets create gs://BUCKET_NAME
    Replace BUCKET_NAME with a bucket name that meets the bucket naming requirements.

Nutzerdaten kopieren

  1. Wählen Sie auf der JupyterLab-Benutzeroberfläche Ihrer verwalteten Notebookinstanz Datei >Neu > Terminal aus, um ein Terminalfenster zu öffnen. Bei nutzerverwalteten Notebookinstanzen können Sie stattdessen mit SSH eine Verbindung zum Terminal Ihrer Instanz herstellen.

  2. Verwenden Sie die gcloud CLI, um Ihre Nutzerdaten in einen Cloud Storage-Bucket zu kopieren. Mit dem folgenden Beispielbefehl werden alle Dateien aus dem Verzeichnis /home/jupyter/ Ihrer Instanz in ein Verzeichnis in einem Cloud Storage-Bucket kopiert.

    gcloud storage cp /home/jupyter/* gs://BUCKET_NAMEPATH --recursive
    

    Ersetzen Sie dabei Folgendes:

    • BUCKET_NAME: Der Name Ihres Cloud Storage-Buckets.
    • PATH: Der Pfad zu dem Verzeichnis, in das Sie Ihre Dateien kopieren möchten, z. B. /copy/jupyter/.

Problem mit einer Instanz, die nicht bereitgestellt wird, mit gcpdiag untersuchen

gcpdiag ist ein Open-Source-Tool. Es ist kein offiziell unterstütztes Google Cloud-Produkt. Mit dem Tool gcpdiag können Sie Probleme mit Google Cloud-Projekten identifizieren und beheben. Weitere Informationen finden Sie im gcpdiag-Projekt auf GitHub.

In diesem gcpdiag-Runbook werden mögliche Ursachen dafür untersucht, dass der Bereitstellungsstatus einer Vertex AI Workbench-Instanz nicht fortschreitet. Dabei werden die folgenden Bereiche geprüft:
  • Status: Prüft den aktuellen Status der Instanz, um sicherzustellen, dass sie sich nicht in der Bereitstellung befindet und nicht angehalten oder aktiv ist.
  • Compute Engine-VM-Bootlaufwerk-Image der Instanz: Wird geprüft, ob die Instanz mit einem benutzerdefinierten Container, einem offiziellen workbench-instances-Image, Deep Learning-VM-Images oder nicht unterstützten Images erstellt wurde, die dazu führen können, dass die Instanz im Bereitstellungsstatus hängen bleibt.
  • Benutzerdefinierte Scripts: Prüft, ob für die Instanz benutzerdefinierte Start- oder Post-Start-Scripts verwendet werden, die den Standard-Jupyter-Port ändern oder Abhängigkeiten aufheben, die dazu führen können, dass die Instanz im Bereitstellungsstatus hängen bleibt.
  • Umgebungsversion: Prüft, ob für die Instanz die neueste Umgebungsversion verwendet wird, indem die Möglichkeit zum Upgrade geprüft wird. Bei älteren Versionen bleibt die Instanz möglicherweise im Bereitstellungsstatus hängen.
  • Compute Engine-VM-Leistung der Instanz: Wird die aktuelle Leistung der VM geprüft, um sicherzustellen, dass sie nicht durch eine hohe CPU-Auslastung, einen unzureichenden Arbeitsspeicher oder Probleme mit dem Speicherplatz beeinträchtigt wird, die den normalen Betrieb beeinträchtigen könnten.
  • Compute Engine-Seriellport- oder Systemprotokolle der Instanz: Prüft, ob die Instanz Protokolle für den seriellen Port hat. Diese werden analysiert, um sicherzustellen, dass Jupyter an Port 127.0.0.1:8080 ausgeführt wird.
  • Compute Engine-SSH- und Terminalzugriff der Instanz: Prüft, ob die Compute Engine-VM der Instanz ausgeführt wird, damit der Nutzer SSH verwenden und ein Terminal öffnen kann, um zu prüfen, ob die Speichernutzung unter „home/jupyter“ unter 85 % liegt. Wenn kein Speicherplatz mehr vorhanden ist, bleibt die Instanz möglicherweise im Bereitstellungsstatus.
  • Externe IP deaktiviert: Prüft, ob der externe IP-Zugriff deaktiviert ist. Eine falsche Netzwerkkonfiguration kann dazu führen, dass die Instanz im Bereitstellungsstatus hängen bleibt.

Google Cloud Console

  1. Führen Sie den folgenden Befehl aus und kopieren Sie ihn.
  2. gcpdiag runbook vertex/workbench-instance-stuck-in-provisioning \
        --parameter project_id=PROJECT_ID \
        --parameter instance_name=INSTANCE_NAME \
        --parameter zone=ZONE
  3. Öffnen Sie die Google Cloud Console und aktivieren Sie Cloud Shell.
  4. Cloud Console öffnen
  5. Fügen Sie den kopierten Befehl ein.
  6. Führen Sie den Befehl gcpdiag aus, um das Docker-Image gcpdiag herunterzuladen und dann Diagnoseprüfungen durchzuführen. Folgen Sie gegebenenfalls der Anleitung für die Ausgabe, um fehlgeschlagene Prüfungen zu beheben.

Docker

Sie können gcpdiag mit einem Wrapper ausführen, der gcpdiag in einem Docker-Container startet. Docker oder Podman muss installiert sein.

  1. Kopieren Sie den folgenden Befehl und führen Sie ihn auf Ihrer lokalen Workstation aus.
    curl https://gcpdiag.dev/gcpdiag.sh >gcpdiag && chmod +x gcpdiag
  2. Führen Sie den Befehl gcpdiag aus.
    ./gcpdiag runbook vertex/workbench-instance-stuck-in-provisioning \
        --parameter project_id=PROJECT_ID \
        --parameter instance_name=INSTANCE_NAME \
        --parameter zone=ZONE

Verfügbare Parameter für dieses Runbook ansehen

Ersetzen Sie Folgendes:

  • PROJECT_ID: Die ID des Projekts, das die Ressource enthält.
  • INSTANCE_NAME: Der Name der Ziel-Vertex AI Workbench-Instanz in Ihrem Projekt.
  • ZONE: Die Zone, in der sich die Ziel-Vertex AI Workbench-Instanz befindet.

Nützliche Flags:

Eine Liste und Beschreibung aller gcpdiag-Tool-Flags finden Sie in der gcpdiag-Nutzungsanleitung.