Monitorar e planejar um evento de manutenção do host


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

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

Antes de começar

  • 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:

    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. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    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.

        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.

Funções exigidas

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

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

Esses papéis predefinidos contêm as permissões necessárias para criar instâncias e gerenciar a manutenção delas. Para conferir 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 delas:

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

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Limitações

Você só poderá conferir as notificações do próximo evento de manutenção de uma instância se ela usar um tipo de máquina de uma das seguintes famílias:

  • Famílias de máquinas com otimização de 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 com otimização de armazenamento:

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

O Google envia notificações sobre a próxima manutenção do host usando vários métodos. Quando a janela de manutenção é aberta, o Google Cloud realiza a manutenção automaticamente na sua instância. Ao monitorar as próximas janelas de manutenção da sua instância, é possível preparar proativamente suas cargas de trabalho para lidar com a manutenção futura com o mínimo de interrupção.

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 precisam ter menos eventos de manutenção.
  • Notificação de manutenção mais longa: receba notificações sobre eventos de manutenção com bastante antecedência para fins de planejamento.
  • Monitoramento e planejamento: use o Cloud Logging para acompanhar sua programação de manutenção. Use incidentes e alertas para ficar por dentro.
  • Controle de manutenção sob demanda: inicie a manutenção durante o período de notificação para atualizar as instâncias quando for adequado ao seu planejamento.

As informações sobre um evento de notificação futuro são apresentadas de forma semelhante a esta:

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 um evento de manutenção, você verá uma mensagem semelhante a esta:

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

Definições do status de manutenção

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

  • canReschedule: se a manutenção pode ser iniciada manualmente durante o período de notificação dessa instância.
    • TRUE: a manutenção acionada pelo cliente pode ser realizada durante o período de notificação.
    • FALSE: não é possível realizar a manutenção acionada pelo cliente nessa 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.
  • latestWindowStartTime: o horário mais recente para o qual a janela de manutenção pode ser movida.
  • maintenanceStatus: 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 começou.
  • type: o tipo de manutenção a ser realizado.
    • NONE: nenhuma manutenção está programada para essa instância.
    • SCHEDULED: para manutenção com interrupção, o Compute Engine envia um aviso de 7 dias para a maioria das instâncias. As instâncias X4 recebem um aviso com aproximadamente 60 dias de antecedência.
    • UNSCHEDULED: como a manutenção representa atualizações críticas, o Compute Engine tenta fornecer o maior aviso possível, mas geralmente é muito menor do que para eventos de manutenção programados.
  • windowEndTime: o fim da janela de tempo em que a manutenção ocorre.
  • windowStartTime: o início da janela de tempo em que a manutenção ocorre.

Comportamentos do status de manutenção

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

  • canReschedule=True e maintenanceStatus=Pending: é possível iniciar manualmente o evento de manutenção da 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: a instância não oferece suporte a eventos de manutenção acionados manualmente.

Conferir notificações de manutenção

Para encontrar notificações de manutenção, consulte suas instâncias de computação, o servidor de metadados ou use o Cloud Logging.

Verificar se há notificações de evento de manutenção nas instâncias

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

gcloud

Para conferir 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(upcomingMaintenance)"

Substitua:

  • INSTANCE_NAME: o nome da instância de computação.
  • ZONE_NAME: a zona em que a instância está localizada.

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

  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"
  }

Nesta resposta:

  • A manutenção está programada para a data e a hora mostradas em windowStartTime.
  • canReschedule é definida como True e maintenanceStatus como PENDING. Essas configurações indicam que é possível iniciar manualmente o evento de manutenção programado antes da data mostrada em latestWindowStartTime.

REST

Para saber se há manutenção futura em uma instância, crie 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:

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

Se houver um evento de manutenção iminente, 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á programada para a data e a hora mostradas em windowStartTime.
  • canReschedule é definida como True e maintenanceStatus como PENDING. Essas configurações indicam que é possível iniciar manualmente o evento de manutenção programado antes da data mostrada em latestWindowStartTime.

Servidor de metadados

No SO 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"

Verificar se há notificações de evento de manutenção no Cloud Logging

O Compute Engine cria eventos do sistema nos Registros de auditoria do Cloud para uma instância para eventos de manutenção. É possível conferir esses eventos antes, durante e depois de um evento de manutenção usando o Cloud Logging e o Explorador de registros.

Console

Para consultar os registros de auditoria em busca de notificações de manutenção de uma instância, siga estas etapas:

  1. Acesse a página Instâncias da VM.

    Acessar instâncias de VM

  2. Clique no Nome da instância em que você quer ver as notificações de manutenção.

    A página Detalhes da instância é aberta.

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

    A página Editor de consultas do Logs Explorer é aberta. No painel Query, 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 são exibidos no painel de resultados da consulta.

    No painel de resultados da consulta, clique em Editar hora para expandir o período de pesquisa ou restringir os resultados a datas ou horas específicas.

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

    1. Para notificações de manutenção futura, abra o título metadata para conferir informações como o status atual, o tipo e os horários de início e término da janela de manutenção programada.
    2. Abra o cabeçalho status para conferir 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 Explorador de registros com valores semelhantes a estes:

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

Quando o evento de manutenção começa, um novo evento informativo aparece nos registros com valores semelhantes a este:

  • 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 registros de auditoria:

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

Quando o evento de manutenção termina, um novo evento informativo aparece nos registros de auditoria com valores semelhantes a este:

  • 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

É possível configurar uma política de alertas baseada em registros para pesquisar 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 da sua instância, siga estas etapas:

  1. Acesse a página Instâncias da VM.

    Acessar instâncias de VM

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

    A página Detalhes da instância é aberta.

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

    A página Editor de consultas do Logs Explorer é aberta. No painel Query, 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 são exibidos no painel de resultados da consulta.

  6. No painel de resultados da consulta, clique em Editar hora.

    1. No lado esquerdo da janela de edição, no campo Tempo relativo, digite 1d para conferir 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 janela de visualização for estreita, a opção Criar alerta poderá aparecer no menu Ações.

  8. No painel Criar política de alertas com base em registros, na seção Detalhes do alerta, faça o seguinte:

    1. Insira um nome para a política de alertas, por exemplo, Upcoming maintenance for my-c3d-vm@us-central1-b.
    2. No menu Nível de gravidade da política, selecione Nenhuma 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 informações sobre como formatar e adaptar o conteúdo desse campo, consulte Como usar o Markdown e variáveis em modelos de documentação.

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

  9. Na seção Escolher registros a serem incluídos no alerta, verifique a consulta e os resultados clicando em Visualizar registros.

    A consulta que você criou no painel Consulta também é exibida nesse painel. Recomendamos criar a consulta no painel Consulta do Explorador de registros.

    É possível editar a consulta neste painel, se necessário. Se você editar a consulta, verifique os resultados clicando em Visualizar registros.

  10. Clique em Próxima.

  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 as notificações. Esse valor permite controlar o número de notificações recebidas do Monitoramento se essa condição for atendida várias vezes. Neste 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 Próxima.

  12. Se você já tiver um canal de notificação por e-mail configurado, selecione-o na lista. Caso contrário, clique em Gerenciar canais de notificação e adicione um canal de e-mail. Para saber mais sobre como criar canais de notificação, consulte Criar e gerenciar canais de notificação.

  13. Clique em Salvar.

    Sua política de alertas com base em registros está pronta para ser testada, conforme descrito em Testar o exemplo de política de alertas com base em registros.

Para saber mais, leia Configurar alertas com base em registros e Criar e gerenciar canais de notificação.

A seguir