Supervisa y planifica un evento de mantenimiento del host


Cada instancia de máquina virtual (VM) o instancia de 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 APIs 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. 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 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.

          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.

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

Roles obligatorios

Para obtener los permisos que necesitas para crear instancias y administrar el mantenimiento de instancias, 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 el mantenimiento de las instancias. 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 el mantenimiento de las instancias:

  • 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

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

  • 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 automáticamente el mantenimiento de tu instancia. Si supervisas los próximos períodos de mantenimiento de tu instancia, puedes preparar de forma proactiva tus cargas de trabajo para que controlen el próximo mantenimiento con la menor interrupción posible.

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 prolongada: Recibe notificaciones de eventos de mantenimiento con mucha anticipación para planificar.
  • Supervisión y planificación: Usa Cloud Logging para realizar un seguimiento del programa de mantenimiento. Usa los incidentes y las alertas para mantenerte informado.
  • Control de mantenimiento a pedido: Inicia el mantenimiento durante el período de notificación para actualizar tus instancias cuando se ajusten a tu programa.

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

upcomingMaintenance:{
    "canReschedule":True
    "latestWindowStartTime": "2024-12-01T19:00:01Z"
    "machineType":"x4-megamem-960-metal"
    "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

Las siguientes definiciones de estado 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 se encuentra 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.
  • machineType: Es el tipo de máquina de la instancia, por ejemplo, x4-megamem-960-metal o c4-highmem-192.
  • 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 del mantenimiento disruptivo, Compute Engine proporciona un aviso con un mínimo de 7 días de anticipación para la mayoría de las instancias; las instancias X4 reciben un aviso anticipado de aproximadamente 60 días.
    • UNSCHEDULED: Dado que el mantenimiento representa actualizaciones críticas, Compute Engine intenta proporcionar la mayor cantidad de avisos anticipados posible, pero, por lo general, es mucho menor que para los eventos de mantenimiento programados.
  • windowEndTime: Es el final del período en el que se produce 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 o 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(resourceStatus.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:

  resourceStatus:
    upcomingMaintenance:
      canReschedule: true
      latestWindowStartTime: '2025-01-15T12:00:01Z'
      machineType: x4-megamem-960-metal
      maintenanceStatus: PENDING
      type: SCHEDULED
      windowEndTime: '2025-01-15T16:00:00Z'
      windowStartTime: '2025-01-15T12: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 en PENDING. Estos parámetros de configuración indican que puedes iniciar manualmente el evento de mantenimiento programado antes de la fecha que se muestra en latestWindowStartTime.

REST

Para ver si hay 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"
    "machineType": "x4-megamem-960-metal"
    "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 en PENDING. Estos parámetros de configuración indican 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 en el caso 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 de las 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 Logging.

    Se abrirá la página del editor de consultas del Explorador de registros. En el panel Consulta, ya se completaron el resource.type y el ID de instancia 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 coincidentes aparecen en el panel de resultados de la consulta.

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

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

    1. En el caso de las notificaciones de mantenimiento próximas, 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"
    • machineType: "x4-megamem-960-metal"
    • 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"
    • machineType: "x4-megamem-960-metal"
    • 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 el caso de 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, se genera 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 específicos de notificación de mantenimiento y enviar alertas a través de un canal de notificación.

Console

Para crear una alerta sobre 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 Logging.

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

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

    operation.producer="compute.instances.upcomingMaintenance"
    

    Para filtrar los eventos de mantenimiento del host para un tipo de máquina en lugar de una instancia específica, edita la consulta de la siguiente manera:

    1. Quita la línea que especifica el ID de la instancia.
    2. Agrega la siguiente línea a la consulta:

      protoPayload.metadata.machineType:"MACHINE_TYPE"

      Reemplaza MACHINE_TYPE por el tipo de máquina para el que deseas filtrar los eventos de mantenimiento del host.

  5. Haz clic en Ejecutar consulta. Los eventos de notificación de mantenimiento coincidentes aparecen en el panel de resultados de la consulta.

  6. En el panel de resultados de la búsqueda, 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 pasada.
    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, es posible que la opción Crear alerta aparezca 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 Uso de Markdown y variables en plantillas de documentación.

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

  9. En la sección Elegir registros para incluir en el 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 primero 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 Monitoring si se cumple esta condición varias veces. Para este ejemplo, selecciona 1 día en 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 ahora 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?