Este documento descreve como ver e ler as entradas do registo de alterações do estado de funcionamento de uma VM num grupo de instâncias geridas (GIG) e apresenta exemplos de utilização específicos para ajudar a monitorizar as VMs no grupo.
Se configurou a verificação de estado baseada em aplicações para o MIG, o Compute Engine escreve uma entrada de registo sempre que o estado de funcionamento de uma instância gerida muda, por exemplo, quando a instância passa do estado HEALTHY
para o estado UNHEALTHY
. Estas entradas de registo ajudam a
monitorizar e depurar o estado de funcionamento de cada instância gerida, bem como
o estado de funcionamento geral do MIG.
Antes de começar
- Reveja o artigo Configurar a verificação de funcionamento e a autorreparação.
-
Se ainda não o tiver feito, configure a autenticação.
A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:
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
-
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
- Set a default region and zone.
REST
Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.
Preços
O Compute Engine usa o Cloud Logging para gerar entradas de registo para alterações ao estado de saúde das instâncias geridas. O Cloud Logging oferece-lhe uma atribuição gratuita por mês, após a qual as entradas de registo são cobradas por volume de dados. Para mais informações, consulte o resumo dos preços do Cloud Logging.
Para evitar os custos de registo, pode desativar os registos de alterações do estado de saúde.
Visualizar registos de alterações do estado de saúde
Desde que os registos de alterações do estado de funcionamento permaneçam ativados, o Compute Engine escreve uma entrada de registo nos registos da plataforma sempre que o estado de funcionamento de uma instância gerida muda. Pode ver estes registos para um projeto, para um MIG específico ou para uma instância gerida específica.
Visualizar registos de um projeto ou de um MIG
Para ver as entradas do registo de um projeto ou de um MIG específico, use a Google Cloud consola, a CLI gcloud ou o REST.
Consola
Aceda ao Explorador de registos na Google Cloud consola.
Defina os seguintes parâmetros de consulta:
- Recurso – Gestor de grupo de instâncias do GCE
- Nome do registo –
instance_group_manager_events
Em alternativa, pode copiar a seguinte consulta no criador de consultas.
resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:*
Pode restringir a pesquisa a um grupo de instâncias gerido específico através da seguinte consulta.
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"
Clique em Executar consulta. Os resultados da consulta apresentam os registos.
gcloud
Use o comando
gcloud logging read
para ver e ler as entradas do registo.Para ver todos os registos de alterações de estado de saúde no seu projeto, use o seguinte 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
Para ver todos os registos de alterações do estado de funcionamento de um grupo de instâncias gerido específico, use o seguinte 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
Substitua o seguinte:
PROJECT_ID
: o seu ID do projeto.MIG_NAME
: o MIG para o qual quer ver os registos de alterações do estado de saúde.
REST
Para ver os registos de alterações do estado de saúde, faça um pedido
POST
ao métodoentries.list
.Para ver todos os registos de alterações do estado de saúde no seu projeto, use o seguinte 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
Para ver os registos de alterações do estado de funcionamento de um grupo de instâncias gerido específico, use o seguinte 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
Substitua o seguinte:
OAUTH2_TOKEN
: o token de acesso da sua aplicação. Para testes locais, pode usar o comandogcloud auth print-access-token
para gerar um token.PROJECT_ID
: o seu ID do projeto.MIG_NAME
: o MIG para o qual quer ver os registos de alterações do estado de saúde.
Para mais informações sobre cada entrada de registo, consulte o artigo Formato das entradas de registo.
Consoante pretenda arquivar os registos, usá-los para análise, transmitir os registos para outras aplicações ou acionar uma função do Cloud, pode exportar os registos para destinos como o Cloud Storage, o BigQuery ou o Pub/Sub. Para mais informações sobre a exportação de registos, consulte o artigo Vista geral das exportações de registos.
Visualizar registos de alterações do estado de saúde de uma VM específica
Para ver as entradas do registo de uma instância gerida específica, use a Google Cloud consola, a CLI gcloud ou o REST.
Consola
Aceda ao Explorador de registos na Google Cloud consola.
Copie a seguinte consulta no criador de consultas.
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"
Clique em Executar consulta.
gcloud
Use o comando
gcloud logging read
para ver e ler as entradas do registo.Para ver os registos de alterações do estado de funcionamento de uma instância gerida, use o seguinte 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
Substitua o seguinte:
PROJECT_ID
: o seu ID do projeto.INSTANCE_NAME
: a instância gerida para a qual quer ver os registos de alterações do estado de saúde.
REST
Para ver os registos de alterações do estado de saúde de uma instância gerida, faça um
POST
pedido ao métodoentries.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
Substitua o seguinte:
OAUTH2_TOKEN
: o token de acesso da sua aplicação. Para testes locais, pode usar o comandogcloud auth print-access-token
para gerar um token.PROJECT_ID
: o seu ID do projeto.INSTANCE_NAME
: a instância gerida para a qual quer ver os registos de alterações do estado de saúde.
Formato das entradas do registo
As entradas do registo de alterações do estado de funcionamento da instância contêm informações úteis para monitorizar e depurar o estado das suas instâncias geridas.
Os registos são escritos nos registos da plataforma com o nome do registo
instance_group_manager_events
. Os registos da plataforma ajudam a depurar e resolver problemas.logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events"
As entradas do registo de alterações do estado de saúde contêm os seguintes tipos de informações:
- Informações gerais apresentadas na maioria dos registos, como a gravidade, o ID do projeto, o nome e o ID do MIG, o número do projeto, a data/hora, etc.
- Campos específicos do estado de saúde da instância.
Em cada entrada do registo de alterações do estado de integridade, o campo
jsonPayload.instanceHealthStateChange
contém as seguintes informações:Campo Descrição instance
URL da instância, com base no ID do projeto de string e no nome da instância. instanceWithId
URL da instância, com base no respetivo ID do projeto numérico e ID da instância. ipAddress
Endereço IP da instância, conforme analisado pela verificação de funcionamento. network
URL do recurso de rede para esta instância, com base no ID do projeto de string e no nome da rede. networkWithId
URL do recurso de rede para esta instância, com base no respetivo ID do projeto numérico e ID da rede. healthCheck
URL da verificação de estado configurada para o grupo de instâncias gerido. previousDetailedHealthState
Estado de saúde anterior da instância. Para ver a lista de estados possíveis, consulte os estados de saúde. detailedHealthState
Estado de funcionamento atual da instância. Para ver a lista de estados possíveis, consulte os estados de saúde. notificationTime
Data/hora em que ocorreu a alteração do estado de saúde. Os campos de registo do tipo booleano normalmente só aparecem se tiverem um valor de
true
. Se um campo booleano tiver um valor defalse
, esse campo é omitido do registo.A codificação UTF-8 é aplicada aos campos de registo. Os carateres que não são carateres UTF-8 são substituídos por pontos de interrogação.
Exemplo de entrada do registo
O exemplo seguinte mostra a alteração do estado de saúde de uma instância de VM de
HEALTHY
paraUNHEALTHY
:{ "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" }
Exemplos de utilização
Pode usar os registos de alterações do estado de funcionamento nos seguintes cenários de monitorização ou depuração:
- Descubra com que frequência um determinado exemplo de VM mudou os estados de saúde ao longo do tempo.
- Avalie a frequência com que um MIG sofreu alterações do estado de funcionamento das respetivas instâncias.
- Identifique instâncias de VM problemáticas que entram frequentemente em
UNHEALTHY
. - Descubra o que causou uma tentativa de autocorreção.
- Descubra se uma tentativa de autocura foi bem-sucedida para uma instância de VM específica.
- Ajuste a configuração da verificação de estado de uma aplicação determinando um atraso inicial adequado para a autorreparação.
Monitorizar alterações do estado de funcionamento de uma VM
Pode monitorizar a frequência com que o estado de saúde de uma instância de VM muda criando uma métrica que acompanhe as alterações do estado de saúde dessa VM específica.
Para criar a métrica e monitorizar as alterações, faça o seguinte:
Aceda ao Explorador de registos na Google Cloud consola.
Introduza a seguinte consulta no criador de consultas, usando o ID do projeto e o nome da instância.
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"
Na secção Resultados da consulta, clique em Ações e, de seguida, em Criar métrica.
Na página Criar métrica de registos, faça o seguinte:
- Defina o Tipo de métrica como Contador.
Introduza um Nome da métrica de registo, por exemplo,
health-mig-xyzq
.A secção Criar filtro apresenta a consulta de registo do Explorador de registos. Também pode configurar o filtro da métrica para ter em conta apenas estados disruptivos, como
UNHEALTHY
eTIMEOUT
, adicionandoseverity>=WARNING
ao filtro.Em Etiquetas, clique em Adicionar etiqueta.
Introduza um Nome do marcador, por exemplo
health_state
.Defina o Tipo de etiqueta como
STRING
.Defina o Nome do campo como
jsonPayload.instanceHealthStateChange.detailedHealthState
. Isto permite-lhe distinguir entre diferentes alterações ao estado de saúde.Clique em Concluído para adicionar a etiqueta.
Clique em Criar métrica.
Aceda à página Métricas baseadas em registos e encontre a métrica recém-criada.
Clique no menu more_vert na linha da métrica e selecione Ver no explorador de métricas. O Explorador de métricas é aberto e apresenta o gráfico que representa as alterações do estado de saúde da instância de VM especificada na consulta.
Monitorizar alterações do estado de funcionamento de todas as VMs num MIG
Pode monitorizar as alterações do estado de funcionamento de todas as instâncias geridas através da criação de uma métrica que monitorize as alterações do estado de funcionamento das instâncias geridas.
Para criar a métrica e monitorizar as alterações, faça o seguinte:
Aceda ao Explorador de registos na Google Cloud consola.
Introduza a seguinte consulta no criador de consultas, usando o ID do projeto e o nome do grupo de instâncias gerido.
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"
Na secção Resultados da consulta, clique em Ações e, de seguida, em Criar métrica.
Na página Criar métrica de registos, faça o seguinte:
- Defina o Tipo de métrica como Contador.
- Introduza um Nome da métrica de registo, por exemplo,
health-mig-xyzq
. - Em Etiquetas, clique em Adicionar etiqueta.
- Introduza um Nome do marcador, por exemplo
health_state
. - Defina o Tipo de etiqueta como
STRING
. - Defina o Nome do campo como
jsonPayload.instanceHealthStateChange.detailedHealthState
. Isto permite-lhe distinguir entre diferentes alterações do estado de saúde. - Clique em Concluído para adicionar a etiqueta.
- Clique em Criar métrica.
Aceda à página Métricas baseadas em registos e encontre a métrica recém-criada.
Clique no menu more_vert na linha da métrica e selecione Ver no explorador de métricas. O Explorador de métricas é aberto e apresenta o gráfico que representa as alterações do estado de integridade de todas as instâncias de VM no grupo de instâncias gerido que especificou na consulta.
Identificar VMs que ficam frequentemente em mau estado
Pode identificar VMs problemáticas que ficam frequentemente
UNHEALTHY
criando uma métrica que monitorize as alterações do estado de funcionamento de todas as instâncias de VM no seu MIG e agrupando a métrica por instâncias.Para criar a métrica e agrupar por instâncias, faça o seguinte:
Aceda ao Explorador de registos na Google Cloud consola.
Introduza a seguinte consulta no criador de consultas, usando o ID do projeto e o nome do grupo de instâncias gerido.
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"
Na secção Resultados da consulta, clique em Ações e, de seguida, em Criar métrica.
Na página Criar métrica de registos, faça o seguinte:
- Defina o Tipo de métrica como Contador.
- Introduza um Nome da métrica de registo, por exemplo,
health-mig-xyzq
. - Em Etiquetas, clique em Adicionar etiqueta.
- Introduza um Nome do marcador, por exemplo
health_state
. - Defina o Tipo de etiqueta como
STRING
. - Defina o Nome do campo como
jsonPayload.instanceHealthStateChange.detailedHealthState
. Isto permite-lhe distinguir entre diferentes alterações do estado de saúde. - Clique em Concluído para adicionar a etiqueta.
- Da mesma forma, adicione uma segunda etiqueta, por exemplo,
instance
, com o Nome do campo definido comojsonPayload.instanceHealthStateChange.instance
. - Clique em Criar métrica.
Aceda à página Métricas baseadas em registos e encontre a métrica recém-criada.
Clique no menu more_vert na linha da métrica e selecione Ver no explorador de métricas. O Explorador de métricas é aberto e apresenta o gráfico que representa as alterações do estado de integridade de todas as instâncias de VM no grupo de instâncias gerido que especificou na consulta.
Defina a opção Agrupar por como
instance
para ver o número agregado de alterações do estado de funcionamento de cada instância.
As instâncias com o maior número de alterações do estado de funcionamento agregadas são as que ficam com mais frequência em mau estado de funcionamento.
Verificar o que causou uma tentativa de autocorreção
Pode descobrir o que causou uma tentativa de autorrecuperação filtrando os registos de operações
repair
para uma determinada instância de VM.Para filtrar as operações de reparação, faça o seguinte:
Aceda ao Explorador de registos na Google Cloud consola.
Introduza a seguinte consulta no criador de consultas, usando o ID do projeto e o nome da instância.
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$"
Clique em Executar consulta. Os Resultados da consulta mostram todas as tentativas de autocorreção na VM com o motivo da autocorreção em
protoPayload.status.message
.
Verificar se a autorreparação foi bem-sucedida para uma VM
Pode saber se uma tentativa de autorreparação foi bem-sucedida para uma instância de VM filtrando os registos de operações
repair
e alterações de estado por nome da instância de VM. Se o estado de saúde da instância tiver sido alterado paraHEALTHY
após uma operação de reparação, é apresentado um registo de alterações do estado de saúde correspondente. Siga os passos:Aceda ao Explorador de registos na Google Cloud consola.
Introduza a seguinte consulta no criador de consultas, usando o ID do projeto e o nome da instância.
(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")
A primeira parte da consulta apresenta as operações de reparação da instância, que indicam que a recriação foi acionada pela autocura do MIG para tornar a instância novamente saudável. A segunda parte da consulta apresenta todas as alterações ao estado de funcionamento da instância de VM.
Nos Resultados da consulta, o evento de alteração do estado de funcionamento com o valor
detailedHealthState
definido comoHEALTHY
pouco tempo após uma operação de reparação mostra que a tentativa de autocorreção foi bem-sucedida.
Determinar o valor do atraso inicial de um MIG
Determinar um valor de atraso inicial adequado para a autorreparação de GIGs é mais fácil com o registo do estado de saúde das instâncias de VM. Pode usar os registos para observar o tempo entre a conclusão da operação
instances.insert
e a receção do primeiro sinal saudável para um conjunto de instâncias num grupo. Este intervalo de tempo revela quanto tempo as instâncias demoram a arrancar totalmente. Uma vez que algumas VMs podem ser iniciadas mais lentamente do que outras, a Google recomenda adicionar alguma margem ao tempo de inicialização observado (desde a operação de inserção até ao estado de funcionamento) quando especificar o atraso inicial na política de autorreparação.Para medir o tempo entre a operação de inserção da instância e a instância ficar em bom estado, execute uma consulta para
insert
operações e registos de alterações de estado por nome da instância de VM. Use as indicações de tempo de ambas as operações para calcular o tempo de inicialização da instância. Siga os passos:Aceda ao Explorador de registos na Google Cloud consola.
Introduza a seguinte consulta no criador de consultas, usando o ID do projeto e o nome da instância.
(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")
A primeira parte da consulta mostra a conclusão da operação de inserção da VM. A segunda parte mostra todas as alterações ao estado de saúde da VM.
Nos Resultados da consulta, a data/hora do evento de alteração do estado de saúde com
detailedHealthState
definido comoHEALTHY
pouco tempo após a operação de inserção revela o tempo necessário para esta VM ser iniciada.Repita os passos para mais algumas VMs para obter um valor aproximado melhor do parâmetro de atraso inicial.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-09-19 UTC.
-