Este documento descreve as causas comuns de desligamentos e reinicializações inesperados de instâncias do Compute Engine e como evitá-los.
Os encerramentos e reinicializações de instâncias podem ser causados por eventos do sistema ou atividades administrativas. Os encerramentos e reinicializações de eventos do sistema são gerados pelos sistemas do Google ou pelo sistema operacional das suas instâncias. Os encerramentos e reinicializações de atividades administrativas são gerados por uma chamada de API gerada por uma conta de usuário ou de serviço. Todos os desligamentos e reinicializações são registrados, exceto as reinicializações que são iniciadas na instância.
Antes de começar
- Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar 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
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
No console do Google Cloud, acesse a página do Logs Explorer .
No campo Consulta , insira a seguinte consulta:
resource.type="gce_instance" "VM_NAME" logName:("logs/cloudaudit.googleapis.com%2Fsystem_event" OR "logs/cloudaudit.googleapis.com%2Factivity")
Substitua
VM_NAME
pelo nome da VM que foi encerrada ou reinicializada.Se o evento que você procura aconteceu há mais de uma hora, defina um período de tempo personalizado clicando no símbolo do relógio e inserindo um intervalo personalizado.
Clique em Executar consulta . Os resultados são exibidos na seção Resultados da consulta .
Clique na seta expansora
ao lado de cada resultado para mostrar informações detalhadas.Consulte Revisando logs de auditoria de nuvem para saber mais sobre os campos
method
eprincipalEmail
associados a desligamentos e reinicializações e o que você pode fazer para evitá-los.Visualize os registros de auditoria da nuvem usando o comando
gcloud logging read
:gcloud logging read --freshness=TIME 'resource.type="gce_instance" "VM_NAME" logName:("logs/cloudaudit.googleapis.com%2Fsystem_event" OR "logs/cloudaudit.googleapis.com%2Factivity")'
Substitua o seguinte:
-
TIME
: a quantidade de tempo que você deseja consultar. Por exemplo,1h
consulta entradas de log na última hora. Para obter informações sobre formatos de data e hora, consulte o tópico gcloud datetimes . -
VM_NAME
: o nome da VM que foi desativada ou reinicializada.
Os resultados são exibidos.
-
Consulte Revisando logs de auditoria de nuvem para saber mais sobre os campos
method
eprincipalEmail
associados a desligamentos e reinicializações e o que você pode fazer para evitá-los.Revise os campos
method
dos registros de auditoria do Cloud e compare-os com os métodos listados na tabela a seguir.Método Tipo de desligamento Descrição compute.instances.repair.recreateInstance
Evento do sistema Se sua VM pertencer a um grupo de instâncias gerenciadas (MIG), o MIG recriará a VM se o estado da VM mudar de
RUNNING
e o MIG não tiver iniciado a mudança de estado.As alterações no estado da instância que não são iniciadas pelo MIG incluem:
- Falhas de hardware.
- Encerrando uma instância preemptiva .
- Eventos de manutenção de infraestrutura quando a instância de VM não está configurada para migração em tempo real .
- Excluir uma instância MIG usando um dos seguintes métodos:
- O método de API
instances.delete
- O comando
gcloud compute instances delete
- O método de API
compute.instances.hostError
Evento do sistema Um erro de host (
compute.instances.hostError
) significa que houve um problema de hardware ou software na máquina física ou na infraestrutura do data center que hospeda sua instância de computação que causou a falha da instância. Um erro de host envolvendo uma falha total de hardware ou outros problemas de hardware pode impedir a migração em tempo real da sua instância. Se a instância estiver configurada para reiniciar automaticamente, que é a configuração padrão, o Compute Engine a reiniciará, normalmente dentro de três minutos a partir do momento em que o erro foi detectado. Dependendo do problema, a reinicialização pode levar até 5,5 minutos.Ocasionalmente, uma instância de computação pode parar de responder antes que um erro de host seja sinalizado. Você pode reduzir o tempo que o Compute Engine espera para reiniciar ou encerrar a instância definindo o tempo limite de recuperação de erros do host. Para obter mais informações, consulte Definir políticas de disponibilidade .
Falhas físicas de hardware e software podem acontecer ocasionalmente, mas são ocorrências raras. Para proteger seus aplicativos e serviços contra esses eventos de sistema potencialmente perturbadores, revise os seguintes recursos:
- Projetando sistemas robustos
- Padrões para aplicativos escaláveis e resilientes
- Como criar grupos de instâncias gerenciadas
O Google também oferece serviços gerenciados como o App Engine e o ambiente flexível do App Engine .
compute.instances.automaticRestart
Evento do sistema Este evento ocorre após um evento
hostError
ou um eventoterminateOnHostMaintenance
se a política de manutenção do hostautomaticRestart
da sua VM estiver definida comotrue
. Nos logs, uma entrada de loghostError
outerminateOnHostMaintenance
precede esse log.Se você quiser alterar a política de manutenção do host da sua VM, consulte Atualizando opções para uma instância .
compute.instances.guestTerminate
Evento do sistema O sistema operacional da sua VM iniciou o desligamento. compute.instances.terminateOnHostMaintenance
Evento do sistema Se você definir a política de manutenção do host
onHostMaintenance
da sua VM comoTERMINATE
, o Compute Engine interromperá sua VM quando houver um evento de manutenção em que o Google precise mover sua VM para outro host.Se você quiser alterar a política
onHostMaintenance
da sua VM, consulte Atualizando opções para uma instância .compute.instances.preempted
Evento do sistema O Compute Engine interrompeu sua VM Spot ou VM preemptiva legada:
- Quando o Compute Engine interrompe uma VM do Spot, ele interrompe ou exclui a VM do Spot com base na ação de encerramento . As VMs do Spot não têm um tempo de execução máximo.
- Quando o Compute Engine interrompe uma VM preemptiva, o Compute Engine interrompe a VM após um tempo de execução máximo de 24 horas. Para evitar essas limitações, use VMs Spot.
As VMs spot e as VMs preemptivas têm capacidade excessiva do Compute Engine, portanto, o Compute Engine pode preemptá-las sempre que a capacidade for necessária em outro lugar. Você pode ajudar a mitigar os efeitos da preempção seguindo as práticas recomendadas. Como alternativa, se você precisar de VMs com tempos de execução controlados pelo usuário, crie VMs padrão .
compute.instances.stop
Atividade administrativa Um usuário ou conta de serviço interrompeu sua VM.
Continue na próxima etapa para identificar o usuário ou a conta de serviço que interrompeu sua VM. Para obter informações sobre como reiniciar sua VM, consulte Reiniciando uma instância interrompida .
compute.instances.delete
Atividade administrativa ou evento do sistema Um usuário ou conta de serviço excluiu sua VM ou a VM foi configurada para ser excluída automaticamente.
Especificamente, um log para o método
compute.instances.delete
pode indicar qualquer uma das seguintes solicitações para sua VM:- As solicitações de um usuário ou conta de serviço para excluir diretamente sua VM são indicadas apenas por um método
compute.instances.delete
do usuário ou conta de serviço. As solicitações que excluem automaticamente sua VM são indicadas por um método
compute.instances.delete
desystem@google.com
, mas o método que explica a causa da exclusão automática pode ou não aparecer nos registros de auditoria do Cloud.Por exemplo, se uma VM Spot estiver configurada para ser excluída automaticamente durante a preempção e for preemptada, você verá um método
compute.instances.delete
desystem@google.com
, mas poderá ou não ver também um métodocompute.instances.preempted
.As solicitações à VM que ocorreram pouco antes ou depois de um método
compute.instances.delete
podem ou não aparecer nos registros de auditoria do Cloud.Por exemplo, se uma VM for interrompida devido à manutenção do host pouco antes de a VM ser excluída, você verá um método
compute.instances.delete
, mas poderá ou não ver também um métodocompute.instances.terminateOnHostMaintenance
.
Passe para a próxima etapa para identificar o usuário ou a conta de serviço que excluiu sua VM. Para obter informações sobre como criar uma nova VM, consulte Criando e iniciando uma VM .
compute.instances.insert
Atividade administrativa Um usuário ou conta de serviço criou sua VM.
Passe para a próxima etapa para identificar o usuário ou a conta de serviço que criou sua VM. Para obter informações sobre como criar uma nova VM, consulte Criando e iniciando uma VM .
compute.instances.reset
Atividade administrativa Um usuário ou conta de serviço redefiniu sua VM.
Continue na próxima etapa para identificar o usuário ou a conta de serviço que interrompeu sua VM.
Revise os campos
principalEmail
dos registros de auditoria da nuvem para identificar o usuário ou serviço que iniciou o desligamento ou a reinicialização. A tabela a seguir inclui serviços gerenciados comuns do Google que iniciam desligamentos ou reinicializações.E-mail Descrição system@google.com
Um evento do sistema causou o desligamento ou a reinicialização. project-number @cloudservices.gserviceaccount.com
Um agente de serviço iniciou o desligamento.
Para determinar de qual projeto o serviço iniciou o encerramento, revise o
project-number
do agente de serviço.Para determinar qual serviço do Google fez a solicitação, revise o campo
protoPayload.requestMetadata.callerSuppliedUserAgent
.Se um usuário acionou o desligamento ou a reinicialização, seu endereço de e-mail aparecerá no campo
principalEmail
. Por exemplo,cloudysanfrancisco@gmail.com
.Os administradores podem impedir que os usuários alterem o estado das VMs do projeto alterando as permissões de gerenciamento de identidade e acesso nas contas de usuário. Para obter mais informações, consulte Concedendo, alterando e revogando acesso a recursos .
No console do Google Cloud, acesse a página Métricas baseadas em registros .
Clique em Criar métrica .
- Selecione
Counter
. - Deixe a distribuição com a configuração padrão desmarcada.
- Nome da métrica baseada em log :
vm-lifecycle-events
. Você deve usar esse nome exato para que o painel funcione corretamente. - Descrição : opcional — insira uma descrição para esta métrica.
- Unidades :
1
Na seção Seleção de filtro , especifique o seguinte:
- No menu Selecionar projeto ou bucket de log , selecione: Logs do projeto
- No filtro Build digite:
resource.type = "gce_instance" AND log_id("cloudaudit.googleapis.com/activity") OR log_id("cloudaudit.googleapis.com/system_event") operation.first="true"
Na seção Etiquetas , clique em Adicionar etiqueta .
Especifique o seguinte:
- Nome do rótulo :
method
- Tipo de rótulo :
STRING
- Nome do campo :
protoPayload.methodName
- Expressão regular :
(recreateInstance|hostError|automaticRestart|guestTerminate|terminateOnHostMaintenance|preempted|insert|stop|delete|reset|start)
- Nome do rótulo :
Clique em Concluído
Clique em Criar métrica .
- Execute uma operação
stop
estart
em qualquer instância existente ou crie uma nova VM para fins de teste. Abra Painéis no console do Google Cloud.
Na guia Lista de painéis , abra o painel
GCE VM Lifecycle Events Monitoring
.Selecione a VM no menu suspenso Nome .
Limite a série temporal a um período relevante.
Para obter mais maneiras de filtrar o painel, consulte Adicionar um filtro temporário .
O gráfico Linha do tempo do ciclo de vida da VM exibe o seguinte:
- A métrica
compute.googleapis.com/instance/uptime
que indica se a VM estava em execução em um determinado momento, onde 1 está ativo e 0 está inativo. Observe que essa métrica reflete a disponibilidade como resultado da atividade do usuário e de eventos do sistema, e não é uma indicação do SLA do Compute Engine . - A métrica baseada em log
vm-lifecycle-events
para contar o número de ações do ciclo de vida, comostop
oustart
executadas na instância em um determinado momento
- A métrica
O gráfico Eventos mostra a mesma métrica baseada em log
vm-lifecycle-events
, mas em uma visualização ampliada para facilitar a leitura. Observe que embora os eixos X estejam alinhados, as cores não estão sincronizadas entre os dois gráficos.Identifique a VPC compartilhada usada pelas VMs usando o comando
gcloud compute instances describe
:gcloud compute instances describe VM_NAME \ --format="flattened(networkInterfaces[].network)"
A saída é semelhante à seguinte:
networkInterfaces[0].network: https://www.googleapis.com/compute/v1/projects/SHARED_VPC_PROJECT/global/networks/FROZEN_NETWORK
Verifique no projeto host da VPC compartilhada se o faturamento foi desativado.
resource.type="project" protoPayload.request.@type="type.googleapis.com/google.internal.cloudbilling.billingaccount.v1.DisableResourceBillingRequest" protoPayload.response.resourceBillingInfo.billingAccountAssignmentType="DISABLED"
Se aplicável, ative o faturamento no projeto host .
Diagnosticando encerramentos e reinicializações de instâncias
Para diagnosticar a causa do encerramento ou reinicialização espontânea de uma instância, você deve consultar os logs das suas instâncias . Para identificar rapidamente a causa de futuros desligamentos ou reinicializações de VM, crie um painel que contenha os logs. Depois de consultar os logs, revise os campos
method
eprincipalEmail
para determinar qual evento e qual usuário ou serviço iniciou o desligamento ou a reinicialização.Consultando registros de auditoria da nuvem
Consulte os registros de auditoria da nuvem para exibir uma lista de eventos do sistema e atividades administrativas que podem ter causado o desligamento ou a reinicialização.
Console
gcloud
Revisão dos registros de auditoria da nuvem
Revise os campos
method
eprincipalEmail
dos registros de auditoria da nuvem para determinar por que sua VM foi desligada ou reinicializada.Monitore eventos do ciclo de vida da VM
Você pode monitorar eventos do ciclo de vida da VM (incluindo desligamentos, reinicializações e erros de host) criando um painel do Cloud Monitoring.
Este painel permite visualizar eventos do sistema e atividades do administrador que são descritos com mais detalhes na seção Revisão de logs de auditoria deste documento.
Figura 1. Painel de exemplo mostrando a disponibilidade de uma instância e seus eventos de ciclo de vida, como uma instância interrompida.
Criar métrica baseada em log
Para capturar eventos do ciclo de vida da VM, crie uma métrica baseada em log definida pelo usuário . Esta métrica utiliza registos de auditoria para manter a contagem do número de vezes que um determinado evento do ciclo de vida da VM ocorreu.
Para obter as permissões necessárias para criar a métrica, peça ao administrador que conceda a você a função do IAM Gravador de registros (
roles/logging.logWriter
) no projeto. Para obter mais informações sobre a concessão de funções, consulte Gerenciar acesso a projetos, pastas e organizações .Você também poderá obter as permissões necessárias por meio de funções personalizadas ou outras funções predefinidas .
Crie uma métrica baseada em log definida pelo usuário fazendo o seguinte:
Na seção Tipo de métrica , faça o seguinte:
Na seção Detalhes , insira as seguintes informações:
Use o painel
Nenhum dado aparece no painel até que uma instância experimente um evento do sistema ou uma atividade do administrador. Para testar se o painel funciona, execute uma atividade de administrador, como uma operação
stop
estart
:Para obter as permissões necessárias para usar o painel, peça ao administrador para conceder a você a função do IAM de visualizador do painel de monitoramento (
roles/monitoring.dashboardViewer
) no projeto. Para obter mais informações sobre a concessão de funções, consulte Gerenciar acesso a projetos, pastas e organizações .Você também poderá obter as permissões necessárias por meio de funções personalizadas ou outras funções predefinidas .
O painel contém dois gráficos que exibem uma linha do tempo de eventos do sistema e atividades do administrador que ocorrem em uma instância:
Investigando o desligamento em massa de VMs em projetos
O Compute Engine poderá encerrar várias VMs conectadas a um projeto host de VPC compartilhada se o faturamento do projeto host de VPC compartilhada estiver inativo ou desativado.
Para determinar se suas VMs foram encerradas por uma solicitação de desligamento em massa, procure operações de interrupção iniciadas por
cloud-cluster-manager@prod.google.com
.Iniciar uma instância afetada retorna um erro semelhante a este:
Starting instance(s) INSTANCE_NAME...failed. ERROR: (gcloud.compute.instances.start) The default network interface [nic0] is frozen.
Para resolver esse problema, faça o seguinte:
Para ajudar a evitar que esse problema se repita, leia Proteger o vínculo entre um projeto e sua conta de cobrança .
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-04-21 UTC.
-