Monitore e planeje um evento de manutenção do host


Cada instância de máquina virtual (VM) ou instância bare metal usa uma política de manutenção de host para determinar o comportamento da instância durante uma operação de manutenção. Algumas instâncias oferecem a opção adicional de visualizar o cronograma de manutenção antecipadamente.

Esta página explica como monitorar e planejar um evento de manutenção de host em instâncias do Compute Engine.

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

    1. 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.

    2. Set a default region and zone.
    3. REST

      Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

        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.

      Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.

Funções obrigatórias

Para obter as permissões necessárias para criar instâncias e gerenciar a manutenção de instâncias, peça ao administrador que conceda a você os seguintes papéis do IAM no projeto:

Para obter mais informações sobre a concessão de funções, consulte Gerenciar acesso a projetos, pastas e organizações .

Essas funções predefinidas contêm as permissões necessárias para criar instâncias e gerenciar a manutenção de instâncias. Para ver as permissões exatas necessárias, expanda a seção Permissões necessárias :

Permissões necessárias

As seguintes permissões são necessárias para criar instâncias e gerenciar a manutenção de instâncias:

  • Para obter informações sobre uma instância, incluindo metadados: compute.instances.get

Você também poderá obter essas permissões com funções personalizadas ou outras funções predefinidas .

Limitações

Você poderá visualizar notificações sobre o próximo evento de manutenção de uma instância somente se a instância usar um tipo de máquina de uma das seguintes famílias de máquinas:

  • Famílias de máquinas otimizadas para acelerador :

  • Famílias de máquinas de uso geral :

  • Famílias de máquinas com otimização de memória :

  • Famílias de máquinas otimizadas para armazenamento :

Visão geral das notificações de manutenção

O Google envia notificações sobre futuras manutenções do host por meio de vários métodos. Quando a janela de manutenção for aberta, Google Cloud executa automaticamente a manutenção em sua instância. Ao monitorar as próximas janelas de manutenção da sua instância, você pode preparar proativamente suas cargas de trabalho para lidar com a manutenção futura com interrupção mínima.

As instâncias de computação que oferecem suporte a notificações de eventos de manutenção têm as seguintes características:

  • Menos eventos de manutenção : em geral, as instâncias com intervalos de manutenção recorrentes deverão ver menos eventos de manutenção.
  • Notificação de manutenção mais longa : seja notificado sobre eventos de manutenção com bastante antecedência para fins de planejamento.
  • Monitoramento e planejamento : use o Cloud Logging para monitorar seu cronograma de manutenção. Use incidentes e alertas para se manter informado.
  • Controle de manutenção sob demanda : inicie a manutenção durante o período de notificação para atualizar suas instâncias quando for adequado à sua programação.

As informações sobre um evento de notificação futuro são apresentadas de maneira semelhante à seguinte:

upcomingMaintenance:{
    "canReschedule":True
    "latestWindowStartTime": "2024-12-01T19:00:01Z"
    "maintenanceStatus":"PENDING"
    "type":"SCHEDULED"
    "windowEndTime": "2024-12-01T22:00:00Z"
    "windowStartTime": "2024-12-01T19:00:00Z"
}

Se não houver nenhum evento de manutenção futuro, você verá uma mensagem semelhante a esta:

{ "error": "no notifications have been received yet, try again later" }

Definições de status de manutenção

As definições de status a seguir explicam as respostas a consultas sobre manutenção de host para uma instância. Eles fornecem informações relacionadas ao evento de manutenção. A CLI do Google Cloud, o REST e o servidor de metadados usam estas mesmas respostas:

  • canReschedule : se a manutenção pode ser iniciada manualmente durante o período de notificação desta instância.
    • TRUE : a manutenção acionada pelo cliente pode ser realizada durante o período de notificação.
    • FALSE : a manutenção acionada pelo cliente não pode ser realizada nesta instância. Isso geralmente ocorre durante o período em que a instância está em manutenção ou se o tipo de instância não oferece suporte à manutenção sob demanda.
  • lastWindowStartTime : o último horário para o qual a janela de manutenção pode ser movida.
  • manutençãoStatus : o status atual do evento de manutenção.
    • ONGOING : a operação de manutenção está em andamento.
    • PENDING : a operação de manutenção está programada, mas ainda não foi iniciada.
  • type : o tipo de manutenção a ser realizada.
    • NONE : Nenhuma manutenção está agendada para esta instância.
    • SCHEDULED : para manutenção disruptiva, o Compute Engine fornece um aviso prévio mínimo de sete dias para a maioria das instâncias; Instâncias X4 recebem aviso com aproximadamente 60 dias de antecedência.
    • UNSCHEDULED : como a manutenção representa atualizações críticas, o Compute Engine tenta fornecer o máximo de antecedência possível, mas geralmente é muito menor do que para eventos de manutenção programados.
  • windowEndTime : o final da janela de tempo em que ocorre a manutenção.
  • windowStartTime : o início da janela de tempo em que ocorre a manutenção.

Comportamentos de status de manutenção

Ao gerenciar eventos de manutenção, verifique os valores de canReschedule e maintenanceStatus . Quando combinados, esses campos indicam quais ações você pode ou não realizar em relação ao reagendamento de um evento de manutenção:

  • canReschedule=True e maintenanceStatus=Pending — você pode iniciar manualmente o evento de manutenção para a instância antes do horário de início programado.
  • canReschedule=False e maintenanceStatus=Ongoing — a manutenção está em andamento e não pode ser reprogramada.
  • canReschedule=False e maintenanceStatus=Pending — sua instância não oferece suporte a eventos de manutenção acionados manualmente.

Ver notificações de manutenção

Você pode encontrar notificações de manutenção consultando suas instâncias de computação, o servidor de metadados ou usando o Cloud Logging.

Verifique as instâncias para uma notificação de evento de manutenção

Use a Google Cloud CLI, REST ou consulte o servidor de metadados para ver se há um evento de manutenção de host futuro para sua instância.

gcloud

Para ver a próxima janela de manutenção de uma instância, use o comando gcloud compute instances describe .

gcloud compute instances describe INSTANCE_NAME \
   --zone=ZONE_NAME --format="yaml(resourceStatus.upcomingMaintenance)"

Substitua o seguinte:

  • INSTANCE_NAME : o nome da instância de computação.
  • ZONE_NAME : a zona onde a instância reside.

Se houver um evento de manutenção futuro, a resposta conterá uma seção semelhante a esta:

  resourceStatus:
    upcomingMaintenance:
      canReschedule: true
      latestWindowStartTime: '2025-01-15T12:00:01Z'
      maintenanceStatus: PENDING
      type: SCHEDULED
      windowEndTime: '2025-01-15T16:00:00Z'
      windowStartTime: '2025-01-15T12:00:00Z'

Nesta resposta:

  • A manutenção está agendada para a data e hora indicadas em windowStartTime .
  • canReschedule está definido como true e maintenanceStatus está definido como PENDING . Essas configurações indicam que você pode iniciar manualmente o evento de manutenção agendada antes da data mostrada em latestWindowStartTime .

DESCANSAR

Para ver se há manutenção futura para uma instância, construa uma solicitação GET usando o método instances.get :

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/INSTANCE_NAME

Substitua o seguinte:

  • PROJECT_NAME : o nome do projeto que contém a instância de computação.
  • ZONE : A zona onde a instância está localizada.
  • INSTANCE_NAME : o nome da instância.

Se houver um evento de manutenção futuro, a resposta conterá uma seção semelhante a esta:

  upcomingMaintenance:{
    "canReschedule":True
    "latestWindowStartTime": "2023-12-01T19:00:01Z"
    "maintenanceStatus":"PENDING"
    "type":"SCHEDULED"
    "windowEndTime": "2023-12-01T22:00:00Z"
    "windowStartTime": "2023-12-01T19:00:00Z"
  }

Nesta resposta:

  • A manutenção está agendada para a data e hora indicadas em windowStartTime .
  • canReschedule está definido como True e maintenanceStatus está definido como PENDING . Essas configurações indicam que você pode iniciar manualmente o evento de manutenção agendada antes da data mostrada em latestWindowStartTime .

Servidor de metadados

No sistema operacional convidado, consulte o servidor de metadados para ver o próximo evento de manutenção.

$ curl http://metadata.google.internal/computeMetadata/v1/instance/upcoming-maintenance?alt=json -H "Metadata-Flavor: Google"

Verifique o Cloud Logging para ver uma notificação de evento de manutenção

O Compute Engine cria eventos do sistema nos registros de auditoria do Cloud para uma instância para eventos de manutenção. Você pode visualizar esses eventos antes, durante e depois de um evento de manutenção usando o Cloud Logging e o Logs Explorer .

Console

Para consultar os logs de auditoria para notificações de manutenção de uma instância, conclua as etapas a seguir:

  1. Acesse a página de instâncias de VM .

    Acesse as instâncias de VM

  2. Clique no Nome da instância para a qual você deseja visualizar notificações de manutenção.

    A página de detalhes da instância é aberta.

  3. Na seção Logs , clique no link denominado Logging .

    A página do editor de consultas do Logs Explorer é aberta. No painel Consulta , o resource.type e o ID da instância já estão preenchidos para sua instância.

  4. No painel Consulta , adicione a seguinte linha à consulta:

    operation.producer="compute.instances.upcomingMaintenance" OR
    "compute.instances.terminateOnHostMaintenance" OR
    "compute.instances.migrateOnHostMaintenance"
    
  5. Clique em Executar consulta . Os eventos de notificação de manutenção correspondentes aparecem no painel de resultados da consulta.

    No painel de resultados da consulta, você pode clicar em Editar horário para expandir o período de pesquisa ou para restringir os resultados a datas ou horários específicos.

  6. Clique em uma entrada de registro para visualizar os detalhes da notificação de manutenção.

    1. Para notificações de manutenção futura, expanda os metadata do cabeçalho para visualizar informações como status atual, tipo e horários de início e término da janela de manutenção programada.
    2. Expanda o status do título para visualizar a mensagem descritiva da notificação.

Exemplos de notificações de manutenção

Uma notificação de evento de manutenção para uma instância aparece no Logs Explorer com valores semelhantes a estes:

  • methodName : "compute.instances.upcomingMaintenance"
  • metadata :
    • maintenanceStatus : "PENDING"
    • windowStartTime : "2024-07-23T20:00:00Z"

Quando o evento de manutenção é iniciado, um novo evento informativo aparece nos logs com valores semelhantes aos seguintes:

  • methodName : "compute.instances.upcomingMaintenance"
  • metadata :
    • maintenanceStatus : "ONGOING"
    • windowStartTime : "2024-07-23T20:00:00Z"

Durante o evento de manutenção, dependendo da configuração da política de manutenção do host da instância, um dos seguintes eventos do sistema é registrado nos logs de auditoria:

  • Para instâncias configuradas para usar migração em tempo real durante eventos de manutenção, um evento de sistema com methodName: "compute.instances.migrateOnHostMaintenance" .
  • Para instâncias configuradas para serem encerradas durante eventos de manutenção, um evento de sistema com methodName: "compute.instances.terminateOnHostMaintenance" .

Quando o evento de manutenção termina, um novo evento informativo aparece nos logs de auditoria com valores semelhantes aos seguintes:

  • methodName : "compute.instances.upcomingMaintenance"
  • status: { message: "Maintenance window has completed for this instance. All maintenance notifications on the instance have been removed." }

Configurar alertas para notificações de manutenção do host

Você pode configurar uma política de alertas baseada em log para procurar eventos específicos de notificação de manutenção e enviar alertas usando um canal de notificação .

Console

Para criar um alerta para um evento de manutenção para sua instância, conclua as etapas a seguir:

  1. Acesse a página de instâncias de VM .

    Acesse as instâncias de VM

  2. Clique no Nome da instância para a qual deseja criar um alerta de evento de manutenção.

    A página de detalhes da instância é aberta.

  3. Na seção Logs , clique no link denominado Logging .

    A página do editor de consultas do Logs Explorer é aberta. No painel Consulta , o resource.type e o ID da instância já estão preenchidos para sua instância.

  4. No painel Consulta , adicione a seguinte linha à consulta:

    operation.producer="compute.instances.upcomingMaintenance"
    
  5. Clique em Executar consulta . Os eventos de notificação de manutenção correspondentes aparecem no painel de resultados da consulta.

  6. No painel de resultados da consulta, clique em Editar horário .

    1. No lado esquerdo da janela de edição, no campo Tempo relativo , insira 1d para visualizar as entradas de registro da semana anterior.
    2. Clique em Aplicar .
  7. No cabeçalho do painel Resultados da consulta , clique em Criar alerta . Se a sua janela de visualização for estreita, a opção Criar alerta poderá aparecer no menu Ações .

  8. No painel Criar política de alerta baseada em logs , na seção Detalhes do alerta , faça o seguinte:

    1. Insira um nome para a política de alerta, por exemplo Upcoming maintenance for my-c3d-vm@us-central1-b .
    2. No menu Nível de gravidade da política , selecione Sem gravidade .

    3. No campo Documentação , você pode inserir uma descrição para sua política de alertas. Você também pode incluir informações que possam ajudar o destinatário de uma notificação a diagnosticar o problema. A string a seguir resume o motivo da notificação:

      Log-based alerting policy in project ${project} to monitor upcoming
      maintenance notifications. See also "Host maintenance alerts" and
      "onHostMaintenance actions" alerting policies.
      

      Para obter informações sobre como formatar e personalizar o conteúdo deste campo, consulte Usando Markdown e variáveis ​​em modelos de documentação .

    4. Para avançar para a próxima etapa, clique em Avançar .

  9. Na seção Escolher logs para incluir no alerta , verifique a consulta e os resultados clicando em Visualizar logs .

    A consulta que você criou no painel Consulta também é exibida nesse painel. Recomendamos criar a consulta primeiro no painel Consulta do Logs Explorer.

    Você pode editar a consulta neste painel, se necessário. Se você editar a consulta, verifique os resultados clicando em Visualizar logs .

  10. Clique em Avançar .

  11. No painel Definir frequência de notificação e duração do fechamento automático , faça o seguinte:

    1. Selecione o tempo mínimo entre notificações. Esse valor permite controlar o número de notificações recebidas do Monitoring se essa condição for atendida diversas vezes. Para este exemplo, selecione 1 dia nas opções.

    2. Para a duração do fechamento automático do incidente , use o valor máximo de 7 dias.

    3. Clique em Avançar .

  12. Se você já tiver um canal de notificação por e-mail configurado, poderá selecioná-lo na lista. Caso contrário, clique em Gerenciar canais de notificação e adicione um canal de e-mail. Para obter informações sobre como criar canais de notificação, consulte Criar e gerenciar canais de notificação .

  13. Clique em Salvar .

    Sua política de alertas baseada em log agora está pronta para ser testada conforme descrito em Testar o exemplo de política de alertas baseada em log

Para saber mais, leia Configurar alertas baseados em log e Criar e gerenciar canais de notificação .

O que vem a seguir