Supervisa y planifica un evento de mantenimiento del host


Cada instancia de máquina virtual (VM) o Bare Metal usa una política de mantenimiento del host para determinar el comportamiento de la instancia durante una operación de mantenimiento. Algunas instancias ofrecen la opción adicional de ver el programa de mantenimiento con anticipación.

En esta página, se explica cómo supervisar y planificar un evento de mantenimiento del host en las instancias de Compute Engine.

Antes de comenzar

  • Si aún no lo hiciste, configura la autenticación. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    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 las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.

Roles obligatorios

Para obtener los permisos que necesitas para crear instancias y administrar su mantenimiento, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Estos roles predefinidos contienen los permisos necesarios para crear instancias y administrar su mantenimiento. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para crear instancias y administrar su mantenimiento:

  • Para obtener información sobre una instancia, incluidos los metadatos, haz lo siguiente: compute.instances.get

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Limitaciones

Puedes ver las notificaciones del próximo evento de mantenimiento de una instancia solo si esta usa un tipo de máquina de una de las siguientes familias de máquinas:

  • Familias de máquinas con optimización de acelerador:

  • Familias de máquinas de uso general:

  • Familias de máquinas con optimización de memoria:

  • Familias de máquinas optimizadas para el almacenamiento:

Descripción general de las notificaciones de mantenimiento

Google envía notificaciones sobre el próximo mantenimiento del host a través de varios métodos. Cuando se abre el período de mantenimiento, Google Cloud realiza el mantenimiento de tu instancia automáticamente. Si supervisas los próximos períodos de mantenimiento de tu instancia, puedes preparar de forma proactiva tus cargas de trabajo para que manejen el próximo mantenimiento con interrupciones mínimas.

Las instancias de procesamiento que admiten notificaciones de eventos de mantenimiento tienen las siguientes características:

  • Menos eventos de mantenimiento: En general, las instancias con intervalos de mantenimiento recurrentes deberían ver menos eventos de mantenimiento.
  • Notificación de mantenimiento más largo: Recibe notificaciones de los eventos de mantenimiento con mucha anticipación para planificarlos.
  • Supervisión y planificación: Usa Cloud Logging para realizar un seguimiento del programa de mantenimiento. Usa incidentes y alertas para mantenerte al tanto.
  • Control de mantenimiento a pedido: Inicia el mantenimiento durante el período de notificación para actualizar las instancias cuando se ajusten a tu programa.

La información sobre un próximo evento de notificación se presenta de una manera similar a la siguiente:

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

Si no hay ningún evento de mantenimiento próximo, verás un mensaje similar al siguiente:

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

Definiciones del estado de mantenimiento

En las siguientes definiciones de estado, se explican las respuestas a las consultas sobre el mantenimiento del host de una instancia. Proporcionan información relacionada con el evento de mantenimiento. Google Cloud CLI, REST y el servidor de metadatos usan estas mismas respuestas:

  • canReschedule: Indica si el mantenimiento se puede iniciar de forma manual durante el período de notificación de esta instancia.
    • TRUE: El mantenimiento activado por el cliente se puede realizar durante el período de notificación.
    • FALSE: No se puede realizar el mantenimiento activado por el cliente en esta instancia. Esto suele ocurrir durante el período en el que la instancia está en mantenimiento o si el tipo de instancia no admite el mantenimiento a pedido.
  • latestWindowStartTime: Es la hora más reciente a la que se puede mover el período de mantenimiento.
  • maintenanceStatus: Es el estado actual del evento de mantenimiento.
    • ONGOING: La operación de mantenimiento está en curso.
    • PENDING: La operación de mantenimiento está programada, pero aún no se inició.
  • type: Es el tipo de mantenimiento que se realizará.
    • NONE: No hay mantenimiento programado para esta instancia.
    • SCHEDULED: En el caso de los mantenimientos disruptivos, Compute Engine proporciona un mínimo de 7 días de aviso para la mayoría de las instancias. Las instancias X4 reciben un aviso anticipado de aproximadamente 60 días.
    • UNSCHEDULED: Debido a que el mantenimiento representa actualizaciones críticas, Compute Engine intenta proporcionar el mayor aviso posible, pero suele ser mucho menor que el de los eventos de mantenimiento programados.
  • windowEndTime: Es el final del período en el que se realiza el mantenimiento.
  • windowStartTime: Es el inicio del período en el que se realiza el mantenimiento.

Comportamientos del estado de mantenimiento

Cuando administres eventos de mantenimiento, verifica los valores de canReschedule y maintenanceStatus. Cuando se combinan, estos campos indican qué acciones puedes realizar y cuáles no con respecto a la reprogramación de un evento de mantenimiento:

  • canReschedule=True y maintenanceStatus=Pending: Puedes iniciar manualmente el evento de mantenimiento de la instancia antes de la hora de inicio programada.
  • canReschedule=False y maintenanceStatus=Ongoing: El mantenimiento está en curso y no se puede reprogramar.
  • canReschedule=False y maintenanceStatus=Pending: Tu instancia no admite eventos de mantenimiento activados de forma manual.

Cómo ver las notificaciones de mantenimiento

Puedes encontrar notificaciones de mantenimiento si consultas tus instancias de procesamiento, el servidor de metadatos o Cloud Logging.

Verifica las instancias para ver si hay una notificación de evento de mantenimiento

Usa Google Cloud CLI, REST o consulta el servidor de metadatos para ver si hay un próximo evento de mantenimiento del host para tu instancia.

gcloud

Para ver el próximo período de mantenimiento de una instancia, usa el comando gcloud compute instances describe.

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

Reemplaza lo siguiente:

  • INSTANCE_NAME: Es el nombre de la instancia de procesamiento.
  • ZONE_NAME: Es la zona en la que reside la instancia.

Si hay un evento de mantenimiento próximo, la respuesta contiene una sección similar a la siguiente:

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

En esta respuesta, se incluye lo siguiente:

  • El mantenimiento está programado para la fecha y hora que se muestran en windowStartTime.
  • canReschedule se establece en True y maintenanceStatus se establece en PENDING. Esta configuración indica que puedes iniciar manualmente el evento de mantenimiento programado antes de la fecha que se muestra en latestWindowStartTime.

REST

Para ver si hay un mantenimiento próximo para una instancia, crea una solicitud GET con el método instances.get:

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

Reemplaza lo siguiente:

  • PROJECT_NAME: Es el nombre del proyecto que contiene la instancia de procesamiento.
  • ZONE: La zona en la que se encuentra la instancia.
  • INSTANCE_NAME: El nombre de la instancia

Si hay un evento de mantenimiento próximo, la respuesta contiene una sección similar a la siguiente:

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

En esta respuesta, se incluye lo siguiente:

  • El mantenimiento está programado para la fecha y hora que se muestran en windowStartTime.
  • canReschedule se establece en True y maintenanceStatus se establece en PENDING. Esta configuración indica que puedes iniciar manualmente el evento de mantenimiento programado antes de la fecha que se muestra en latestWindowStartTime.

Servidor de metadatos

Desde el SO invitado, consulta el servidor de metadatos para ver el próximo evento de mantenimiento.

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

Revisa Cloud Logging para ver si hay una notificación de evento de mantenimiento

Compute Engine crea eventos del sistema en los registros de auditoría de Cloud para una instancia de eventos de mantenimiento. Puedes ver estos eventos antes, durante y después de un evento de mantenimiento con Cloud Logging y el Explorador de registros.

Console

Para consultar los registros de auditoría en busca de notificaciones de mantenimiento de una instancia, completa los siguientes pasos:

  1. Ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Haz clic en el Nombre de la instancia para la que deseas ver las notificaciones de mantenimiento.

    Se abre la página de detalles de la instancia.

  3. En la sección Registros, haz clic en el vínculo etiquetado como Registro.

    Se abrirá la página Editor de consultas del Explorador de registros. En el panel Query, resource.type y el ID de instancia ya se propagaron para tu instancia.

  4. En el panel Consulta, agrega la siguiente línea a la consulta:

    operation.producer="compute.instances.upcomingMaintenance" OR
    "compute.instances.terminateOnHostMaintenance" OR
    "compute.instances.migrateOnHostMaintenance"
    
  5. Haz clic en Ejecutar consulta. Los eventos de notificación de mantenimiento que coincidan aparecerán en el panel de resultados de la consulta.

    En el panel de resultados de la búsqueda, puedes hacer clic en Editar hora para expandir el período de búsqueda o para limitar los resultados a fechas o horas específicas.

  6. Haz clic en una entrada de registro para ver los detalles de la notificación de mantenimiento.

    1. Para ver las próximas notificaciones de mantenimiento, expande el encabezado metadata para ver información como el estado actual, el tipo y las horas de inicio y finalización del período de mantenimiento programado.
    2. Expande el encabezado status para ver el mensaje descriptivo de la notificación.

Ejemplos de notificaciones de mantenimiento

En el Explorador de registros, aparece una notificación de evento de mantenimiento para una instancia con valores similares a los siguientes:

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

Cuando comienza el evento de mantenimiento, aparece un nuevo evento informativo en los registros con valores similares a los siguientes:

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

Durante el evento de mantenimiento, según la configuración de la política de mantenimiento del host para la instancia, se registra uno de los siguientes eventos del sistema en los registros de auditoría:

  • En las instancias configuradas para usar la migración en vivo durante los eventos de mantenimiento, se genera un evento del sistema con methodName: "compute.instances.migrateOnHostMaintenance".
  • Para las instancias configuradas para finalizar durante los eventos de mantenimiento, un evento del sistema con methodName: "compute.instances.terminateOnHostMaintenance".

Cuando finaliza el evento de mantenimiento, aparece un nuevo evento informativo en los registros de auditoría con valores similares a los siguientes:

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

Configura alertas para las notificaciones de mantenimiento del host

Puedes configurar una política de alertas basada en registros para buscar eventos de notificación de mantenimiento específicos y enviar alertas con un canal de notificación.

Console

Para crear una alerta para un evento de mantenimiento de tu instancia, completa los siguientes pasos:

  1. Ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Haz clic en el Nombre de la instancia para la que deseas crear una alerta de evento de mantenimiento.

    Se abre la página de detalles de la instancia.

  3. En la sección Registros, haz clic en el vínculo etiquetado como Registro.

    Se abrirá la página Editor de consultas del Explorador de registros. En el panel Query, resource.type y el ID de instancia ya se propagaron para tu instancia.

  4. En el panel Consulta, agrega la siguiente línea a la consulta:

    operation.producer="compute.instances.upcomingMaintenance"
    
  5. Haz clic en Ejecutar consulta. Los eventos de notificación de mantenimiento que coincidan aparecerán en el panel de resultados de la consulta.

  6. En el panel de resultados de la consulta, haz clic en Editar hora.

    1. En el lado izquierdo de la ventana de edición, en el campo Tiempo relativo, ingresa 1d para ver las entradas de registro de la semana anterior.
    2. Haz clic en Aplicar.
  7. En el encabezado del panel Resultados de la consulta, haz clic en  Crear alerta. Si la ventana de visualización es estrecha, la opción Crear alerta podría aparecer en el menú Acciones.

  8. En el panel Crear política de alertas basada en registros, en la sección Detalles de la alerta, haz lo siguiente:

    1. Ingresa un nombre para la política de alertas, por ejemplo, Upcoming maintenance for my-c3d-vm@us-central1-b.
    2. En el menú Nivel de gravedad de la política, selecciona Sin gravedad.

    3. En el campo Documentación, puedes ingresar una descripción para tu política de alertas. También puedes incluir información que pueda ayudar al destinatario de una notificación a diagnosticar el problema. La siguiente cadena resume el motivo de la notificación:

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

      Para obtener información sobre cómo puedes dar formato y adaptar el contenido de este campo, consulta Cómo usar Markdown y variables en plantillas de documentación.

    4. Para avanzar al paso siguiente, haz clic en Siguiente.

  9. En la sección Elige registros para incluir en la alerta, haz clic en Obtener vista previa de los registros para verificar la consulta y los resultados.

    La consulta que creaste en el panel Consulta también se muestra en este panel. Recomendamos compilar la consulta en el panel Consulta del Explorador de registros.

    Si es necesario, puedes editar la consulta en este panel. Si editas la consulta, haz clic en Obtener vista previa de los registros para verificar los resultados.

  10. Haz clic en Siguiente.

  11. En el panel Establece la frecuencia de notificación y la duración del cierre automático, haz lo siguiente:

    1. Selecciona el tiempo mínimo entre notificaciones. Este valor te permite controlar la cantidad de notificaciones que recibes de la supervisión si se cumple esta condición varias veces. En este ejemplo, selecciona 1 día entre las opciones.

    2. Para la Duración del cierre automático de incidentes, usa el valor máximo de 7 días.

    3. Haz clic en Siguiente.

  12. Si ya tienes configurado un canal de notificaciones por correo electrónico, puedes seleccionarlo de la lista. Si no es así, haz clic en Administrar canales de notificaciones y agrega un canal de correo electrónico. Para obtener información sobre cómo crear canales de notificaciones, consulta Cómo crear y administrar canales de notificaciones.

  13. Haz clic en Guardar.

    Tu política de alertas basada en registros ya está lista para probarse como se describe en Cómo probar la política de alertas basada en registros de ejemplo.

Para obtener más información, lee Configura alertas basadas en registros y Crea y administra canales de notificaciones.

¿Qué sigue?