Resolução de problemas do Gestor de VMs

Este documento descreve como resolver problemas com o Gestor de VMs.

Para mais informações sobre o VM Manager, consulte o artigo VM Manager.

Antes de começar

  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Cloud de Confiance by S3NS serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Cloud de Confiance console to access Cloud de Confiance by S3NS services and APIs, you don't need to set up authentication.

    gcloud

    1. Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init
    2. Set a default region and zone.

    REST

    Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

      Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

    Para mais informações, consulte o artigo Autenticar para usar REST na Cloud de Confiance documentação de autenticação.

Vista geral

Para resolver problemas, verifique primeiro se o VM Manager está configurado corretamente. Se a configuração estiver correta e continuar a ter problemas, pode rever os registos. Quando revê os registos, pode identificar problemas com a VM ou no fluxo de trabalho do gestor de VMs, como erros em comandos ou scripts, que pode isolar e resolver.

Pode recolher as seguintes informações dos registos:

  • Qualquer mensagem de erro ou aviso registada pela VM. Isto é ideal para identificar erros ao nível da VM ou erros de outros serviços em execução na sua VM. Para rever estes registos, consulte o artigo Inspeção dos Registos na nuvem.
  • Informações de depuração detalhadas registadas pelo agente de configuração do SO. Isto é útil para identificar problemas com qualquer uma das operações executadas pelo VM Manager. Para inspecionar os registos de depuração do agente de configuração do SO, consulte o artigo Inspecione os registos de depuração.

Depois de identificar os problemas ou os erros, também pode rever a secção de erros comuns para ver potenciais correções.

Inspecione o Cloud Logging

Pode usar os Cloud de Confiance links rápidos da consola para cada funcionalidade para ver registos.

Patch do SO

  1. Na Cloud de Confiance consola, aceda ao separador Execuções de tarefas na página Patch.

    Aceda a Tarefas executadas

  2. Clique no nome da tarefa de aplicação de patches que quer depurar.
  3. Aceda à secção Instâncias de VM atualizadas.
  4. Para uma VM específica, em Registos, clique em Ver.

Políticas do SO

Este procedimento é suportado para políticas do SO. Para políticas de convidados (beta), use a opção de registos de depuração, na secção seguinte.

  1. Na Cloud de Confiance consola, aceda ao separador Instâncias de VM na página Políticas de SO.

    Aceder às instâncias de VM

  2. Clique no nome da VM que quer depurar.
  3. Aceda à secção Políticas.
  4. Em Registos, clique em Ver.

Orquestradores de políticas do SO

  1. Na Cloud de Confiance consola, aceda ao separador Orquestradores de políticas de SO na página Políticas de SO.

    Aceder aos orquestradores de políticas de SO

  2. Clique no nome do orquestrador de políticas do SO que quer depurar.
  3. Aceda à secção Registos e valide a entrada de registo.

Inspecione os registos de depuração

Pode identificar problemas com qualquer funcionalidade do VM Manager ativando a depuração para o agente de configuração do SO e visualizando o registo de depuração.

Ative o registo de depuração para o agente de configuração do SO

Pode ativar o registo de depuração definindo os metadados osconfig-log-level=debug na instância da VM ou no projeto.

Para ativar o registo de depuração na sua VM, conclua os seguintes passos:

Consola

  1. Na Cloud de Confiance consola, aceda à página Instâncias de VM.

    Aceder às instâncias de VM

  2. Clique no nome da VM para a qual quer definir o valor dos metadados.

  3. Na página Detalhes da instância, clique em Editar para editar as definições.

  4. Em Metadados personalizados, adicione as seguintes entradas de metadados:

    Chave: osconfig-log-level
    Valor: debug

  5. Clique em Guardar para aplicar as alterações à VM.

gcloud

Use o comando instances add-metadata com a flag --metadata=osconfig-log-level=debug.

gcloud compute instances add-metadata VM_NAME \
    --metadata=osconfig-log-level=debug

Substitua VM_NAME pelo nome da sua VM.

REST

Para ver instruções sobre como definir metadados de instâncias, siga as instruções da API para definir metadados de instâncias.

O seguinte par de chave-valor é obrigatório como parte da propriedade de metadados:

Chave: osconfig-log-level
Valor: debug

Veja registos de depuração

Quando o registo de depuração está ativado, o agente de configuração do SO escreve entradas de registo no Cloud Logging e na consola da porta série.

Depois de ativar o registo de depuração na VM, o agente de configuração do SO demora cerca de dez minutos a começar a escrever mensagens de depuração no Cloud Logging. Pode reduzir este tempo de espera reiniciando o agente ou reiniciando a VM. Para mais informações sobre o Cloud Logging, consulte o artigo Ver registos do Cloud Logging.

Para ver os registos de depuração, pode usar as seguintes opções:

  • Cloud Logging: use a Cloud de Confiance consola ou a Google Cloud CLI
  • Consola de porta de série

Consola

  1. Aceda à página Logging > Logs Explorer (Explorador de registos) na Cloud de Confiance consola:

    Aceda ao Explorador de registos

  2. Se necessário, selecione um Cloud de Confiance projeto existente na parte superior da página ou crie um novo projeto.

  3. Na lista pendente Recurso, selecione Instância de VM. É apresentada uma lista das VMs disponíveis (instance_id).

  4. Clique na MV que quer ver.

  5. Clique em Adicionar.

  6. Na lista pendente Nome do registo, selecione OSConfigAgent.

  7. Clique em Adicionar.

  8. A sua consulta deve ser semelhante à seguinte:

    resource.type="gce_instance" resource.labels.instance_id="INSTANCE_ID"
    logName="projects/PROJECT_ID/logs/OSConfigAgent"
    
  9. Clique em Executar consulta.

gcloud

Execute o comando gcloud logging read.

 gcloud logging read "resource.type=gce_instance AND logName=projects/PROJECT_ID/logs/OSConfigAgent"
 

Substitua PROJECT_ID pelo ID do seu projeto.

Porta de série

Para ver informações do registo de depuração da consola da porta de série, consulte o artigo Ver saída da porta de série.

Erros comuns

Problemas de autenticação

Para que o VM Manager funcione, tem de ter o seguinte:

  • Uma conta de serviço anexada. O VM Manager usa esta conta de serviço para assinar pedidos ao serviço de API.
  • Certifique-se de que a conta de serviço anexada tem a função roles/logging.logWriter para escrever registos na API Logging.
  • Agente do serviço de configuração do SO do Google Cloud. O VM Manager cria este agente de serviço quando inicia tarefas de aplicação de patches e atribui-lhe a função de agente de serviço do Cloud OS Config. Para criar políticas de SO, não precisa de configurar este agente de serviço.

Se usar o VM Manager e não tiver uma conta de serviço anexada ou um agente do serviço de configuração do SO do Google Cloud, pode ver os seguintes erros ao trabalhar com tarefas de aplicação de patches:

Service account permissions are missing. Verify that the service account has the correct permissions and try again.
OSConfigAgent Error main.go:88: error getting token from metadata: metadata: GCE metadata "instance/service-accounts/default/identity?audience=osconfig.googleapis.com&format=full" not defined
message: "Error running OPERATION_NAME: error calling OPERATION_NAME: code: "PermissionDenied", message: "The caller does not have permission", details: []"

Os problemas de autenticação também podem impedir que as instâncias de VM sejam apresentadas no painel de controlo de patches.

Para resolver estes problemas, experimente uma ou todas as seguintes ações:

  • Verifique se todas as VMs têm uma conta de serviço anexada.
  • Certifique-se de que a função de agente de serviço de configuração do SO na nuvem (roles/osconfig.serviceAgent) está definida no agente de serviço de configuração do SO na nuvem da Google Cloud.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-osconfig.s3ns-system.iam.gserviceaccount.com' \
      --role='roles/osconfig.serviceAgent'
    

    Substitua o seguinte:

Erro ao excluir pacotes para atualizações de patches

Se especificar carateres universais ou especiais para o nome dos pacotes quando exclui pacotes num trabalho de aplicação de patches, a gestão de patches do SO pode ignorar a lista e atualizar todos os pacotes.

Para resolver este problema, atualize o agente de configuração do SO para a versão 20220829.00 e use barras (/) para incluir o nome do pacote.

No exemplo seguinte, a gestão de patches do SO exclui pacotes yum com o prefixo google- no nome do pacote.

      gcloud compute os-config patch-jobs execute --instance-filter-all
--yum-excludes=/google-.*/

O que se segue?