Visualizando a saída da porta serial


Uma instância de máquina virtual (VM) possui quatro portas seriais virtuais. O sistema operacional da instância, o BIOS e outras entidades no nível do sistema geralmente gravam a saída nas portas seriais, o que torna a saída da porta serial útil para solucionar problemas de falhas, falhas de inicialização, problemas de inicialização ou de desligamento.

Esta página descreve métodos para visualizar a saída da porta serial, incluindo o uso do Cloud Logging para reter a saída da porta serial mesmo depois que uma instância é interrompida ou excluída. Se você precisar enviar comandos para uma porta serial enquanto uma instância estiver em execução, consulte Interagindo com o console serial .

A saída da porta serial pode ser acessada por meio do console do Google Cloud, da CLI gcloud e do REST, mas somente enquanto a instância de VM estiver em execução. Os logs são limitados ao 1 MB de saída mais recente por porta.

Se você ativar o registro de saída da porta serial, o Cloud Logging fornecerá gratuitamente os primeiros 50 gibibytes (GiB) por mês de registro e retém os registros por 30 dias .

Antes de começar

  • Se você quiser registrar a saída da porta serial no Cloud Logging, familiarize-se com o Cloud Logging .
  • Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar 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. 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.

    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.

        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.

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

Habilitando e desabilitando o log de saída da porta serial

Você pode controlar se suas instâncias enviam saída de porta serial para o Cloud Logging definindo metadados no nível do projeto ou da instância . Você também pode desativar o recurso para todos os usuários da sua organização definindo uma política da organização .

Configurando metadados de projeto e instância

Por padrão, o registro de saída da porta serial no Cloud Logging está desativado. Se o registro de saída da porta serial no Cloud Logging não for restrito para sua organização , você poderá ativá-lo ou desativá-lo para projetos e instâncias de VM individuais definindo a entrada de metadados serial-port-logging-enable como true ou false .

Se você definir uma entrada de metadados para todo o projeto, todas as instâncias de VM no projeto herdarão essa configuração implicitamente. Se você definir uma entrada de metadados de instância, a entrada de metadados será habilitada somente para essa VM, independentemente da configuração do projeto.

Você pode definir uma entrada de metadados usando o console do Google Cloud, a CLI gcloud ou a API Compute Engine. Para obter mais informações, consulte Configurando metadados personalizados .

Por exemplo, o seguinte comando da CLI gcloud permite o registro de saída da porta serial no Cloud Logging para seu projeto:

gcloud compute project-info add-metadata \
    --metadata serial-port-logging-enable=true

Da mesma forma, o seguinte comando da CLI gcloud ativa o registro de saída da porta serial no Cloud Logging para uma instância específica:

gcloud compute instances add-metadata INSTANCE_NAME \
    --metadata serial-port-logging-enable=true

Para desativar o registro de saída da porta serial no Cloud Logging, defina serial-port-logging-enable como false :

gcloud compute instances add-metadata INSTANCE_NAME \
    --metadata serial-port-logging-enable=false

Filtros de exclusão

No Cloud Logging, você pode criar um filtro de exclusão para remover entradas específicas da porta serial do Logs Explorer. Por exemplo, com uma entrada de metadados para todo o projeto definida como serial-port-logging-enable=true , você pode desabilitar o registro de saída da porta serial para instâncias de VM específicas usando um filtro avançado:

logName = "projects/PROJECT_ID/logs/serialconsole.googleapis.com%2Fserial_port_1_output"
resource.type = "gce_instance"
resource.labels.instance_id != "INSTANCE_1_ID"
resource.labels.instance_id != "INSTANCE_2_ID"

Definir uma política da organização

Você pode desativar o registro de saída da porta serial no Cloud Logging para toda a organização definindo uma política da organização , que restringe determinadas configurações de Google Cloud recursos. Especificamente, defina a seguinte restrição booleana: constraints/compute.disableSerialPortLogging . Para obter mais informações, consulte Criando e gerenciando políticas da organização .

Desabilitar o log da porta serial definindo constraints/compute.disableSerialPortLogging como true não é retroativo. As instâncias de VM existentes com uma entrada de metadados que permite a geração de registros de porta serial no Cloud Logging continuam registrando no Cloud Logging, a menos que você redefina os metadados dessas instâncias.

Depois de definir essa restrição da organização como true , não será possível definir metadados de instância ou projeto para ativar o registro de saída da porta serial no Cloud Logging para qualquer instância na organização.

Visualizando a saída da porta serial

Console

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

    Acesse a página de instâncias de VM

  2. Selecione a instância de VM para a qual você deseja visualizar a saída da porta serial.

  3. Em Logs , clique em Porta serial 1 , 2 , 3 ou 4 . As entidades de nível de sistema normalmente usam a primeira porta serial (porta 1), que também é conhecida como console serial .

gcloud

Use o comando gcloud compute instances get-serial-port-output .

gcloud compute instances get-serial-port-output INSTANCE_NAME \
  --port PORT \
  --start START \
  --zone ZONE

Substitua o seguinte:

  • INSTANCE_NAME : o nome da instância.
  • PORT : o número da porta ( 1 , 2 , 3 ou 4 ) para a qual você deseja visualizar a saída. As entidades de nível de sistema normalmente usam a primeira porta serial (porta 1), que também é conhecida como console serial. Por padrão, a saída da primeira porta serial é retornada.
  • START : o índice de bytes (baseado em zero) do primeiro byte que você deseja retornar. Use esse sinalizador se quiser continuar obtendo a saída de uma solicitação anterior que foi muito longa para ser retornada em uma tentativa.
  • ZONE : a zona da sua instância.

DESCANSAR

Na API, crie uma solicitação get para o método instances.getSerialPortOutput .

GET https://compute.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/serialPort

Registro em nuvem

  1. Ative o registro da porta serial no Cloud Logging .
  2. Acesse a página de instâncias de VM .

    Acesse a página de instâncias de VM

  3. Selecione a instância de VM para a qual você deseja visualizar os logs do agente de inicialização.

  4. Em Logs , clique em Cloud Logging para visualizar os logs do Cloud Logging.

    Clique em Cloud Logging para visualizar o Cloud Logging registros.

  5. Expanda o menu suspenso Todos os logs e selecione a saída da porta serial que deseja ver. As entidades de nível de sistema normalmente usam a primeira porta serial (porta 1), que também é conhecida como console serial. Se uma porta não aparecer no menu suspenso, ela não terá saída disponível.

  6. Opcionalmente, expanda o menu suspenso Qualquer nível de log para silenciar os logs que estão abaixo do nível de gravidade que você deseja ver. Por exemplo, se você selecionar o nível de log "Info", você silenciará as entradas de log "Debug". As entradas de "depuração" normalmente são usadas apenas pelo BIOS no momento da inicialização.

Para obter mais informações, incluindo informações sobre filtragem, consulte Usando o Logs Explorer .

Tratamento de caracteres não UTF8

A saída da porta serial é escapada usando o método CHexEscape() da biblioteca Abseil C++ de código aberto, portanto, caracteres não UTF8 são codificados como strings hexadecimais. Você pode usar o método CUnescape() correspondente para obter a saída exata que foi enviada para a porta serial.

Erros comuns de porta serial

A seguir estão exemplos de erros comuns que você pode encontrar na saída da porta serial.

Erro ao configurar IPv6

O seguinte erro pode ocorrer nos logs do diário do sistema operacional quando o IPv6 não está configurado:

ERROR addresses.go:301 Error configuring IPv6: Internet Systems Consortium DHCP Client 4.2.5

Ignore este erro. Este erro não afeta sua VM.