Un'istanza di una macchina virtuale (VM) ha quattro porte seriali virtuali. Il sistema operativo, il BIOS e altre entità a livello di sistema dell'istanza spesso scrivono l'output sulle porte seriali, il che rende l'output della porta seriale utile per la risoluzione di 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 di Cloud Logging per conservare l'output della porta seriale anche dopo l'interruzione o l'eliminazione di un'istanza. Se devi inviare comandi a una porta seriale mentre un'istanza è in esecuzione, consulta Interazione con la console seriale.
L'output della porta seriale è accessibile tramite la console Google Cloud, la gcloud CLI e REST, ma solo mentre l'istanza VM è in esecuzione. I log sono limitati all'1 MB di output più recente per porta.
Se attivi la registrazione dell'output della porta seriale, Cloud Logging fornisce gratuitamente i primi 50 gibibyte (GiB) di log al mese e conserva i log per 30 giorni.
Prima di iniziare
- Se vuoi registrare l'output della porta seriale in Cloud Logging, familiarizza con Cloud Logging.
-
Se non l'hai ancora 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 autenticarti su Compute Engine selezionando una delle seguenti opzioni:
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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
Nella console Google Cloud, vai alla pagina Istanze VM.
Seleziona l'istanza VM per la quale vuoi visualizzare l'output della porta seriale.
In Log, fai clic su Porta seriale 1, 2, 3 o 4. Le entità a livello di sistema in genere utilizzano la prima porta seriale (porta 1), che è nota anche come console seriale.
INSTANCE_NAME
: il nome dell'istanza.PORT
: il numero della porta (1
,2
,3
o4
) per la quale vuoi visualizzare l'output. Le entità a livello di sistema in genere utilizzano la prima porta seriale (porta 1), nota anche come console seriale. 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.- Abilita il logging della porta seriale in Cloud Logging.
Vai alla pagina Istanze VM.
Seleziona l'istanza VM per cui vuoi visualizzare i log dell'agente di avvio.
In Log, fai clic su Cloud Logging per visualizzare i log di Cloud Logging.
Espandi il menu a discesa Tutti i log e seleziona l'output della porta seriale che vuoi visualizzare. Le entità a livello di sistema in genere utilizzano la prima porta seriale (porta 1), nota anche come console seriale. Se una porta non viene visualizzata nel menu a discesa, significa che non ha output disponibili.
Se vuoi, espandi il menu a discesa Qualsiasi livello di log per disattivare l'audio dei 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". Le voci "Debug" vengono in genere utilizzate solo dal BIOS all'avvio.
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, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Abilitazione e disattivazione del logging dell'output della porta seriale
Puoi controllare se le istanze inviano l'output della porta seriale a Cloud Logging impostando 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 è limitato per la tua organizzazione, puoi attivarlo o disattivarlo per i progetti e per le singole VM istanze impostando la voce dei metadati
serial-port-logging-enable
sutrue
ofalse
.Se imposti una voce di metadati a livello di progetto, tutte le istanze VM del progetto ereditano implicitamente l'impostazione. Se imposti una voce di metadati dell'istanza, la voce di metadati viene attivata 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, consulta Impostare metadati personalizzati.
Ad esempio, il seguente comando gcloud CLI attiva il logging dell'output della porta seriale in Cloud Logging per il tuo progetto:
gcloud compute project-info add-metadata \ --metadata serial-port-logging-enable=true
Analogamente, il seguente comando dell'interfaccia a riga di comando gcloud CLI attiva il logging dell'output della porta seriale in Cloud Logging per un'istanza specifica:
gcloud compute instances add-metadata INSTANCE_NAME \ --metadata serial-port-logging-enable=true
Per disattivare il logging dell'output della porta seriale in Cloud Logging, imposta
serial-port-logging-enable
sufalse
: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 dei metadati a livello di progetto impostata su
serial-port-logging-enable=true
, puoi disattivare il logging dell'output della porta seriale 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 disattivare il logging dell'output della porta seriale in Cloud Logging per l'intera organizzazione impostando un Criterio dell'organizzazione, che limita 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 impostando
constraints/compute.disableSerialPortLogging
sutrue
non è retroattiva. Le istanze VM esistenti con una voce di metadati che abilita il logging della porta seriale in Cloud Logging continuano a generare log in Cloud Logging, a meno che non reinizializzi i metadati per queste istanze.Dopo aver impostato questo vincolo dell'organizzazione su
true
, non puoi impostare i metadati dell'istanza o del progetto per abilitare il logging dell'output della porta seriale in Cloud Logging per nessuna istanza all'interno dell'organizzazione.Visualizzazione dell'output della porta seriale
Console
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:
REST
Nell'API, crea una richiesta
get
al metodoinstances.getSerialPortOutput
.GET https://compute.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/serialPort
Cloud Logging
Per ulteriori informazioni, tra cui quelle sui filtri, consulta Utilizzare Esplora log.
Gestione dei caratteri non UTF-8
L'output della porta seriale viene sottoposto a escape utilizzando il
CHexEscape()
metodo della libreria C++ open source Abseil, pertanto i caratteri non UTF-8 vengono codificati come stringhe esadecimali. Puoi utilizzare il corrispondente metodoCUnescape()
per ottenere l'output esatto inviato alla porta seriale.Errori comuni della porta seriale
Di seguito sono riportati alcuni esempi di errori comuni che potresti riscontrare nell'output della porta seriale.
Errore durante la configurazione di IPv6
Nei log del diario del sistema operativo potrebbe verificarsi il seguente errore se IPv6 non è configurato:
ERROR addresses.go:301 Error configuring IPv6: Internet Systems Consortium DHCP Client 4.2.5
Ignora questo errore. Questo errore non influisce sulla VM.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-12-19 UTC.
-