Visualizzazione dell'output della porta seriale


Un'istanza di una macchina virtuale (VM) ha quattro porte seriali virtuali. Lo spazio di archiviazione dell'istanza sistema operativo, BIOS e altre entità a livello di sistema spesso scrivono l'output le porte seriali, il che rende l'output della porta seriale utile per la risoluzione dei problemi arresti anomali, avvii non riusciti, problemi di avvio o di arresto.

Questa pagina descrive i metodi per visualizzare l'output della porta seriale, incluso l'utilizzo Cloud Logging per mantenere l'output della porta seriale anche dopo che un'istanza viene interrotto o eliminato. Se devi inviare comandi a una porta seriale mentre è in esecuzione l'istanza, consulta Interazione con la console seriale.

L'output della porta seriale è accessibile tramite la console Google Cloud, gcloud CLI e REST, ma solo mentre l'istanza VM in esecuzione. I log sono limitati alla dimensione più recente di 1 MB di output per porta.

Se abiliti il logging dell'output della porta seriale, Cloud Logging fornisce la prima 50 gibibyte (GiB) al mese di logging gratuitamente e conserva i log per 30 giorni.

Prima di iniziare

  • Se vuoi registrare l'output della porta seriale in Cloud Logging, con Cloud Logging.
  • Se non l'hai già fatto, configura l'autenticazione. L'autenticazione è la procedura mediante la quale la tua identità viene verificata per l'accesso alle API e ai servizi Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione Compute Engine come segue.

    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

      Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.

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

        gcloud init

      Per ulteriori informazioni, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Attivazione e disattivazione del logging degli output delle porte seriali

Puoi controllare se le istanze inviano l'output della porta seriale Cloud Logging di impostare i metadati a livello di progetto o istanza. Puoi anche disattivare la funzionalità per tutti gli utenti della tua organizzazione impostando un criterio dell'organizzazione.

Impostazione dei metadati di progetto e istanza

Per impostazione predefinita, il logging dell'output della porta seriale in Cloud Logging è disabilitato. Se il logging dell'output della porta seriale in Cloud Logging non è limitati per la tua organizzazione, puoi abilitarlo o disabilitarlo per progetti e singole VM. di istanze VM impostando la voce di metadati serial-port-logging-enable su true o false.

Se imposti una voce di metadati a livello di progetto, tutte le istanze VM nel progetto ereditarla in modo implicito. Se imposti una voce di metadati dell'istanza, la voce di metadati è abilitata solo per quella VM, indipendentemente dall'impostazione del progetto.

Puoi impostare una voce di metadati utilizzando la console Google Cloud, gcloud CLI o l'API Compute Engine. Per ulteriori informazioni, vedi Impostazione di metadati personalizzati.

Ad esempio, il seguente comando gcloud CLI abilita la porta seriale output logging in Cloud Logging per il tuo progetto:

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

Analogamente, il seguente comando gcloud CLI abilita il logging dell'output della porta seriale a Cloud Logging per un'istanza specifica:

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

Per disabilitare il logging dell'output della porta seriale in Cloud Logging, imposta Da serial-port-logging-enable a false:

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

Filtri di esclusione

In Cloud Logging, puoi creare un filtro di esclusione per rimuovere voci specifiche della porta seriale da Esplora log. Ad esempio, con una voce di metadati a livello di progetto impostata su serial-port-logging-enable=true, puoi disabilitare il logging dell'output delle porte seriali per istanze VM specifiche utilizzando un filtro avanzato:

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"

Impostazione di un criterio dell'organizzazione

Puoi disabilitare il logging dell'output della porta seriale in Cloud Logging per l'intera dell'organizzazione impostando un Criterio dell'organizzazione, che vincolano determinate configurazioni delle risorse Google Cloud. In particolare, imposta il seguente vincolo booleano: constraints/compute.disableSerialPortLogging. Per scoprire di più, consulta la sezione Creare e gestire i criteri dell'organizzazione.

La disattivazione della registrazione della porta seriale impostandoconstraints/compute.disableSerialPortLogging su true non è retroattiva. Istanze VM esistenti con una voce di metadati che abilita il logging delle porte seriali in Cloud Logging continua per accedere a Cloud Logging a meno che non reimposti i metadati a queste istanze.

Dopo aver impostato questo vincolo dell'organizzazione su true, non puoi impostare istanza o di metadati di progetto per abilitare il logging dell'output della porta seriale in Cloud Logging per a qualsiasi istanza all'interno dell'organizzazione.

Visualizzazione dell'output della porta seriale

Console

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai alla pagina Istanze VM

  2. Seleziona l'istanza VM per la quale vuoi visualizzare l'output della porta seriale.

  3. In Log, fai clic su Porta seriale 1, 2, 3 o 4. Le entità a livello di sistema di solito usano la prima porta seriale (porta 1), è anche noto come console seriale.

gcloud

Utilizza il comando gcloud compute instances get-serial-port-output.

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

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza.
  • PORT: il numero della porta (1, 2, 3 oppure 4) per il quale vuoi visualizzare l'output. Di solito, le entità a livello di sistema utilizza la prima porta seriale (porta 1), nota anche come Google Cloud. Per impostazione predefinita, viene restituito l'output della prima porta seriale.
  • START: l'indice di byte (in base zero) del primo byte che vuoi restituire. Utilizza questo flag se vuoi continuare a ricevere l'output di una richiesta precedente troppo lunga per essere restituita in un solo tentativo.
  • ZONE: la zona dell'istanza.

REST

Nell'API, crea una richiesta get all'evento Metodo instances.getSerialPortOutput.

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

Cloud Logging

  1. Abilita il logging delle porte seriali in Cloud Logging.
  2. Vai alla pagina Istanze VM.

    Vai alla pagina Istanze VM

  3. Seleziona l'istanza VM per la quale vuoi visualizzare i log dell'agente di avvio.

  4. In Log, fai clic su Cloud Logging per visualizzare i log di Cloud Logging.

    Fai clic su Cloud Logging per visualizzare i log di Cloud Logging.

  5. Espandi il menu a discesa Tutti i log e seleziona l'output della porta seriale che vuoi vedere. Le entità a livello di sistema di solito utilizzano la prima porta seriale (porta 1), anche nota come console seriale. Se La porta non viene visualizzata nel menu a discesa e non ha output disponibili.

  6. Se vuoi, espandi il menu a discesa Qualsiasi livello di log per disattivare i log. inferiori al livello di gravità che vuoi visualizzare. Ad esempio, se selezioni il livello di log "Informazioni", verranno disattivate le voci di log "Debug". "Debug" vengono in genere utilizzate solo dal BIOS al momento dell'avvio.

Per ulteriori informazioni, incluse informazioni sui filtri, consulta: Utilizzo di Esplora log.

Gestione dei caratteri non UTF8

L'output della porta seriale viene sottoposto a escape utilizzando il codice open source Libreria C++ di Abseil CHexEscape(), quindi i caratteri non UTF8 vengono codificati come stringhe esadecimali. Puoi utilizzare il corrispondente metodo CUnescape() per ottenere l'output esatto inviato alla porta seriale.

Errori comuni delle porte seriali

Di seguito sono riportati alcuni esempi di errori comuni che potresti riscontrare nell'output della porta seriale.

Errore di configurazione IPv6

È possibile che si verifichi il seguente errore nei log del journal del sistema operativo quando IPv6 non è configurato:

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

Ignora questo errore. Questo errore non interessa la tua VM.