Como visualizar a saída da porta serial

Uma instância de máquina virtual tem quatro portas seriais virtuais. O sistema operacional da instância, o BIOS e outras entidades em nível de sistema frequentemente gravam a saída nas portas seriais, o que os torna úteis para a solucionar falhas, inicializações com falha, problemas de inicialização ou problemas de desativação.

Nesta página, descrevemos os métodos para visualizar a saída da porta serial, incluindo o uso do Stackdriver Logging para reter a saída da porta serial mesmo depois que uma instância for interrompida ou excluída. Se você precisa enviar comandos para uma porta serial enquanto uma instância estiver em execução, consulte Como interagir com o console serial.

A saída da porta serial será acessível por meio do Console do GCP, da ferramenta gcloud e da API somente quando a instância de VM estiver em execução e os logs tiverem no máximo 1 MB mais recente da saída por porta.

Se você ativar a geração de registros de saída da porta serial para o Stackdriver, os registros serão retidos por 30 dias por padrão, e o Stackdriver fornecerá os primeiros 50 GB de registros por mês gratuitamente. Consulte Preços do Stackdriver para ver mais detalhes.

Antes de começar

Como ativar e desativar o registro da porta serial para o Stackdriver

Para ativar esse recurso, defina o atributo de metadados serial-port-logging-enable como true. Quando esses metadados de chave-valor são definidos no nível do projeto, o registro de saída da porta serial para o Stackdriver fica ativado para todas as instâncias no projeto. Quando definido no nível da instância da VM, ele fica ativado apenas para essa VM, independentemente da configuração do projeto.

É possível definir metadados personalizados por meio do Console do Google Cloud Platform, da ferramenta gcloud ou da API. Consulte Como definir metadados personalizados para mais detalhes.

Por exemplo, você pode usar o seguinte comando do gcloud para ativar o registro de saída da porta serial do Stackdriver em uma instância existente.

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

Para desativar o registro de saída da porta serial para o Stackdriver, defina serial-port-logging-enable como "false".

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

Se preferir, crie criar um filtro de exclusão no Stackdriver para remover entradas de porta serial específicas do visualizador de registros. Por exemplo, com serial-port-logging-enable=true no nível do projeto, você poderá desativar a criação de registros de saída da porta serial para instâncias de VMs específicas com um filtro avançado, como o seguinte.

logName = "projects/google.com:serial-output-logging-demo/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]"

Como visualizar a saída da porta serial

Console

  1. Acesse a página "Instâncias de VMs".

    Acessar a página "Instâncias de VMs"

  2. Selecione a instância de VM para visualizar a saída da porta serial.
  3. Em Registros, clique em Porta serial 1, 2, 3 ou 4. As entidades no nível do sistema geralmente usam a primeira porta serial (porta 1), que também é conhecida como console serial.

gcloud

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

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

em que:

  • [INSTANCE_NAME] é o nome da instância;
  • [PORT] é o número da porta (1, 2, 3 ou 4) de que você quer visualizar a saída. As entidades no nível do sistema geralmente 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] especifica o índice de bytes (base zero) do primeiro byte que você quer retornar. Use essa sinalização se quiser continuar recebendo a saída de uma solicitação anterior que era longa demais para ser retornada em uma tentativa.

API

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

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

Stackdriver

  1. Ative o registro da porta serial para o Stackdriver.
  2. Acesse a página "Instâncias de VMs".

    Acessar a página "Instâncias de VMs"

  3. Selecione a instância de VM em que você quer ver os registros do agente de inicialização.
  4. Em Registros, clique em Stackdriver Logging para ver os registros do Stackdriver.

  5. Expanda o menu suspenso Todos os registros e selecione a saída da porta serial que você quer ver. As entidades no nível do sistema geralmente usam a primeira porta serial (porta 1), que também é conhecida como console serial. Se uma porta não for exibida no menu suspenso, ela não terá saída disponível.

  6. Consulte a documentação do Stackdriver em Como visualizar registros para mais detalhes, incluindo filtros básicos e avançados.

Como manipular caracteres não UTF8

A saída da porta serial é marcada com escape usando o método de código aberto CHexEscape() da biblioteca Abseil do C++. Portanto, os caracteres não UTF8 são codificados como sequências hexadecimais. É possível usar o método CUnescape() correspondente para ver a saída exata que foi emitida para a porta serial.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Compute Engine