Monitorar o status de integridade

As instâncias de notebooks gerenciados pelo usuário oferecem vários métodos para monitorar a integridade dos notebooks. Nesta página, descrevemos como usar cada método.

Métodos para monitorar o status de integridade

A integridade das instâncias de notebooks gerenciados pelo usuário pode ser monitorada de algumas maneiras diferentes. Nesta página, descrevemos como usar os seguintes métodos:

Configurar a CLI gcloud

Para concluir algumas das etapas desta página, você precisa usar a Google Cloud CLI.

Install the Google Cloud CLI, then initialize it by running the following command:

gcloud init

Usar atributos de convidado para informar a integridade do sistema

Use atributos de convidado para informar a integridade do sistema dos seguintes serviços principais:

  • Serviço do Docker
  • Agente de proxy reverso do Docker
  • Serviço Jupyter
  • API Jupyter

Os atributos de convidado são um tipo específico de metadados personalizados em que os aplicativos podem gravar enquanto estão sendo executados na instância de notebooks gerenciados pelo usuário. Para saber mais sobre atributos de convidado, consulte Sobre metadados de VM.

Como as instâncias usam atributos de convidado para relatar a integridade do sistema

O serviço notebooks-collection-agent executa um processo Python em segundo plano que verifica o status dos serviços principais da instância de notebooks gerenciados pelo usuário e atualiza os atributos de convidado como 1 se nenhum problema for detectado ou -1 se for detectada uma falha.

Para usar o serviço notebooks-collection-agent para gerar relatórios sobre a integridade da instância dos notebooks gerenciados pelo usuário, ative estes atributos de convidado ao criar uma instância de notebooks gerenciados pelo usuário:

  • enable-guest-attributes=TRUE: permite atributos de convidado na instância de notebooks gerenciados pelo usuário. Todas as instâncias novas ativam esse atributo por padrão.
  • report-system-health=TRUE: registra os resultados da verificação de integridade do sistema nos atributos de convidado.

O serviço notebooks-collection-agent não precisa de permissões especiais para gravar nos atributos de convidado da instância.

Criar uma instância de notebooks gerenciada pelo usuário com atributos de convidado de integridade do sistema ativados

Para usar atributos de convidado da integridade do sistema na geração de relatórios sobre a integridade da instância de notebooks gerenciados pelo usuário, marque a caixa de seleção Ativar relatório de integridade do sistema ao criar notebooks gerenciados pelo usuário.

É possível ativar o relatório de integridade do sistema usando o console do Google Cloud ou a CLI do Google Cloud.

Antes de começar

Antes de criar uma instância de notebooks gerenciados pelo usuário, é necessário ter um projeto do Google Cloud e ativar a API Notebooks para esse projeto.
  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 você planeja usar GPUs com a instância de notebooks gerenciada pelo usuário, consulte a página de cotas no Console do Google Cloud para garantir que há GPUs suficientes disponíveis no seu projeto. Se as GPUs não estiverem listadas nessa página ou se você precisar de mais cotas, solicite um aumento de cota. Consulte Como solicitar um aumento na cota na página Cotas de recursos do Compute Engine.

Funções exigidas

Caso tenha criado o projeto, você terá o papel do IAM de Proprietário (roles/owner) no projeto, que inclui todas as permissões necessárias. Pule esta seção e comece a criar sua instância de notebooks gerenciados pelo usuário. Se você não criou o projeto, continue nesta seção.

Para garantir que sua conta de usuário tenha as permissões necessárias para criar uma instância de notebooks gerenciados pelo usuário do Vertex AI Workbench, peça ao administrador para conceder à sua conta de usuário os seguintes papéis do IAM no projeto:

Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

O administrador também pode conceder à sua conta de usuário as permissões necessárias via papéis personalizados ou outros papéis predefinidos.

Criar instância

Console

  1. No Console do Google Cloud, acesse a página Notebooks gerenciados pelo usuário. Ou acesse notebook.new (https://notebook.new) e pule a próxima etapa.

    Acesse Notebooks gerenciados pelo usuário

  2. Clique em  Novo notebook e, em seguida, selecione Personalizar.

  3. Na página Criar um notebook gerenciado pelo usuário, na seção Detalhes, forneça as seguintes informações para a nova instância:

    • Nome da instância: forneça um nome para a nova instância.
    • Região e Zona: selecione uma região e zona para a nova instância. Para ter o melhor desempenho de rede, selecione a região mais próxima de você. Consulte os locais de notebooks gerenciados pelo usuário disponíveis.
  4. Selecione a seção Integridade do sistema.

  5. Na seção Integridade e relatórios do sistema, marque a caixa de seleção Ativar relatório de integridade do sistema.

  6. Conclua o restante da caixa de diálogo de criação de instância e clique em Criar.

gcloud

  1. No Cloud Shell ou em qualquer ambiente em que a Google Cloud CLI esteja instalada, insira os comandos da Google Cloud CLI a seguir.

    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
    

    Substitua:

    • INSTANCE_NAME: o nome da nova instância.
    • IMAGE_FAMILY: o nome da família de imagens que você quer usar para criar sua instância
    • MACHINE_TYPE: o tipo de máquina da VM da instância. Por exemplo, n1-standard-4
    • ZONE: a zona em que você quer que a nova instância esteja localizada, por exemplo, us-west1-a
  2. Acesse sua instância no Console do Google Cloud.

Monitorar a integridade do sistema por meio de atributos de convidado

Para instâncias do Vertex AI Workbench que têm os atributos de convidado relacionados ativados, é possível recuperar os valores dos atributos de convidado da integridade do sistema usando o Console do Google Cloud, o Console do Google Cloud CLI com comandos do Compute Engine ou Google Cloud CLI com comandos do Vertex AI Workbench.

Console

  1. No Console do Google Cloud, acesse a página Notebooks gerenciados pelo usuário.

    Acesse Notebooks gerenciados pelo usuário

  2. Clique no nome da instância da qual você quer visualizar o status de integridade do sistema.

  3. Na página Detalhes do notebook, clique na guia Integridade. Revise o status da instância e os serviços principais.

gcloud com o Compute Engine

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

Substitua:

  • INSTANCE_NAME: o nome da instância
  • ZONE: a zona em que a instância está localizada

Se os serviços principais estiverem íntegros, os resultados serão semelhantes aos mostrados a seguir. O valor 1 significa que nenhuma falha foi detectada.

 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 algum dos quatro serviços principais falhar, a integridade do sistema informa um valor -1 para indicar falha no sistema. Na maioria dos casos, uma falha do sistema significa que o JupyterLab não está acessível.

Um exemplo de resultado de falha pode ser semelhante ao seguinte.

 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 com o Vertex AI Workbench

Para monitorar a integridade do sistema, é possível usar o método getInstanceHealth para recuperar os valores dos seus atributos de convidado.

O exemplo a seguir mostra como fazer isso usando a CLI gcloud.

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

Substitua ZONE pela zona em que a instância está localizada, por exemplo, us-west1-a.

Se os serviços principais estiverem íntegros, os resultados serão semelhantes aos mostrados a seguir. O valor 1 significa que nenhuma falha foi detectada.

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

Um exemplo de resultado de falha pode ser semelhante ao seguinte.

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

Relatar métricas personalizadas para o Monitoring

As instâncias de notebooks gerenciados pelo usuário permitem coletar o status do sistema e as métricas do JupyterLab e, depois, reportá-las ao Cloud Monitoring. Elas são diferentes das métricas padrão informadas quando você instala o Monitoring na instância de notebooks gerenciados pelo usuário.

As métricas personalizadas informadas ao Monitoring incluem o seguinte:

  • A integridade do sistema destes serviços principais dos notebooks gerenciados pelo usuário:

    • Serviço do Docker
    • Agente de proxy reverso do Docker
    • Serviço Jupyter
    • API Jupyter
  • As métricas do JupyterLab a seguir:

    • Número de kernels
    • Número de terminais
    • Número de conexões
    • Número de sessões
    • Máximo de memória
    • Grande quantidade de memória
    • Memória atual

Como as instâncias informam métricas personalizadas para o Monitoring

Para relatar métricas personalizadas ao Monitoring, é preciso ativar a configuração de metadados report-notebook-metrics ao criar uma instância de notebooks gerenciados pelo usuário.

Verifique também se a conta de serviço da instância de notebooks gerenciados pelo usuário tem permissões de gravador de métricas do Monitoring (roles/monitoring.metricWriter). Para mais informações, consulte Gerenciar o acesso a projetos, pastas e organizações.

Criar uma instância de notebooks gerenciada pelo usuário que informa métricas personalizadas para o Monitoring

Para relatar métricas personalizadas ao Monitoring, marque a caixa de seleção Informar métricas personalizadas ao Cloud Monitoring ao criar uma instância de notebooks gerenciado pelo usuário.

É possível ativar a geração de relatórios de métricas personalizadas para o Cloud Monitoring usando o console do Google Cloud ou a CLI do Google Cloud.

Antes de começar

Antes de criar uma instância de notebooks gerenciados pelo usuário, é necessário ter um projeto do Google Cloud e ativar a API Notebooks para esse projeto.
  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 você planeja usar GPUs com a instância de notebooks gerenciada pelo usuário, consulte a página de cotas no Console do Google Cloud para garantir que há GPUs suficientes disponíveis no seu projeto. Se as GPUs não estiverem listadas nessa página ou se você precisar de mais cotas, solicite um aumento de cota. Consulte Como solicitar um aumento na cota na página Cotas de recursos do Compute Engine.

Funções exigidas

Caso tenha criado o projeto, você terá o papel do IAM de Proprietário (roles/owner) no projeto, que inclui todas as permissões necessárias. Pule esta seção e comece a criar sua instância de notebooks gerenciados pelo usuário. Se você não criou o projeto, continue nesta seção.

Para garantir que sua conta de usuário tenha as permissões necessárias para criar uma instância de notebooks gerenciados pelo usuário do Vertex AI Workbench, peça ao administrador para conceder à sua conta de usuário os seguintes papéis do IAM no projeto:

Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

O administrador também pode conceder à sua conta de usuário as permissões necessárias via papéis personalizados ou outros papéis predefinidos.

Criar instância

Console

  1. No Console do Google Cloud, acesse a página Notebooks gerenciados pelo usuário. Ou acesse notebook.new (https://notebook.new) e pule a próxima etapa.

    Acesse Notebooks gerenciados pelo usuário

  2. Clique em  Novo notebook e, em seguida, selecione Personalizar.

  3. Na página Criar um notebook gerenciado pelo usuário, na seção Detalhes, forneça as seguintes informações para a nova instância:

    • Nome da instância: forneça um nome para a nova instância.
    • Região e Zona: selecione uma região e zona para a nova instância. Para ter o melhor desempenho de rede, selecione a região mais próxima de você. Consulte os locais de notebooks gerenciados pelo usuário disponíveis.
  4. Selecione a seção Integridade do sistema.

  5. Na seção Integridade e relatórios do sistema, marque a caixa de seleção Informar métricas personalizadas ao Cloud Monitoring.

  6. Conclua o restante da caixa de diálogo de criação de instância e clique em Criar.

gcloud

  1. No Cloud Shell ou em qualquer ambiente em que a Google Cloud CLI esteja instalada, insira os comandos da Google Cloud CLI a seguir.

    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
    

    Substitua:

    • INSTANCE_NAME: o nome da nova instância.
    • IMAGE_FAMILY: o nome da família de imagens que você quer usar para criar sua instância
    • MACHINE_TYPE: o tipo de máquina da VM da instância, por exemplo, n1-standard-4;
    • ZONE: a zona em que você quer que a nova instância esteja localizada, por exemplo, us-west1-a
  2. Acesse sua instância no Console do Google Cloud.

Conceder permissões de gravador de métricas do Monitoring à conta de serviço

Depois de criar sua nova instância de notebooks gerenciados pelo usuário, conceda permissões de gravador de métricas do Monitoring (roles/monitoring.metricWriter) à conta de serviço da instância de notebooks gerenciados pelo usuário. Para mais informações, consulte Gerenciar o acesso a projetos, pastas e organizações.

Monitorar métricas personalizadas com o Monitoring

Para instâncias de notebooks gerenciados pelo usuário que têm métricas de relatórios personalizados ativadas, é possível monitorar suas métricas personalizadas usando o Console do Google Cloud.

  1. No Console do Google Cloud, acesse a página Notebooks gerenciados pelo usuário.

    Acesse Notebooks gerenciados pelo usuário

  2. Clique no nome da instância cujas métricas personalizadas você quer visualizar.

  3. Na página Detalhes do notebook, clique na guia Monitoramento. Revise as métricas personalizadas da instância.

Instalar o Monitoring em uma instância

Essa opção instala o Monitoring automaticamente. A instalação requer 256 MB de espaço em disco. É necessário ter uma conexão de Internet para que as métricas sejam informadas ao Monitoring.

Como as instâncias relatam métricas do sistema e do aplicativo

Para gerar relatórios do sistema e das métricas do aplicativo instalando o Cloud Monitoring na instância de notebooks gerenciado pelo usuário, marque a caixa de seleção Instalar agente do Cloud Monitoring ao criar uma instância de notebooks gerenciado pelo usuário. Elas são diferentes das métricas personalizadas informadas quando você ativa a configuração de metadados report-notebook-metrics.

Criar uma instância de notebooks gerenciada pelo usuário que informa as métricas do sistema e do aplicativo para o Monitoring

Para instalar o Monitoring na instância de notebooks gerenciados pelo usuário, use o console do Google Cloud ou a CLI do Google Cloud.

Antes de começar

Antes de criar uma instância de notebooks gerenciados pelo usuário, é necessário ter um projeto do Google Cloud e ativar a API Notebooks para esse projeto.
  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 você planeja usar GPUs com a instância de notebooks gerenciada pelo usuário, consulte a página de cotas no Console do Google Cloud para garantir que há GPUs suficientes disponíveis no seu projeto. Se as GPUs não estiverem listadas nessa página ou se você precisar de mais cotas, solicite um aumento de cota. Consulte Como solicitar um aumento na cota na página Cotas de recursos do Compute Engine.

Funções exigidas

Caso tenha criado o projeto, você terá o papel do IAM de Proprietário (roles/owner) no projeto, que inclui todas as permissões necessárias. Pule esta seção e comece a criar sua instância de notebooks gerenciados pelo usuário. Se você não criou o projeto, continue nesta seção.

Para garantir que sua conta de usuário tenha as permissões necessárias para criar uma instância de notebooks gerenciados pelo usuário do Vertex AI Workbench, peça ao administrador para conceder à sua conta de usuário os seguintes papéis do IAM no projeto:

Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

O administrador também pode conceder à sua conta de usuário as permissões necessárias via papéis personalizados ou outros papéis predefinidos.

Criar instância

Console

  1. No Console do Google Cloud, acesse a página Notebooks gerenciados pelo usuário. Ou acesse notebook.new (https://notebook.new) e pule a próxima etapa.

    Acesse Notebooks gerenciados pelo usuário

  2. Clique em  Novo notebook e, em seguida, selecione Personalizar.

  3. Na página Criar um notebook gerenciado pelo usuário, na seção Detalhes, forneça as seguintes informações para a nova instância:

    • Nome da instância: forneça um nome para a nova instância.
    • Região e Zona: selecione uma região e zona para a nova instância. Para ter o melhor desempenho de rede, selecione a região mais próxima de você. Consulte os locais de notebooks gerenciados pelo usuário disponíveis.
  4. Selecione a seção Integridade do sistema.

  5. Na seção Integridade do sistema e relatórios, marque a caixa de seleção Instalar agente do Cloud Monitoring.

  6. Conclua o restante da caixa de diálogo de criação de instância e clique em Criar.

gcloud

  1. No Cloud Shell ou em qualquer ambiente em que a Google Cloud CLI esteja instalada, insira os comandos da Google Cloud CLI a seguir.

    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
    

    Substitua:

    • INSTANCE_NAME: o nome da nova instância.
    • IMAGE_FAMILY: o nome da família de imagens que você quer usar para criar sua instância
    • MACHINE_TYPE: o tipo de máquina da VM da instância. Por exemplo, n1-standard-4
    • ZONE: a zona em que você quer que a nova instância esteja localizada, por exemplo, us-west1-a
  2. Acesse sua instância no Console do Google Cloud.

Monitorar as métricas do sistema e do aplicativo com o Monitoring

Para instâncias de notebooks gerenciadas pelo usuário que têm o Monitoring instalado, é possível monitorar as métricas do sistema e do aplicativo usando o Console do Google Cloud:

  1. No Console do Google Cloud, acesse a página Notebooks gerenciados pelo usuário.

    Acesse Notebooks gerenciados pelo usuário

  2. Clique no nome da instância em que você quer ver as métricas do sistema e do aplicativo.

  3. Na página Detalhes do notebook, clique na guia Monitoramento. Analise as métricas do sistema e do aplicativo para a instância. Para saber como interpretar essas métricas, consulte Analisar as métricas de recursos.

Usar a ferramenta de diagnóstico para monitorar a integridade do sistema

As instâncias de notebooks gerenciados pelo usuário incluem uma ferramenta de diagnóstico integrada que pode ajudar a monitorar a integridade do sistema das instâncias.

Tarefas realizadas pela ferramenta de diagnóstico

A ferramenta de diagnóstico realiza as seguintes tarefas:

  • Verifica o status dos seguintes serviços principais dos notebooks gerenciados pelo usuário:

    • Serviço do Docker
    • Agente de proxy reverso do Docker
    • Serviço Jupyter
    • API Jupyter
  • Verifica se o espaço em disco de discos de inicialização e dados é usado além de um limite de 85%.

  • Instala o lsof (conexão de Internet necessária).

  • Coleta os seguintes registros de instância:

    • Informações da rede (ifconfig, netstat)
    • Registros na pasta /var/log/
    • Informações de status do Docker
    • Dados de lsof (arquivos abertos)
    • Status de serviço do Docker
    • Status do agente reverso do proxy
    • Status de serviço do Jupyter
    • Status da API Jupyter
    • Arquivo de configuração do agente proxy
    • Processos Python
  • Executa os seguintes comandos e coleta os resultados:

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

Executar a ferramenta de diagnóstico

Para executar a ferramenta de diagnóstico, siga estas etapas:

  1. Use ssh para se conectar à sua instância de notebooks gerenciados pelo usuário.

  2. No terminal SSH, execute os seguintes comandos:

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

    A ferramenta de diagnóstico coleta os registros, os compacta em um arquivo .tar.gz e coloca o arquivo na pasta /tmp/.

  3. Extraia o arquivo e avalie o conteúdo. O conteúdo inclui o seguinte:

    • Pasta log: registros da pasta var/log/
    • report.log: saída de todos os comandos coletados
    • proxy-agent-config.json: informações de configuração de proxy
    • Registro do Docker: um arquivo -json.log que inclui registros de contêiner do Docker

Use as opções a seguir com a ferramenta de diagnóstico.

Opção Descrição
-r Uma opção de reparo que tenta restaurar o status dos serviços principais de notebooks gerenciados pelo usuário
-s Executado sem uma confirmação
-b Faz upload do arquivo .tar.gz em um bucket do Cloud Storage.
-v Uma opção de depuração para solucionar problemas da ferramenta em caso de falhas
-c Captura 30 segundos de tráfego de pacotes na instância dos seus notebooks gerenciados pelo usuário, filtrando o SSH
-d Uma pasta de destino em que os registros serão salvos
-h Ajuda

A seguir