Questo documento descrive come visualizzare e leggere le voci di log delle modifiche dello stato di integrità di una VM in un gruppo di istanze gestite e fornisce specifiche casi d'uso utili per monitorare le VM nel gruppo.
Se hai configurato modelli di
controllo di integrità
per MIG, Compute Engine scrive una voce di log
ogni volta che lo stato di integrità di un'istanza gestita cambia, ad esempio quando
passa dallo stato HEALTHY
allo stato UNHEALTHY
. Queste voci di log consentono
di monitorare ed eseguire il debug dello stato di integrità di ogni istanza gestita,
l'integrità complessiva del gruppo di istanze gestite.
Prima di iniziare
- Consulta Configurare i controlli di integrità e la riparazione automatica.
-
Se non l'hai già fatto, configura l'autenticazione.
Autenticazione è
Il processo di verifica dell'identità per l'accesso ai servizi e alle API di 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
-
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 query:
- Risorsa - Gestore di gruppi di istanze GCE
- Nome log -
instance_group_manager_events
In alternativa, puoi copiare la seguente query in Query Builder.
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 vengono visualizzati in Risultati delle query.
PROJECT_ID
: il tuo ID progetto.MIG_NAME
: il gruppo di istanze gestite per il quale vuoi visualizzare log delle modifiche dello stato di integrità.OAUTH2_TOKEN
: il token di accesso della tua applicazione. Per test locali, puoi usare il comandogcloud auth print-access-token
per generare un token.PROJECT_ID
: il tuo ID progetto.MIG_NAME
: il gruppo di istanze gestite per il quale vuoi visualizzare 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 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.INSTANCE_NAME
: l'istanza gestita per la quale vuoi visualizzare i log delle modifiche dello stato di integrità.- 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 integrità 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 vengono
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 il tuo 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 di log, segui questi passaggi:
- Imposta 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 dal Esplora log. Puoi anche configurare il filtro della metrica per tenere conto solo per gli stati invasivi, come
UNHEALTHY
eTIMEOUT
, aggiungendoseverity>=WARNING
al filtro.In Etichette, fai clic su Aggiungi etichetta.
Inserisci un Nome etichetta, ad esempio
health_state
.Imposta Tipo di etichetta su
STRING
.Imposta Nome campo su
jsonPayload.instanceHealthStateChange.detailedHealthState
. In questo modo è possibile distinguere tra diversi stati di integrità modifiche.Fai clic su Fine per aggiungere l'etichetta.
Fai clic su Crea metrica.
Vai alla pagina Metriche basate su log e la metrica appena creata.
Fai clic sul menu more_vert nella riga della metrica e seleziona Visualizza in Esplora metriche. La Esplora metriche si apre e visualizza il grafico che rappresenta i cambiamenti dello stato Istanza VM specificata nella query.
Vai a Esplora log nella console Google Cloud.
Inserisci la seguente query nel generatore di query, utilizzando l'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 di log, segui questi passaggi:
- Imposta 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 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 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 in Query Builder 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 di log, segui questi passaggi:
- Imposta 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 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.
- In modo simile, aggiungi una seconda etichetta, ad esempio
instance
, con la Nome campo impostato sujsonPayload.instanceHealthStateChange.instance
. - Fai clic su Crea metrica.
Vai alla pagina Metriche basate su log e la metrica appena creata.
Fai clic sul menu more_vert nell' riga della metrica e seleziona Visualizza in Esplora metriche. La Esplora metriche si apre e mostra il grafico che rappresenta i cambiamenti dello stato di le istanze VM nel gruppo di istanze gestite specificato 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. Nei Risultati delle query verranno mostrate tutte le funzionalità di riparazione automatica. sulla VM con il motivo della riparazione automatica
protoPayload.status.message
.Vai a Esplora log nella console Google Cloud.
Inserisci la seguente query in Query Builder utilizzando il tuo 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 il tuo 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 alcune VM in più per ottenere un valore approssimativo migliore del parametro iniziale di ritardo.
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.
Prezzi
Compute Engine utilizza Cloud Logging per generare voci di log per le modifiche allo stato di integrità dell'istanza gestita. 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 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à
Se i log di modifica dello stato di integrità rimangono 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 di un progetto o di un gruppo di istanze gestite specifico, usa il 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 ciascuna 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 funzione Cloud, 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 la
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 log
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 integrità contengono i seguenti tipi di informazioni:
All'interno di ogni voce del log delle modifiche dello stato di integrità, Il campo
jsonPayload.instanceHealthStateChange
contiene quanto segue informazioni:Campo Descrizione instance
URL per l'istanza, in base all'ID progetto e al nome dell'istanza della stringa. instanceWithId
URL per l'istanza, in base all'ID progetto e all'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 di stringa e sul nome della rete. networkWithId
URL della risorsa di rete per questa istanza, in base al relativo ID progetto e ID rete numerici. healthCheck
URL per il controllo di 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 delle possibili vedi gli stati, consulta stati di integrità. notificationTime
Timestamp della modifica 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 il valorefalse
, questo 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 usare i log delle modifiche dello stato di integrità nel monitoraggio scenari di debug:
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à della VM in questione.
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 modifiche dello stato di integrità di tutte le istanze gestite creando una metrica che tenga traccia delle modifiche allo stato di integrità delle istanze gestite.
Per creare la metrica e monitorare le modifiche:
Identificazione delle VM che spesso non sono in uno stato integro
Per identificare le VM problematiche che spesso vengono
UNHEALTHY
, crea una 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 raggruppare per istanze:
Le istanze con il maggior numero di cambiamenti di stato di integrità aggregati sono quelle che spesso non sono integri.
Controllo della causa di un tentativo di riparazione automatica in corso...
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'adeguata ritardo iniziale per la riparazione automatica MIG è più semplice grazie al 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 aggiungerne alcune di margine al tempo di inizializzazione osservato (dall'operazione di inserimento allo stato integro stato) quando si specifica il ritardo iniziale nel criterio di riparazione automatica.a misurare il tempo tra l'operazione di inserimento dell'istanza e l'istanza stato integro, esegui una query per le operazioni
insert
e i log delle modifiche di integrità Nome dell'istanza VM. Usa i timestamp di entrambe le operazioni per calcolare il il tempo di inizializzazione dell'istanza. Procedi come indicato di seguito: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-10-14 UTC.
-