Como solucionar problemas do VM Manager

Neste documento, descrevemos como solucionar problemas com o VM Manager.

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

Antes de começar

  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud. Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-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 Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

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

      gcloud init
    2. Set a default region and zone.
    3. REST

      Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

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

        gcloud init

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

Visão geral

Para resolver problemas, primeiro verifique se o VM Manager está configurado corretamente. Se a configuração estiver correta e você ainda tiver problemas, analise os registros. Ao analisar os registros, é possível identificar problemas com a VM ou no fluxo de trabalho do VM Manager, como erros em comandos ou scripts, que você pode isolar e resolver.

É possível coletar as seguintes informações dos registros:

  • Qualquer mensagem de erro ou aviso registrado pela VM. Isso é ideal para identificar erros no nível da VM ou outros de outros serviços em execução na sua VM. Para analisar esses registros, consulte Inspecionar o Cloud Logging.
  • Informações de depuração detalhadas registradas pelo agente de configuração do SO. Isso é útil para identificar problemas com qualquer uma das operações executadas pelo VM Manager. Para inspecionar os registros de depuração do agente de configuração do SO, consulte Inspecionar registros de depuração.

Depois de identificar os problemas ou erros, você também pode analisar a seção de erros comuns para ver possíveis correções.

Inspecionar o Cloud Logging

Use os links rápidos do Console do Google Cloud de cada recurso para ver os registros de uma VM específica.

Patch do SO

  1. No console do Google Cloud, acesse a guia Jobs de patch na página Gerenciamento de correções do SO.

    Acessar jobs de patch

  2. Clique no nome do job de patch que você quer depurar.
  3. Role para baixo até Instâncias de VM atualizadas.
  4. Para uma VM específica, em Registros, clique em Exibir.

Políticas do SO

Esse procedimento é compatível com políticas do SO. Para políticas de convidado (Beta), use a opção de depuração de registros, na seção a seguir.

  1. No Console do Google Cloud, acesse a guia Instâncias de VM na página Gerenciamento de configuração do SO.

    Acessar instâncias de VM

  2. Clique no nome da VM que você quer depurar.
  3. Role para baixo até Políticas.
  4. Em Registros, clique em Exibir.

Inspecionar registros de depuração

Para identificar problemas com qualquer recurso do VM Manager, ative a depuração do agente de configuração do SO e visualize o registro de depuração.

Ativar a geração de registros de depuração para o agente de configuração do SO

Para ativar a geração de registros de depuração, defina os metadados de osconfig-log-level=debug na instância ou no projeto da VM.

Para ativar a geração de registros de depuração na sua VM, conclua as seguintes etapas:

Console

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  2. Clique no nome da VM em que você quer definir o valor dos metadados.

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

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

    Chave: osconfig-log-level
    Valor: debug

  5. Clique em Salvar para aplicar as mudanças à VM.

gcloud

Use o comando instances add-metadata com a sinalização --metadata=osconfig-log-level=debug.

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

Substitua VM_NAME pelo nome da VM.

REST

Para saber mais, siga as instruções da API sobre Como configurar metadados da instância.

O seguinte par de chave-valor é exigido como parte da propriedade de metadados:

Chave: osconfig-log-level
Valor: debug

Ver registros de depuração

Quando a geração de registros de depuração está ativada, o agente de configuração do SO grava entradas de registro no Cloud Logging e no console da porta serial.

Depois de ativar a geração de registros de depuração na sua VM, o agente de configuração do SO leva aproximadamente dez minutos para começar a gravar mensagens de depuração no Cloud Logging. Para reduzir esse tempo de espera, reinicie o agente ou sua VM. Para mais informações sobre o Cloud Logging, consulte Como visualizar registros do Cloud Logging.

Para ver os registros de depuração, use as seguintes opções:

  • Cloud Logging: use o Console do Google Cloud ou a Google Cloud CLI
  • Console de porta serial

Console

  1. Acesse a página Logging > Explorador de registros (Explorador de registros) no Console do Google Cloud:

    Acessar o Explorador de registros

  2. Se necessário, selecione um projeto atual do Google Cloud na parte superior da página ou crie um novo.

  3. Na lista suspensa Recurso, selecione Instância da VM. Será exibida uma lista de VMs disponíveis (instance_id).

  4. Clique na VM que você quer visualizar.

  5. Clique em Adicionar.

  6. Na lista suspensa Nome do registro, selecione OSConfigAgent.

  7. Clique em Adicionar.

  8. A consulta será semelhante à seguinte:

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

gcloud

Execute o comando gcloud logging read.

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

Substitua PROJECT_ID pela ID do seu projeto.

Porta serial

Para informações de registro de depuração a partir do console da porta serial, consulte Como visualizar a saída da porta serial.

Erros comuns

Problemas de autenticação

Para que o VM Manager funcione, você precisa ter o seguinte:

  • Uma conta de serviço anexada. O VM Manager usa essa conta de serviço para assinar solicitações ao serviço da API.
  • Verifique se a conta de serviço anexada tem o papel roles/logging.logWriter para gravar registros na API Logging.
  • Agente de serviço de configuração do SO do Google Cloud. O VM Manager cria esse agente de serviço ao iniciar jobs de patch e atribui a ele o papel de agente de serviço de configuração do Cloud OS. Para criar políticas do SO, não é necessário configurar esse agente de serviço.

Se você usar o VM Manager e não tiver uma conta de serviço anexada ou um agente de serviço de configuração do SO do Google Cloud, talvez encontre os seguintes erros ao trabalhar com jobs de patch:

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 apareçam no painel de patch.

Para resolver esses problemas, tente uma ou todas as opções a seguir:

  • Verifique se todas as VMs têm uma conta de serviço anexada.
  • Verifique se o papel de Agente de serviço de configuração do Cloud OS (roles/osconfig.serviceAgent) está definido no Agente de serviço de configuração do SO do Google Cloud.

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

    Substitua:

Erro ao excluir pacotes para atualizações de patch

Se você especificar caracteres curinga ou caracteres especiais para o nome de pacotes ao excluir pacotes em um job de patch, o gerenciamento de correções do SO poderá ignorar a lista e atualizar todos os pacotes.

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

No exemplo a seguir, o Gerenciamento de correções 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-.*/

A seguir