Questo documento descrive come visualizzare e leggere le voci del log delle modifiche dello stato di integrità di una VM in un gruppo di istanze gestite (MIG) e fornisce specifici casi d'uso per aiutarti a monitorare le VM nel gruppo.
Se hai configurato il controllo di integrità basato sull'applicazione per il gruppo di istanze gestite, Compute Engine scrive una voce di log ogni volta che cambia lo stato di integrità di un'istanza gestita, ad esempio quando l'istanza passa dallo stato HEALTHY
a UNHEALTHY
. Queste voci di log ti consentono di monitorare e eseguire il debug dello stato di integrità di ogni istanza gestita, nonché dello stato di integrità complessivo del gruppo di istanze gestite.
Prima di iniziare
- Consulta Configurare i controlli di integrità e la riparazione automatica.
-
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.
Vai a Esplora log nella console Google Cloud.
Imposta i seguenti parametri di ricerca:
- Risorsa: Gestore di gruppi di istanze GCE
- Nome del log:
instance_group_manager_events
In alternativa, puoi copiare la seguente query nel generatore di query.
resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:*
Puoi restringere la ricerca a un gruppo di istanze gestite specifico utilizzando la seguente query.
resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND resource.labels.instance_group_manager_name="MIG_NAME"
Fai clic su Esegui query. I log verranno visualizzati in Risultati delle query.
PROJECT_ID
: il tuo ID progetto.MIG_NAME
: il gruppo di istanze gestite per cui vuoi visualizzare i log delle modifiche dello stato di integrità.OAUTH2_TOKEN
: il token di accesso della tua applicazione. Per i test locali, puoi utilizzare il comandogcloud auth print-access-token
per generare un token.PROJECT_ID
: il tuo ID progetto.MIG_NAME
: il gruppo di istanze gestite per cui vuoi visualizzare i log delle modifiche dello stato di integrità.Vai a Esplora log nella console Google Cloud.
Copia la seguente query nel generatore di query.
resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND labels."compute.googleapis.com/instance_name"="INSTANCE_NAME"
Fai clic su Esegui query.
PROJECT_ID
: il tuo ID progetto.INSTANCE_NAME
: l'istanza gestita per la quale vuoi visualizzare i log delle modifiche dello stato di salute.OAUTH2_TOKEN
: il token di accesso della tua applicazione. Per i test locali, puoi utilizzare il comandogcloud auth print-access-token
per generare un token.PROJECT_ID
: il tuo ID progetto.INSTANCE_NAME
: l'istanza gestita per la quale vuoi visualizzare i log delle modifiche dello stato di salute.- Informazioni generali mostrate nella maggior parte dei log, come gravità, ID progetto, nome e ID MIG, numero di progetto, timestamp e così via.
- Campi specifici per lo stato di salute dell'istanza.
- Scopri la frequenza con cui una determinata istanza VM ha modificato gli stati di integrità nel tempo.
- Valuta la frequenza con cui un gruppo di istanze gestite ha registrato variazioni dello stato di integrità delle sue istanze.
- Identifica le istanze VM problematiche che spesso diventano
UNHEALTHY
. - Scopri cosa ha causato un tentativo di riparazione automatica.
- Scopri se un tentativo di riparazione automatica è andato a buon fine per un'istanza VM specifica.
- Ottimizza la configurazione del controllo di integrità per un'applicazione determinando un ritardo iniziale appropriato per la riparazione automatica.
Vai a Esplora log nella console Google Cloud.
Inserisci la seguente query in Query Builder, utilizzando l'ID progetto e il nome dell'istanza.
resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND labels."compute.googleapis.com/instance_name"="INSTANCE_NAME"
Nella sezione Risultati delle query, fai clic su Azioni e poi su Crea metrica.
Nella pagina Crea metrica dei log:
- Imposta il Tipo di metrica su Contatore.
Inserisci un Nome metrica di log, ad esempio
health-mig-xyzq
.La sezione Crea filtro mostra la query di log di Esplora log. Puoi anche configurare il filtro della metrica in modo da tenere conto solo degli stati di interruzione, ad esempio
UNHEALTHY
eTIMEOUT
, aggiungendoseverity>=WARNING
al filtro.In Etichette, fai clic su Aggiungi etichetta.
Inserisci un nome per l'etichetta, ad esempio
health_state
.Imposta Tipo di etichetta su
STRING
.Imposta Nome campo su
jsonPayload.instanceHealthStateChange.detailedHealthState
. In questo modo potrai distinguere tra le diverse modifiche dello stato di salute.Fai clic su Fine per aggiungere l'etichetta.
Fai clic su Crea metrica.
Vai alla pagina Metriche basate su log e trovare la metrica appena creata.
Fai clic sul menu more_vert nella riga della metrica e seleziona Visualizza in Esplora metriche. Lo esploratore delle metriche si apre e mostra il grafico che rappresenta le variazioni dello stato di integrità dell'istanza VM specificata nella query.
Vai a Esplora log nella console Google Cloud.
Inserisci la seguente query nel generatore di query, utilizzando il tuo ID progetto e il nome del gruppo di istanze gestite.
resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND resource.labels.instance_group_manager_name="MIG_NAME"
Nella sezione Risultati delle query, fai clic su Azioni e poi su Crea metrica.
Nella pagina Crea metrica dei log:
- Imposta il Tipo di metrica su Contatore.
- Inserisci un Nome metrica di log, ad esempio
health-mig-xyzq
. - In Etichette, fai clic su Aggiungi etichetta.
- Inserisci un nome per l'etichetta, ad esempio
health_state
. - Imposta Tipo di etichetta su
STRING
. - Imposta Nome campo su
jsonPayload.instanceHealthStateChange.detailedHealthState
. In questo modo, puoi distinguere tra diverse variazioni dello stato di salute. - Fai clic su Fine per aggiungere l'etichetta.
- Fai clic su Crea metrica.
Vai alla pagina Metriche basate su log e trovare la metrica appena creata.
Fai clic sul menu more_vert nella riga della metrica e seleziona Visualizza in Esplora metriche. Lo esploratore delle metriche si apre e mostra il grafico che rappresenta le variazioni dello stato di salute di tutte le istanze VM nel gruppo di istanze gestite specificato nella query.
Vai a Esplora log nella console Google Cloud.
Inserisci la seguente query nel generatore di query, utilizzando il tuo ID progetto e il nome del gruppo di istanze gestite.
resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND resource.labels.instance_group_manager_name="MIG_NAME"
Nella sezione Risultati delle query, fai clic su Azioni e poi su Crea metrica.
Nella pagina Crea metrica dei log:
- Imposta il Tipo di metrica su Contatore.
- Inserisci un Nome metrica di log, ad esempio
health-mig-xyzq
. - In Etichette, fai clic su Aggiungi etichetta.
- Inserisci un nome per l'etichetta, ad esempio
health_state
. - Imposta Tipo di etichetta su
STRING
. - Imposta Nome campo su
jsonPayload.instanceHealthStateChange.detailedHealthState
. In questo modo, puoi distinguere tra diverse variazioni dello stato di salute. - Fai clic su Fine per aggiungere l'etichetta.
- Analogamente, aggiungi una seconda etichetta, ad esempio
instance
, con Nome campo impostato sujsonPayload.instanceHealthStateChange.instance
. - Fai clic su Crea metrica.
Vai alla pagina Metriche basate su log e trovare la metrica appena creata.
Fai clic sul menu more_vert nella riga della metrica e seleziona Visualizza in Esplora metriche. Lo esploratore delle metriche si apre e mostra il grafico che rappresenta le variazioni dello stato di salute di tutte le istanze VM nel gruppo di istanze gestite specificato nella query.
Imposta Raggruppa per su
instance
per visualizzare il numero aggregato di modifiche dello stato di salute per ogni istanza.Vai a Esplora log nella console Google Cloud.
Inserisci la seguente query in Query Builder, utilizzando l'ID progetto e il nome dell'istanza.
resource.type="gce_instance" AND logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event" AND protoPayload.methodName="compute.instances.repair.recreateInstance" AND protoPayload.resourceName=~"/INSTANCE_NAME$"
Fai clic su Esegui query. In Risultati query vengono mostrati tutti i tentativi di riparazione automatica sulla VM con il motivo della riparazione automatica in
protoPayload.status.message
.Vai a Esplora log nella console Google Cloud.
Inserisci la seguente query in Query Builder, utilizzando l'ID progetto e il nome dell'istanza.
(resource.type="gce_instance" AND logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event" AND protoPayload.methodName="compute.instances.repair.recreateInstance" AND protoPayload.resourceName=~"/INSTANCE_NAME$") OR (resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND labels."compute.googleapis.com/instance_name"="INSTANCE_NAME")
La prima parte della query mostra le operazioni di riparazione dell'istanza, che indicano che la ricreazione è stata attivata dalla riparazione automatica del gruppo di istanze gestite per ripristinare l'integrità dell'istanza. La seconda parte della query mostra tutte le modifiche dello stato di integrità dell'istanza VM.
In Risultati della query, l'evento di modifica dello stato di salute con
detailedHealthState
impostato suHEALTHY
poco dopo un'operazione di riparazione indica che il tentativo di riparazione automatica è riuscito.Vai a Esplora log nella console Google Cloud.
Inserisci la seguente query in Query Builder, utilizzando l'ID progetto e il nome dell'istanza.
(resource.type="gce_instance" AND logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" AND protoPayload.request.@type="type.googleapis.com/compute.instances.insert" AND operation.last="true" AND protoPayload.resourceName=~"/INSTANCE_NAME$") OR (resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND labels."compute.googleapis.com/instance_name"="INSTANCE_NAME")
La prima parte della query mostra il completamento dell'operazione di inserimento della VM. La seconda parte mostra tutte le modifiche dello stato di salute della VM.
In Risultati della query, il timestamp dell'evento di modifica dello stato di salute con
detailedHealthState
impostato suHEALTHY
poco dopo l'operazione di inserimento rivela il tempo necessario per l'avvio di questa VM.Ripeti i passaggi per altre VM per ottenere un valore approssimativo migliore del parametro del ritardo iniziale.
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.
Prezzi
Compute Engine utilizza Cloud Logging per generare voci di log per le modifiche dello stato di salute delle istanze gestite. Cloud Logging offre un'allocazione gratuita al mese, dopodiché le voci di log vengono calcolate in base al volume di dati. Per ulteriori informazioni, consulta il riepilogo dei prezzi di Cloud Logging.
Per evitare i costi di registrazione, puoi disattivare i log relativi alla modifica dello stato di integrità.
Visualizzazione dei log delle modifiche dello stato di integrità
A condizione che i log di modifica dello stato di integrità rimangano abilitati, Compute Engine scrive una voce di log nei log della piattaforma ogni volta che cambia lo stato di integrità di un'istanza gestita. Puoi visualizzare questi log per un progetto, per un MIG specifico o per un'istanza gestita specifica.
Visualizzazione dei log di un progetto o di un MIG
Per visualizzare le voci di log per un progetto o per un MIG specifico, utilizza la console Google Cloud, gcloud CLI o REST.
Console
gcloud
Utilizza il comando
gcloud logging read
per visualizzare e leggere le voci di log.Per visualizzare tutti i log relativi alla modifica dello stato di salute nel tuo progetto, utilizza il seguente comando:
gcloud logging read 'resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:*'\ --limit 10
Per visualizzare tutti i log delle modifiche dello stato di salute per un gruppo di istanze gestite specifico, utilizza il seguente comando:
gcloud logging read 'resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND resource.labels.instance_group_manager_name="MIG_NAME"' \ --limit 10
Sostituisci quanto segue:
REST
Per visualizzare i log delle modifiche dello stato di salute, effettua una richiesta
POST
al metodoentries.list
.Per visualizzare tutti i log relativi alla modifica dello stato di salute nel tuo progetto, utilizza il seguente comando:
curl -H "Content-Type: application/json" -H "Authorization: Bearer OAUTH2_TOKEN" -X POST -d \ '{"filter": "resource.type=gce_instance_group_manager AND logName=projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events AND jsonPayload.instanceHealthStateChange:*", "orderBy": "timestamp desc", "pageSize": 10, "resourceNames": ["projects/PROJECT_ID"] }' https://logging.googleapis.com/v2/entries:list?alt=json
Per visualizzare i log delle modifiche dello stato di salute per un gruppo di istanze gestite specifico, esegui il seguente comando:
curl -H "Content-Type: application/json" -H "Authorization: Bearer OAUTH2_TOKEN" -X POST -d \ '{"filter": "resource.type=gce_instance_group_manager AND logName=projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events AND jsonPayload.instanceHealthStateChange:* AND resource.labels.instance_group_manager_name=MIG_NAME", "orderBy": "timestamp desc", "pageSize": 10, "resourceNames": ["projects/PROJECT_ID"] }' https://logging.googleapis.com/v2/entries:list?alt=json
Sostituisci quanto segue:
Per ulteriori informazioni su ogni voce di log, consulta Formato delle voci di log.
A seconda che tu voglia archiviare i log, utilizzarli per l'analisi, trasmetterli in streaming ad altre applicazioni o attivare una Cloud Function, puoi esportarli in destinazioni come Cloud Storage, BigQuery o Pub/Sub. Per ulteriori informazioni sull'esportazione dei log, consulta Panoramica delle esportazioni dei log.
Visualizzazione dei log delle modifiche dello stato di integrità per una VM specifica
Per visualizzare le voci di log di un'istanza gestita specifica, utilizza la console Google Cloud, gcloud CLI o REST.
Console
gcloud
Utilizza il comando
gcloud logging read
per visualizzare e leggere le voci di log.Per visualizzare i log delle modifiche dello stato di integrità di un'istanza gestita, utilizza il seguente comando:
gcloud logging read 'resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND labels."compute.googleapis.com/instance_name"="INSTANCE_NAME"' \ --limit 10
Sostituisci quanto segue:
REST
Per visualizzare i log delle modifiche dello stato di integrità di un'istanza gestita, effettua una richiesta
POST
al metodoentries.list
.curl -H "Content-Type: application/json" -H "Authorization: Bearer OAUTH2_TOKEN" -X POST -d \ '{"filter": "resource.type=gce_instance_group_manager AND logName=projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events AND jsonPayload.instanceHealthStateChange:* AND labels.\"compute.googleapis.com/instance_name\"=\"INSTANCE_NAME\"", "orderBy": "timestamp desc", "pageSize": 10, "resourceNames": ["projects/PROJECT_ID"] }' https://logging.googleapis.com/v2/entries:list?alt=json
Sostituisci quanto segue:
Formato delle voci di log
Le voci di log relative alla modifica dello stato di integrità delle istanze contengono informazioni utili per monitorare ed eseguire il debug dello stato delle istanze gestite.
I log vengono scritti nei log della piattaforma con il nome
instance_group_manager_events
. I log della piattaforma ti aiutano a eseguire il debug e a risolvere i problemi.logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events"
Le voci del log delle modifiche dello stato di salute contengono i seguenti tipi di informazioni:
All'interno di ogni voce di log di modifica dello stato di salute, il campo
jsonPayload.instanceHealthStateChange
contiene le seguenti informazioni:Campo Descrizione instance
URL dell'istanza, basato sull'ID progetto e sul nome dell'istanza in formato stringa. instanceWithId
URL dell'istanza, in base al relativo ID progetto e ID istanza numerici. ipAddress
Indirizzo IP dell'istanza, sottoposto a controllo dal controllo di integrità. network
URL della risorsa di rete per questa istanza, basato sull'ID progetto e sul nome della rete in formato stringa. networkWithId
URL della risorsa di rete per questa istanza, in base al relativo ID progetto e ID rete numerici. healthCheck
URL del controllo di integrità dell'integrità configurato per il gruppo di istanze gestite. previousDetailedHealthState
Stato di integrità precedente dell'istanza. Per l'elenco dei possibili stati, consulta Stati di salute. detailedHealthState
Stato di integrità attuale dell'istanza. Per l'elenco dei possibili stati, consulta Stati di salute. notificationTime
Timestamp relativo al momento in cui si è verificata la variazione dello stato di integrità. I campi dei log di tipo booleano vengono visualizzati in genere solo se hanno un valore
true
. Se un campo booleano ha un valorefalse
, il campo viene omesso dal log.La codifica UTF-8 è obbligatoria per i campi di log. I caratteri che non sono caratteri UTF-8 vengono sostituiti con punti interrogativi.
Esempio di voce di log
L'esempio seguente mostra la variazione dello stato di integrità di un'istanza VM da
HEALTHY
aUNHEALTHY
:{ "logName": "projects/my-project/logs/compute.googleapis.com%2Finstance_group_manager_events", "resource": { "type": "gce_instance_group_manager", "labels": { "instance_group_manager_id": "3138236342290985981", "instance_group_manager_name": "my-mig", "project_id": "my-project", "location": "europe-west3" } }, "labels": { "compute.googleapis.com/instance_id": "6498902454451155884", "compute.googleapis.com/instance_location": "europe-west3-a", "compute.googleapis.com/instance_name": "my-mig-a" }, "timestamp": "2019-11-19T15:47:57.127Z", "severity": "INFO", "jsonPayload": { "@type": "type.googleapis.com/compute.InstanceGroupManagerEvent", "instanceHealthStateChange": { "instance": "projects/my-project/zones/europe-west3-a/instances/my-mig-a", "instanceWithId": "projects/123456/zones/europe-west3-a/instances/6498902454451155884", "ipAddress": "10.0.0.4", "network": "projects/my-project/global/networks/net-1", "networkWithId": "projects/123456/global/networks/456", "healthCheck": "projects/my-project/global/healthChecks/my-mig-health-check", "previousDetailedHealthState": "HEALTHY", "detailedHealthState": "UNHEALTHY", "notificationTime": "2019-11-19T15:47:56.444Z" } }, "receiveTimestamp": "2019-11-19T15:47:57.296439184Z" }
Casi d'uso
Puoi utilizzare i log di modifica dello stato di salute nei seguenti scenari di monitoraggio o debugging:
Monitoraggio delle modifiche dello stato di integrità di una VM
Puoi monitorare la frequenza con cui cambia lo stato di integrità di un'istanza VM creando una metrica che monitora le variazioni dello stato di integrità di quella determinata VM.
Per creare la metrica e monitorare le modifiche:
Monitoraggio delle modifiche dello stato di integrità di tutte le VM in un gruppo di istanze gestite
Puoi monitorare le variazioni dello stato di integrità di tutte le istanze gestite creando una metrica che monitori queste variazioni.
Per creare la metrica e monitorare le modifiche:
Identificazione delle VM che spesso non sono in stato integro
Puoi identificare le VM problematiche che passano spesso a
UNHEALTHY
creando una metrica che monitora le modifiche dello stato di integrità di tutte le istanze VM nel gruppo di istanze gestite e raggruppando la metrica per istanze.Per creare la metrica e raggrupparla per istanze:
Le istanze con il maggior numero di modifiche dello stato di integrità in aggregato sono quelle che diventano non integre più di frequente.
Controllare la causa di un tentativo di riparazione automatica
Per scoprire cosa ha causato un tentativo di riparazione automatica, filtra i log per le operazioni
repair
per una determinata istanza VM.Per filtrare le operazioni di riparazione:
Verificare se la riparazione automatica è riuscita per una VM
Puoi scoprire se un tentativo di riparazione automatica è riuscito per un'istanza VM filtrando i log per le operazioni
repair
e le modifiche dell'integrità in base al nome dell'istanza VM. Se lo stato di salute dell'istanza è passato aHEALTHY
dopo un'operazione di riparazione, vedrai un log delle modifiche dello stato di salute corrispondente. Segui i passaggi:Determinazione del valore del ritardo iniziale di un gruppo di istanze gestite
Determinare un valore appropriato per il ritardo iniziale per la riparazione automatica del gruppo di istanze gestite è più facile con il logging dello stato di integrità delle istanze VM. Puoi utilizzare i log per osservare il tempo che intercorre tra il termine dell'operazione
instances.insert
e la ricezione del primo indicatore di stato corretto per un insieme di istanze in un gruppo. Questo intervallo di tempo indica il tempo necessario per l'avvio completo delle istanze. Poiché alcune VM potrebbero avviarsi più lentamente di altre, Google consiglia di aggiungere un po' di margine al tempo di inizializzazione osservato (dall'operazione di inserimento allo stato di salute) quando si specifica il ritardo iniziale nel criterio di riparazione automatica.Per misurare il tempo che intercorre tra l'operazione di inserimento dell'istanza e il momento in cui l'istanza diventa sana, esegui una query per le operazioni
insert
e i log delle modifiche di stato in base al nome dell'istanza VM. Utilizza i timestamp di entrambe le operazioni per calcolare il tempo di inizializzazione dell'istanza. Segui i passaggi: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-22 UTC.
-