Monitoraggio dello stato di integrità

Le istanze di notebook gestiti dall'utente forniscono diversi metodi per monitorare lo stato dei notebook. Questa pagina descrive come utilizzare ciascun metodo.

Metodi per monitorare lo stato di salute

Puoi monitorare l'integrità delle istanze dei notebook gestiti dall'utente in diversi modi. Questa pagina descrive come utilizzare i seguenti metodi:

Configura gcloud CLI

Per completare alcuni passaggi in questa pagina, devi utilizzare 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.

Utilizza gli attributi guest per segnalare l'integrità del sistema

Puoi utilizzare gli attributi guest per segnalare lo stato di integrità del sistema dei seguenti servizi di base:

  • Servizio Docker
  • Agente reverse proxy Docker
  • Servizio Jupyter
  • API Jupyter

Gli attributi guest sono un tipo specifico di metadati personalizzati su cui le applicazioni possono scrivere durante l'esecuzione sull'istanza di blocchi note gestiti dall'utente. Per saperne di più sugli attributi guest, consulta Informazioni sui metadati della VM.

In che modo le istanze utilizzano gli attributi guest per segnalare l'integrità del sistema

Il servizio notebooks-collection-agent esegue un processo Python in background che verifica lo stato dei servizi principali dell'istanza di notebook gestiti dall'utente e aggiorna gli attributi guest come 1 se non vengono rilevati problemi o -1 se viene rilevato un errore.

Per utilizzare il servizio notebooks-collection-agent per generare report sull'integrità dell'istanza di notebook gestiti dall'utente, devi attivare i seguenti attributi guest durante la creazione di un'istanza di notebook gestiti dall'utente:

  • enable-guest-attributes=TRUE: in questo modo vengono attivati gli attributi ospite nell'istanza dei blocchi note gestiti dall'utente. Tutte le nuove istanze attivano questo attributo per impostazione predefinita.
  • report-system-health=TRUE: Questo sistema registra i risultaticontrollo di integritàl'integrità negli attributi degli ospiti.

Il servizio notebooks-collection-agent non richiede autorizzazioni speciali per scrivere negli attributi guest dell'istanza.

Crea un'istanza di blocchi note gestiti dall'utente con gli attributi guest di integrità del sistema abilitati

Per utilizzare gli attributi guest dello stato di integrità del sistema per generare report sullo stato di integrità dell'istanza di notebook gestiti dall'utente, devi selezionare la casella di controllo Attiva report sullo stato di integrità del sistema quando crei un'istanza di notebook gestiti dall'utente.

Puoi attivare il report sullo stato di integrità del sistema utilizzando la console Google Cloud o Google Cloud CLI.

Prima di iniziare

Prima di poter creare un'istanza di blocchi note gestiti dall'utente, devi disporre di un progettoGoogle Cloud e abilitare l'API Notebooks per quel progetto.
  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. Se prevedi di utilizzare le GPU con l'istanza di notebook gestiti dall'utente, controlla la pagina Quote nella console Google Cloud per assicurarti di disporre di un numero sufficiente di GPU nel progetto. Se le GPU non sono elencate nella pagina Quote o se hai bisogno di una quota di GPU aggiuntiva, puoi richiedere un aumento della quota. Consulta la sezione Richiesta di aumento della quota nella pagina Quote delle risorse di Compute Engine.
  9. Ruoli obbligatori

    Se hai creato il progetto, disponi del ruolo IAM Proprietario (roles/owner) per il progetto, che include tutte le autorizzazioni richieste. Salta questa sezione e inizia a creare l'istanza di blocchi note gestiti dall'utente. Se non hai creato tu il progetto, continua in questa sezione.

    Per ottenere le autorizzazioni necessarie per creare un'istanza di blocchi note gestiti dall'utente di Vertex AI Workbench, chiedi all'amministratore di concederti i seguenti ruoli IAM per il progetto:

    Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

    Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

    Crea l'istanza

    Console

    1. Nella console Google Cloud , vai alla pagina Notebook gestiti dall'utente. In alternativa, vai all'indirizzo notebook.new (https://notebook.new) e salta il passaggio successivo.

      Vai a Blocchi note gestiti dall'utente

    2. Fai clic su  Nuovo blocco note, quindi seleziona Personalizza.

    3. Nella pagina Crea un blocco note gestito dall'utente, nella sezione Dettagli, fornisci le seguenti informazioni per la nuova istanza:

    4. Seleziona la sezione Stato del sistema.

    5. Nella sezione Integrità del sistema e report, seleziona la casella di controllo Abilita report sull'integrità del sistema.

    6. Completa il resto della finestra di dialogo di creazione dell'istanza e poi fai clic su Crea.

    gcloud

    1. Da Cloud Shell o da qualsiasi ambiente in cui è installata Google Cloud CLI, inserisci il seguente comando 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
      

      Sostituisci quanto segue:

      • INSTANCE_NAME: il nome della nuova istanza
      • IMAGE_FAMILY: il nome della famiglia di immagini che vuoi utilizzare per creare l'istanza
      • MACHINE_TYPE: il tipo di macchina della VM dell'istanza; ad esempio, n1-standard-4
      • ZONE: la zona in cui vuoi che si trovi la nuova istanza, ad esempio us-west1-a
    2. Accedi alla tua istanza dalla Google Cloud console.

    Monitorare lo stato di integrità del sistema tramite gli attributi guest

    Per le istanze di blocchi note gestiti dall'utente che hanno gli attributi guest correlati abilitati, puoi recuperare i valori degli attributi guest di integrità del sistema utilizzando la console Google Cloud , Google Cloud CLI con i comandi Compute Engine o Google Cloud CLI con i comandi Vertex AI Workbench.

    Console

    1. Nella console Google Cloud , vai alla pagina Notebook gestiti dall'utente.

      Vai a Blocchi note gestiti dall'utente

    2. Fai clic sul nome dell'istanza di cui vuoi visualizzare lo stato di integrità del sistema.

    3. Nella pagina Dettagli notebook, fai clic sulla scheda Stato. Controlla lo stato della tua istanza e dei relativi servizi principali.

    gcloud con Compute Engine

    gcloud compute instances get-guest-attributes INSTANCE_NAME \
        --zone ZONE
    

    Sostituisci quanto segue:

    • INSTANCE_NAME: il nome dell'istanza
    • ZONE: la zona in cui si trova l'istanza

    Se i servizi di base sono integri, i risultati sono simili a quelli riportati di seguito. Un valore pari a 1 indica che non è stato rilevato alcun errore.

     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
    

    Se uno dei quattro servizi principali non funziona, system-health segnala un valore -1 per indicare l'errore del sistema. Nella maggior parte dei casi, un errore di sistema significa che JupyterLab non è accessibile.

    Un esempio di risultato di errore potrebbe avere il seguente aspetto.

     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 con Vertex AI Workbench

    Per monitorare l'integrità del sistema, puoi utilizzare il metodo getInstanceHealth per recuperare i valori degli attributi guest.

    Il seguente esempio mostra come eseguire questa operazione utilizzando gcloud CLI.

    gcloud notebooks instances is-healthy example-instance \
        --location=ZONE
    

    Sostituisci ZONE con la zona in cui si trova l'istanza, ad esempio us-west1-a.

    Se i servizi di base sono integri, i risultati sono simili a quelli riportati di seguito. Un valore pari a 1 indica che non è stato rilevato alcun errore.

      {
              "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"
      }
    

    Un esempio di risultato di errore potrebbe avere il seguente aspetto.

      {
              "healthy": UNHEALTHY,
              "docker-proxy-agent": 1,
              "docker-service": 1,
              "jupyter-service": -1,
              "jupyter-api": -1,
              "last-updated": "2020-10-01 17:00:30.12345"
      }
    

    Segnala metriche personalizzate a Monitoring

    Le istanze di blocchi note gestiti dall'utente ti consentono di raccogliere le metriche JupyterLab e quelle relative allo stato del sistema e di inviarle a Cloud Monitoring. Queste metriche personalizzate sono diverse dalle metriche standard riportate quando installi Monitoring sull'istanza di notebook gestiti dall'utente.

    Le metriche personalizzate segnalate a Monitoring includono:

    • L'integrità del sistema di questi servizi principali dei notebook gestiti dall'utente:

      • Servizio Docker
      • Agente reverse proxy Docker
      • Servizio Jupyter
      • API Jupyter
    • Le seguenti metriche JupyterLab:

      • Numero di kernel
      • Numero di terminali
      • Numero di connessioni
      • Numero di sessioni
      • Memoria massima
      • Con memoria elevata
      • Memoria attuale

    In che modo le istanze segnalano le metriche personalizzate a Monitoring

    Per segnalare le metriche personalizzate a Monitoring, devi abilitare l'impostazione dei metadati report-notebook-metrics durante la creazione di un'istanza di blocchi note gestiti dall'utente.

    Devi anche assicurarti che il account di servizio account dell'istanza di blocchi note gestiti dall'utente disponga delle autorizzazioni di Monitoring Metric Writer (roles/monitoring.metricWriter). Per saperne di più, consulta la pagina Gestire l'accesso a progetti, cartelle e organizzazioni.

    Crea un'istanza di blocchi note gestiti dall'utente che invia metriche personalizzate a Monitoring

    Per segnalare metriche personalizzate a Monitoring, devi selezionare la casella di controllo Segnala metriche personalizzate a Cloud Monitoring quando crei un'istanza di blocchi note gestiti dall'utente.

    Puoi attivare la segnalazione di metriche personalizzate a Cloud Monitoring utilizzando la console Google Cloud o Google Cloud CLI.

    Prima di iniziare

    Prima di poter creare un'istanza di blocchi note gestiti dall'utente, devi disporre di un progettoGoogle Cloud e abilitare l'API Notebooks per quel progetto.
    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. Se prevedi di utilizzare le GPU con l'istanza di notebook gestiti dall'utente, controlla la pagina Quote nella console Google Cloud per assicurarti di disporre di un numero sufficiente di GPU nel progetto. Se le GPU non sono elencate nella pagina Quote o se hai bisogno di una quota di GPU aggiuntiva, puoi richiedere un aumento della quota. Consulta la sezione Richiesta di aumento della quota nella pagina Quote delle risorse di Compute Engine.
    9. Ruoli obbligatori

      Se hai creato il progetto, disponi del ruolo IAM Proprietario (roles/owner) per il progetto, che include tutte le autorizzazioni richieste. Salta questa sezione e inizia a creare l'istanza di blocchi note gestiti dall'utente. Se non hai creato tu il progetto, continua in questa sezione.

      Per ottenere le autorizzazioni necessarie per creare un'istanza di blocchi note gestiti dall'utente di Vertex AI Workbench, chiedi all'amministratore di concederti i seguenti ruoli IAM per il progetto:

      Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

      Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

      Crea l'istanza

      Console

      1. Nella console Google Cloud , vai alla pagina Notebook gestiti dall'utente. In alternativa, vai all'indirizzo notebook.new (https://notebook.new) e salta il passaggio successivo.

        Vai a Blocchi note gestiti dall'utente

      2. Fai clic su  Nuovo blocco note, quindi seleziona Personalizza.

      3. Nella pagina Crea un blocco note gestito dall'utente, nella sezione Dettagli, fornisci le seguenti informazioni per la nuova istanza:

      4. Seleziona la sezione Stato del sistema.

      5. Nella sezione Integrità del sistema e report, seleziona la casella di controllo Segnala metriche personalizzate a Cloud Monitoring.

      6. Completa il resto della finestra di dialogo di creazione dell'istanza e poi fai clic su Crea.

      gcloud

      1. Da Cloud Shell o da qualsiasi ambiente in cui è installata Google Cloud CLI, inserisci il seguente comando 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
        

        Sostituisci quanto segue:

        • INSTANCE_NAME: il nome della nuova istanza
        • IMAGE_FAMILY: il nome della famiglia di immagini che vuoi utilizzare per creare l'istanza
        • MACHINE_TYPE: il tipo di macchina della VM dell'istanza, ad esempio n1-standard-4
        • ZONE: la zona in cui vuoi che si trovi la nuova istanza, ad esempio us-west1-a
      2. Accedi alla tua istanza dalla Google Cloud console.

      Concedi le autorizzazioni di scrittura delle metriche di Monitoring al account di servizio

      Dopo aver creato la nuova istanza di blocchi note gestiti dall'utente, concedi le autorizzazioni di Writer metriche Monitoring (roles/monitoring.metricWriter) al account di servizio per l'istanza di blocchi note gestiti dall'utente. Per saperne di più, consulta la pagina Gestire l'accesso a progetti, cartelle e organizzazioni.

      Monitorare le metriche personalizzate tramite Monitoring

      Per le istanze di notebook gestite dall'utente che hanno abilitato la generazione di report sulle metriche personalizzate, puoi monitorare le metriche personalizzate utilizzando la console Google Cloud .

      1. Nella console Google Cloud , vai alla pagina Notebook gestiti dall'utente.

        Vai a Blocchi note gestiti dall'utente

      2. Fai clic sul nome dell'istanza di cui vuoi visualizzare le metriche personalizzate.

      3. Nella pagina Dettagli notebook, fai clic sulla scheda Monitoraggio. Esamina le metriche personalizzate per la tua istanza.

      Installa Monitoring su un'istanza

      Questa opzione installa automaticamente Monitoring. L'installazione richiede 256 MB di spazio su disco. Perché le metriche vengano inviate a Monitoring è necessaria una connessione a internet.

      Come le istanze segnalano le metriche di sistema e dell'applicazione

      Per generare report sulle metriche di sistema e delle applicazioni installando Cloud Monitoring nell'istanza di blocchi note gestiti dall'utente, devi selezionare la casella di controllo Installa agente Cloud Monitoring quando crei un'istanza di blocchi note gestiti dall'utente. Queste metriche sono diverse da quelle personalizzate riportate quando attivi l'impostazione dei metadati report-notebook-metrics.

      Crea un'istanza di blocchi note gestiti dall'utente che invia le metriche di sistema e delle applicazioni a Monitoring

      Per installare Monitoring nell'istanza di notebook gestiti dall'utente, puoi utilizzare la console Google Cloud o Google Cloud CLI.

      Prima di iniziare

      Prima di poter creare un'istanza di blocchi note gestiti dall'utente, devi disporre di un progettoGoogle Cloud e abilitare l'API Notebooks per quel progetto.
      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. Se prevedi di utilizzare le GPU con l'istanza di notebook gestiti dall'utente, controlla la pagina Quote nella console Google Cloud per assicurarti di disporre di un numero sufficiente di GPU nel progetto. Se le GPU non sono elencate nella pagina Quote o se hai bisogno di una quota di GPU aggiuntiva, puoi richiedere un aumento della quota. Consulta la sezione Richiesta di aumento della quota nella pagina Quote delle risorse di Compute Engine.
      9. Ruoli obbligatori

        Se hai creato il progetto, disponi del ruolo IAM Proprietario (roles/owner) per il progetto, che include tutte le autorizzazioni richieste. Salta questa sezione e inizia a creare l'istanza di blocchi note gestiti dall'utente. Se non hai creato tu il progetto, continua in questa sezione.

        Per ottenere le autorizzazioni necessarie per creare un'istanza di blocchi note gestiti dall'utente di Vertex AI Workbench, chiedi all'amministratore di concederti i seguenti ruoli IAM per il progetto:

        Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

        Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

        Crea l'istanza

        Console

        1. Nella console Google Cloud , vai alla pagina Notebook gestiti dall'utente. In alternativa, vai all'indirizzo notebook.new (https://notebook.new) e salta il passaggio successivo.

          Vai a Blocchi note gestiti dall'utente

        2. Fai clic su  Nuovo blocco note, quindi seleziona Personalizza.

        3. Nella pagina Crea un blocco note gestito dall'utente, nella sezione Dettagli, fornisci le seguenti informazioni per la nuova istanza:

        4. Seleziona la sezione Stato del sistema.

        5. Nella sezione Integrità e report del sistema, seleziona la casella di controllo Installa l'agente Cloud Monitoring.

        6. Completa il resto della finestra di dialogo di creazione dell'istanza e poi fai clic su Crea.

        gcloud

        1. Da Cloud Shell o da qualsiasi ambiente in cui è installata Google Cloud CLI, inserisci il seguente comando 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
          

          Sostituisci quanto segue:

          • INSTANCE_NAME: il nome della nuova istanza
          • IMAGE_FAMILY: il nome della famiglia di immagini che vuoi utilizzare per creare l'istanza
          • MACHINE_TYPE: il tipo di macchina della VM dell'istanza; ad esempio, n1-standard-4
          • ZONE: la zona in cui vuoi che si trovi la nuova istanza, ad esempio us-west1-a
        2. Accedi alla tua istanza dalla Google Cloud console.

        Monitora le metriche di sistema e delle applicazioni tramite Monitoring

        Per le istanze di blocchi note gestiti dall'utente in cui è installato Monitoring, puoi monitorare le metriche di sistema e delle applicazioni utilizzando la console Google Cloud :

        1. Nella console Google Cloud , vai alla pagina Notebook gestiti dall'utente.

          Vai a Blocchi note gestiti dall'utente

        2. Fai clic sul nome dell'istanza di cui vuoi visualizzare le metriche di sistema e delle applicazioni.

        3. Nella pagina Dettagli notebook, fai clic sulla scheda Monitoraggio. Esamina le metriche di sistema e delle applicazioni per la tua istanza. Per scoprire come interpretare queste metriche, consulta Esaminare le metriche delle risorse.

        Utilizzare lo strumento di diagnostica per monitorare l'integrità del sistema

        Le istanze di notebook gestite dall'utente includono uno strumento di diagnostica integrato che può aiutarti a monitorare l'integrità del sistema delle tue istanze.

        Attività eseguite dallo strumento di diagnostica

        Lo strumento di diagnostica esegue le seguenti attività:

        • Verifica lo stato dei seguenti servizi principali dei blocchi note gestiti dall'utente:

          • Servizio Docker
          • Agente reverse proxy Docker
          • Servizio Jupyter
          • API Jupyter
        • Controlla se lo spazio su disco per i dischi di avvio e dati è utilizzato oltre una soglia dell'85%.

        • Installa lsof (è necessaria una connessione a internet).

        • Raccoglie i seguenti log dell'istanza:

          • Informazioni sull'emittente (ifconfig, netstat)
          • Log nella cartella /var/log/
          • Informazioni sullo stato di Docker
          • Dati lsof (apri file)
          • Stato del servizio Docker
          • Stato dell'agente proxy inverso
          • Stato del servizio Jupyter
          • Stato dell'API Jupyter
          • File di configurazione dell'agente proxy
          • Processi Python
        • Esegue i seguenti comandi e raccoglie i risultati:

          • pip freeze
          • conda list
          • gcloud compute instances describe INSTANCE_NAME
          • gcloud config list

        Esegui lo strumento di diagnostica

        Per eseguire lo strumento di diagnostica, completa i seguenti passaggi:

        1. Utilizza SSH per connetterti all'istanza di blocchi note gestiti dall'utente.

        2. Nel terminale SSH, esegui i seguenti comandi:

          sudo -i
          cd /opt/deeplearning/bin/
          ./diagnostic_tool.sh

          Lo strumento di diagnostica raccoglie i log, li comprime in un file .tar.gz e li inserisce nella cartella /tmp/.

        3. Estrai il file e valuta i contenuti. I contenuti includono:

          • Cartella log: log della cartella var/log/
          • report.log: Output per tutti i comandi raccolti
          • proxy-agent-config.json: Informazioni sulla configurazione del proxy
          • Log Docker: un file -json.log che include i log dei container Docker

        Puoi utilizzare le seguenti opzioni con lo strumento di diagnostica.

        Opzione Descrizione
        -r Un'opzione di riparazione che tenta di ripristinare lo stato dei servizi principali non riusciti per i notebook gestiti dall'utente
        -s Esegue senza una conferma
        -b Carica il file .tar.gz in un bucket Cloud Storage.
        -v Un'opzione di debug per la risoluzione dei problemi dello strumento in caso di errori
        -c Acquisisce 30 secondi di traffico dei pacchetti nella tua istanza di notebook gestiti dall'utente, filtrando l'SSH
        -d Una cartella di destinazione in cui salvare i log
        -h Guida

        Passaggi successivi