Neste documento, descrevemos como ver e ler entradas de registro de alterações de estado de integridade de uma VM em um grupo gerenciado de instâncias (MIG) e fornecemos casos de uso específicos para ajudar você a monitorar as VMs no grupo
Se você configurou a verificação de integridade baseada em aplicativos para MIG, o Compute Engine grava uma entrada de registro sempre que o estado de integridade de uma instância gerenciada é alterado. Por exemplo, quando a instância vai do estado HEALTHY
para UNHEALTHY
. Essas entradas de registro ajudam você a
monitorar e depurar o estado de integridade de cada instância gerenciada, bem como
a integridade geral do MIG.
Antes de começar
- Consulte Como configurar a verificação de integridade e a recuperação automática
-
Configure a autenticação, caso ainda não tenha feito isso.
A autenticação é
o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud .
Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no
Compute Engine selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
-
Preços
O Compute Engine usa o Cloud Logging para gerar entradas de registro de alterações de estado de integridade da instância gerenciada. O Cloud Logging oferece uma cota gratuita por mês após a qual as entradas de registro são cobradas pelo volume de dados. Para mais informações, consulte o resumo de preços do Cloud Logging.
Para evitar os custos de geração de registros, é possível desativar os registros de alteração do estado de integridade.
Como visualizar registros de alterações do estado de integridade
Desde que os registros de alterações de estado de integridade permaneçam ativados, o Compute Engine gravará uma entrada de registro nos registros de plataforma sempre que o estado de integridade de uma instância gerenciada for alterado. É possível ver esses registros para um projeto, para um MIG específico ou para uma instância gerenciada específica.
Como visualizar registros de um projeto ou um MIG
Para ver as entradas de registro de um projeto ou de um MIG específico, use o console do Google Cloud, a gcloud CLI ou a REST.
Acesse o Explorador de registros no Console do Google Cloud:
Defina os seguintes parâmetros de consulta:
- Recurso: gerenciador de grupos de instâncias do GCE
- Nome de registro:
instance_group_manager_events
Como alternativa, você pode copiar a seguinte consulta no builder Query.
resource.type="gce_instance_group_manager" AND logName="projects/
PROJECT_ID /logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:*Restrinja sua pesquisa a um grupo de instâncias gerenciadas específico usando a 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 Run query. Os resultados da consulta exibirão os registros.
Use o comando gcloud logging read
para visualizar e ler as entradas de registro.
Para ver todos os registros de alterações do estado de integridade no 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 registros de alterações do estado de integridade de um grupo de instâncias gerenciadas 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:
PROJECT_ID
: o ID do projeto;MIG_NAME
: o MIG com os registros de alterações do estado de integridade que você quer visualizar.
Para visualizar os registros de alterações do estado de integridade, faça uma solicitação
POST
para o método entries.list
.
Para ver todos os registros de alterações do estado de integridade no projeto, use o seguinte comando:
curl -H "Content-Type: application/json" -H "Authorization: BearerOAUTH2_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 registros de alteração de estado de integridade de um grupo de instâncias gerenciadas específico, use o seguinte comando:
curl -H "Content-Type: application/json" -H "Authorization: BearerOAUTH2_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:
OAUTH2_TOKEN
: o token de acesso do seu aplicativo. Para realizar testes locais, use o comandogcloud auth print-access-token
para gerar um token.PROJECT_ID
: o ID do projeto;MIG_NAME
: o MIG com os registros de alterações do estado de integridade que você quer visualizar.
Para mais informações sobre cada entrada de registro, consulte Formato de entradas de registro.
Dependendo se você quer arquivar os registros, usar os registros para análise, transmitir os registros para outros aplicativos ou acionar uma função do Cloud, você pode exportar os registros para destinos como Cloud Storage, BigQuery ou Pub/Sub. Para mais informações sobre como exportar registros, consulte Visão geral das exportações de registros.
Como ver registros de alterações de estado de integridade de uma VM específica
Para ver as entradas de registro de uma instância gerenciada específica, use o console do Google Cloud, a gcloud CLI ou a REST.
Acesse o Explorador de registros no Console do Google Cloud:
Copie a seguinte consulta no builder do 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 "Clique em Run query.
Use o comando gcloud logging read
para visualizar e ler as entradas de registro.
Para ver os registros de alteração do estado de integridade de uma instância gerenciada, 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:
PROJECT_ID
: o ID do projeto;INSTANCE_NAME
: a instância gerenciada em que você quer ver os registros de alteração do estado de integridade.
Para ver os registros de alteração do estado de integridade de uma instância gerenciada, faça uma
solicitação POST
para o método entries.list
.
curl -H "Content-Type: application/json" -H "Authorization: BearerOAUTH2_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:
OAUTH2_TOKEN
: o token de acesso do seu aplicativo. Para realizar testes locais, use o comandogcloud auth print-access-token
para gerar um token.PROJECT_ID
: o ID do projeto;INSTANCE_NAME
: a instância gerenciada em que você quer ver os registros de alteração do estado de integridade.
Formato das entradas de registro
As entradas do registro de alterações de estado da integridade da instância contêm informações úteis para monitorar e depurar o estado das instâncias gerenciadas.
Os registros são gravados nos registros da plataforma
com o nome instance_group_manager_events
. Os registros da plataforma
ajudam a depurar e resolver problemas.
logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events"
As entradas de registro de alterações de estado de integridade contêm os seguintes tipos de informações:
- informações gerais mostradas na maioria dos registros, como gravidade, ID do projeto, nome e ID do MIG, número do projeto, carimbo de data/hora e assim por diante;
- Campos específicos para o estado de integridade da instância.
Em cada entrada de registro de alteração de 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 da string e no nome da instância. |
instanceWithId |
URL da instância, com base no ID numérico do projeto e no ID da instância. |
ipAddress |
Endereço IP da instância, conforme verificado pela verificação de integridade. |
network |
URL do recurso de rede para esta instância, com base no ID do projeto da string e no nome da rede. |
networkWithId |
URL do recurso de rede para esta instância, com base no ID do projeto numérico e no ID da rede. |
healthCheck |
URL da verificação de integridade configurada para o grupo de instâncias gerenciadas. |
previousDetailedHealthState |
Estado de integridade anterior da instância. Para ver a lista dos estados possíveis, consulte estados de integridade. |
detailedHealthState |
Estado de integridade atual da instância. Para ver a lista dos estados possíveis, consulte estados de integridade. |
notificationTime |
Carimbo de data/hora de quando a mudança do estado de integridade ocorreu. |
Os campos de registro do tipo true
booleano normalmente só aparecem se tiverem um valor .
Se um campo booleano tem um valor false
, esse campo é omitido do registro.
A codificação UTF-8 é aplicada aos campos de registro. Os caracteres que não forem UTF-8 serão substituídos por pontos de interrogação.
Exemplo de entrada de registro
O exemplo a seguir mostra a alteração de estado de integridade de uma instância de VM de HEALTHY
para UNHEALTHY
:
{ "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" }
Casos de uso
Use os registros de alterações de estado de integridade nos seguintes cenários de monitoramento ou depuração:
- Descubra com que frequência uma instância de VM específica mudou os estados de integridade ao longo do tempo.
- Avalie a frequência com que um MIG teve alterações de estado de integridade nas instâncias.
- Identifique instâncias de VM com problemas que costumam ficar em
UNHEALTHY
. - Descubra o que causou uma tentativa de recuperação automática.
- Descubra se uma tentativa de recuperação automática foi bem-sucedida para uma instância de VM específica.
- Ajuste a configuração da verificação de integridade de um aplicativo determinando um atraso inicial apropriado para recuperação automática.
Como monitorar alterações de estado de integridade de uma VM
É possível monitorar a frequência com que o estado de integridade de uma instância de VM é alterado criando uma métrica que rastreia as alterações de estado de integridade dessa VM específica.
Para criar a métrica e monitorar as alterações, faça o seguinte:
Acesse o Explorador de registros no Console do Google Cloud:
Digite a seguinte consulta no builder do Query 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 seção Resultados da consulta, clique em Ações e, em seguida, em Criar métrica.
Na página Criar métrica de registros, faça o seguinte:
- Defina o Tipo de métrica como Contador.
Insira um nome de métrica de registro, por exemplo,
health-mig-xyzq
.A seção Filtro de versão exibe a consulta do registro do Explorador de registros. Também é possível configurar o filtro da métrica para considerar apenas os estados de interrupção, como
UNHEALTHY
eTIMEOUT
, adicionandoseverity>=WARNING
ao filtro.Em Rótulos, clique em Adicionar rótulo.
Digite um Nome de rótulo, por exemplo:
health_state
.Defina o Tipo de rótulo como
STRING
.Defina o Nome do campo como
jsonPayload.instanceHealthStateChange.detailedHealthState
. Isso permitirá distinguir entre diferentes mudanças de estado de integridade.Clique em Concluído para adicionar o rótulo.
Clique em Criar métrica.
Acesse a página Métricas com base em registros e encontre a métrica recém-criada.
Clique no menu more_vert na linha da métrica e selecione Visualizar no Metrics Explorer. O Metrics Explorer é aberto e exibe o gráfico que representa as alterações no estado de integridade da instância de VM especificada na consulta.
Como monitorar alterações de estado de integridade de todas as VMs em um MIG
É possível monitorar as alterações de estado de integridade de todas as instâncias gerenciadas criando uma métrica que rastreia as alterações de estado de integridade das instâncias gerenciadas.
Para criar a métrica e monitorar as alterações, faça o seguinte:
Acesse o Explorador de registros no Console do Google Cloud:
Digite a seguinte consulta no builder do Query, usando o ID do projeto e o nome do grupo de instâncias gerenciadas.
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 seção Resultados da consulta, clique em Ações e, em seguida, em Criar métrica.
Na página Criar métrica de registros, faça o seguinte:
- Defina o Tipo de métrica como Contador.
- Insira um nome de métrica de registro, por exemplo,
health-mig-xyzq
. - Em Rótulos, clique em Adicionar rótulo.
- Digite um Nome de rótulo, por exemplo:
health_state
. - Defina o Tipo de rótulo como
STRING
. - Defina o Nome do campo como
jsonPayload.instanceHealthStateChange.detailedHealthState
. Isso permitirá distinguir entre diferentes mudanças de estado de integridade. - Clique em Concluído para adicionar o rótulo.
- Clique em Criar métrica.
Acesse a página Métricas com base em registros e encontre a métrica recém-criada.
Clique no menu more_vert na linha da métrica e selecione Visualizar no Metrics Explorer. O Metrics Explorer é aberto e exibe o gráfico que representa as alterações no estado de integridade de todas as instâncias de VM no grupo de instâncias gerenciadas especificado na consulta.
Como identificar VMs que não costumam ser íntegras
Para identificar VMs com problemas que costumam ficar no UNHEALTHY
, crie uma
métrica que rastreie as alterações de estado de integridade de todas as instâncias de VM no MIG
e agrupe a métrica por instâncias.
Para criar a métrica e agrupar por instâncias, faça o seguinte:
Acesse o Explorador de registros no Console do Google Cloud:
Digite a seguinte consulta no builder do Query, usando o ID do projeto e o nome do grupo de instâncias gerenciadas.
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 seção Resultados da consulta, clique em Ações e, em seguida, em Criar métrica.
Na página Criar métrica de registros, faça o seguinte:
- Defina o Tipo de métrica como Contador.
- Insira um nome de métrica de registro, por exemplo,
health-mig-xyzq
. - Em Rótulos, clique em Adicionar rótulo.
- Digite um Nome de rótulo, por exemplo:
health_state
. - Defina o Tipo de rótulo como
STRING
. - Defina o Nome do campo como
jsonPayload.instanceHealthStateChange.detailedHealthState
. Isso permitirá distinguir entre diferentes mudanças de estado de integridade. - Clique em Concluído para adicionar o rótulo.
- Da mesma forma, adicione um segundo rótulo, por exemplo,
instance
, com o Nome do campo definido comojsonPayload.instanceHealthStateChange.instance
. - Clique em Criar métrica.
Acesse a página Métricas com base em registros e encontre a métrica recém-criada.
Clique no menu more_vert na linha da métrica e selecione Visualizar no Metrics Explorer. O Metrics Explorer é aberto e exibe o gráfico que representa as alterações no estado de integridade de todas as instâncias de VM no grupo de instâncias gerenciadas especificado na consulta.
Defina a opção Agrupar por como
instance
para ver o número agregado de alterações de estado de integridade em cada instância.
As instâncias com o maior número de alterações de estado de integridade agregadas são aquelas que não são íntegras com mais frequência.
Como verificar o que causou uma tentativa de recuperação automática
Para descobrir o que causou uma tentativa de recuperação automática, filtre os registros para operações
repair
em uma determinada instância de VM.
Para filtrar as operações de conserto, faça o seguinte:
Acesse o Explorador de registros no Console do Google Cloud:
Insira a seguinte consulta no builder do Query 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 Run query. Os Resultados da consulta mostrarão todas as tentativas de recuperação automática na VM com o motivo em
protoPayload.status.message
.
Como verificar se a recuperação automática foi bem-sucedida para uma VM
Para descobrir se uma tentativa de recuperação automática foi bem-sucedida para uma instância de VM,
filtre os registros de operações repair
e as alterações de integridade por nome da instância de VM.
Se o estado de integridade da instância for alterado para HEALTHY
após uma operação de reparo,
você verá um registro de alteração de estado de integridade correspondente. Siga estas etapas:
Acesse o Explorador de registros no Console do Google Cloud:
Insira a seguinte consulta no builder do Query 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 exibe as operações de reparo da instância, que indicam que a recriação foi acionada pela recuperação automática do MIG para tornar a instância íntegra novamente. A segunda parte da consulta exibe todas as alterações de estado de integridade da instância da VM.
Nos Resultados da consulta, o evento de alteração do estado de integridade com
detailedHealthState
definido comoHEALTHY
logo após uma operação de reparo mostra que a tentativa de recuperação automática foi bem-sucedida.
Como determinar o valor de atraso inicial de um MIG
Determinar um valor de
atraso inicial
apropriado para recuperação automática de MIG é mais fácil com a geração de registros de estado de integridade da instância de VM. É
possível usar registros para observar o tempo entre o término da operação instances.insert
e
o momento em que o primeiro sinal íntegro foi recebido para um conjunto de instâncias
em um grupo. Esse intervalo de tempo revela quanto tempo as instâncias levam para inicializar.
Como algumas VMs podem ser inicializadas mais lentamente do que outras, o Google recomenda adicionar alguma
margem ao tempo de inicialização observado (da operação de inserção para o estado
íntegro) ao especificar o atraso inicial na política de recuperação automática.
Para medir o tempo entre a operação de inserção da instância e a instância
que se torna íntegra, execute uma consulta para operações insert
e registros de alterações de integridade por
nome da instância de VM. Use os carimbos de data/hora das duas operações para calcular o
tempo de inicialização da instância. Siga estas etapas:
Acesse o Explorador de registros no Console do Google Cloud:
Insira a seguinte consulta no builder do Query 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 de VM. A segunda parte mostra todas as alterações de estado de integridade da VM.
Nos resultados da consulta, o carimbo de data/hora do evento de alteração do estado de integridade com
detailedHealthState
definido comoHEALTHY
logo após a operação de inserção mostra o tempo necessário para que essa VM tenha: inicializar.Repita as etapas para mais algumas VMs para ter um valor aproximado melhor do parâmetro de atraso inicial.