Visualização da saída da porta de série

Uma instância de máquina virtual (VM) tem quatro portas de série virtuais. O sistema operativo, o BIOS e outras entidades ao nível do sistema da instância escrevem frequentemente a saída nas portas série, o que torna a saída da porta série útil para resolver problemas de falhas de sistema, inícios falhados, problemas de arranque ou problemas de encerramento.

Esta página descreve métodos para ver a saída da porta de série, incluindo a utilização do Cloud Logging para reter a saída da porta de série mesmo depois de uma instância ser parada ou eliminada. Se precisar de enviar comandos para uma porta de série enquanto uma instância está em execução, consulte o artigo Interagir com a consola de série.

A saída da porta série é acessível através da Google Cloud consola, da CLI gcloud e do REST, mas apenas enquanto a instância de VM estiver em execução. Os registos estão limitados ao 1 MB de saída mais recente por porta.

Se ativar o registo de saída da porta série, o Cloud Logging oferece os primeiros 50 gibibytes (GiB) por mês de registo gratuitamente e conserva os registos durante 30 dias.

Antes de começar

  • Se quiser registar a saída da porta série no Cloud Logging, familiarize-se com o Cloud Logging.
  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Google Cloud 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 Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    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. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

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

Ativar e desativar o registo de saída da porta série

Pode controlar se as suas instâncias enviam a saída da porta série para o Cloud Logging definindo metadados ao nível do projeto ou da instância. Também pode desativar a funcionalidade para todos os utilizadores na sua organização definindo uma política organizacional.

Definir metadados de projetos e instâncias

Por predefinição, o registo de saída da porta de série no Cloud Logging está desativado. Se o registo de saída da porta série no Cloud Logging não estiver restringido para a sua organização, pode ativá-lo ou desativá-lo para projetos e instâncias de VMs individuais definindo a entrada de metadados serial-port-logging-enable como true ou false.

Se definir uma entrada de metadados ao nível do projeto, todas as instâncias de VM no projeto herdam essa definição implicitamente. Se definir uma entrada de metadados da instância, a entrada de metadados é ativada apenas para essa VM, independentemente da definição do projeto.

Pode definir uma entrada de metadados através da Google Cloud consola, da CLI gcloud ou da API Compute Engine. Para mais informações, consulte o artigo Definir metadados personalizados.

Por exemplo, o seguinte comando da CLI gcloud ativa o registo de saída da porta série no Cloud Logging para o 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 registo da saída da porta de série 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 registo de saída da porta de série 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, pode criar um filtro de exclusão para remover entradas específicas da porta de série do Explorador de registos. Por exemplo, com uma entrada de metadados ao nível do projeto definida como serial-port-logging-enable=true, pode desativar o registo de saída da porta de série para instâncias de VM específicas através de 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

Pode desativar o registo da saída da porta série no Cloud Logging para toda a sua organização definindo uma política da organização, que restringe determinadas configurações de recursos. Google Cloud Especificamente, defina a seguinte restrição booleana: constraints/compute.disableSerialPortLogging. Para mais informações, consulte o artigo Criar e gerir políticas de organização.

A desativação do registo da porta de série através da definição de constraints/compute.disableSerialPortLogging como true não é retroativa. As instâncias de VM existentes com uma entrada de metadados que ativa o registo do porta série no Cloud Logging continuam a registar no Cloud Logging, a menos que reponha os metadados dessas instâncias.

Depois de definir esta restrição da organização como true, não pode definir metadados de instâncias ou de projetos para ativar o registo de saída da porta série no Cloud Logging para quaisquer instâncias na organização.

Visualização da saída da porta de série

Consola

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

    Aceda à página de instâncias de VM

  2. Selecione a instância de VM para a qual quer ver o resultado da porta série.

  3. Em Registos, clique em Porta de série 1, 2, 3 ou 4. Normalmente, as entidades ao nível do sistema usam a primeira porta de série (porta 1), que também é conhecida como a consola de série.

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 quer ver a saída. As entidades ao nível do sistema usam normalmente a primeira porta de série (porta 1), que também é conhecida como a consola de série. Por predefinição, é devolvida a saída da primeira porta série.
  • START: o índice de bytes (com base em zero) do primeiro byte que quer que seja devolvido. Use esta flag se quiser continuar a receber o resultado de um pedido anterior que era demasiado longo para ser devolvido numa tentativa.
  • ZONE: a zona da sua instância.

REST

Na API, crie um pedido get para o método instances.getSerialPortOutput.

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

Cloud Logging

  1. Ative o registo de portas de série no Cloud Logging.
  2. Aceda à página Instâncias de VM.

    Aceda à página de instâncias de VM

  3. Selecione a instância de VM para a qual quer ver os registos do agente de arranque.

  4. Em Registos, clique em Cloud Logging para ver os registos do Cloud Logging.

    Clique em Cloud Logging para ver os registos do Cloud Logging.

Para mais informações, incluindo informações sobre a filtragem, consulte o artigo Usar o Explorador de registos.

Processamento de carateres não UTF8

A saída da porta de série é escapada através do método CHexEscape() da biblioteca C++ de código aberto Abseil, pelo que os carateres não UTF8 são codificados como strings hexadecimais. Pode usar o método CUnescape() correspondente para obter o resultado exato que foi enviado para a porta série.

Erros comuns de portas de série

Seguem-se exemplos de erros comuns que pode encontrar na saída da porta série.

Erro ao configurar o IPv6

O seguinte erro pode ocorrer nos registos do diário do SO 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 a sua VM.