Supervisar y planificar un evento de mantenimiento del host


Cada instancia de máquina virtual (VM) o instancia básica utiliza una política de mantenimiento de 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.

Esta página explica cómo monitorear y planificar un evento de mantenimiento de host en instancias de Compute Engine.

Antes de comenzar

  • Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. 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.

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

Roles requeridos

Para obtener los permisos que necesita para crear instancias y administrar el mantenimiento de instancias, solicite a su administrador que le otorgue los siguientes roles de IAM en el proyecto:

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

Estos roles predefinidos contienen los permisos necesarios para crear instancias y gestionar el mantenimiento de instancias. Para ver los permisos exactos que se requieren, expanda la sección Permisos requeridos :

Permisos requeridos

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

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

Es posible que también pueda obtener estos permisos con roles personalizados u otros roles predefinidos .

Limitaciones

Puede ver notificaciones del próximo evento de mantenimiento de una instancia solo si la instancia utiliza un tipo de máquina de una de las siguientes familias de máquinas:

  • Familias de máquinas optimizadas para aceleradores :

  • Familias de máquinas de uso general :

  • Familias de máquinas con memoria optimizada :

  • Familias de máquinas con almacenamiento optimizado :

Resumen de notificaciones de mantenimiento

Google envía notificaciones sobre el próximo mantenimiento del host a través de varios métodos. Cuando se abre la ventana de mantenimiento, Google Cloud realiza automáticamente el mantenimiento de su instancia. Al monitorear las próximas ventanas de mantenimiento de su instancia, puede preparar de manera proactiva sus cargas de trabajo para manejar el próximo mantenimiento con una interrupción mínima.

Las instancias informáticas 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 : reciba notificaciones de los eventos de mantenimiento con mucha antelación para fines de planificación.
  • Monitoreo y planificación : use Cloud Logging para realizar un seguimiento de su programa de mantenimiento. Utilice incidentes y alertas para mantenerse informado.
  • Control de mantenimiento bajo demanda : inicie el mantenimiento durante el período de notificación para actualizar sus instancias cuando se ajuste a su cronograma.

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"
    "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á un mensaje similar al siguiente:

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

Definiciones de estado de mantenimiento

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

  • canReschedule : si el mantenimiento se puede iniciar manualmente durante el período de notificación para esta instancia.
    • TRUE : el mantenimiento activado por el cliente se puede realizar durante el período de notificación.
    • FALSE : el mantenimiento activado por el cliente no se puede realizar 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 bajo demanda.
  • lastWindowStartTime : la última hora a la que se puede mover la ventana de mantenimiento.
  • MaintenanceStatus : 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 ha comenzado.
  • tipo : el tipo de mantenimiento a realizar.
    • NONE : No hay mantenimiento programado para esta instancia.
    • SCHEDULED : Para mantenimiento disruptivo, Compute Engine proporciona un aviso mínimo de 7 días para la mayoría de los casos.; Las instancias X4 reciben un aviso con aproximadamente 60 días de anticipación.
    • UNSCHEDULED : debido a que el mantenimiento representa actualizaciones críticas, Compute Engine intenta brindar un aviso con la mayor anticipación posible, pero generalmente es mucho menor que para los eventos de mantenimiento programados.
  • windowEndTime : el final de la ventana de tiempo en la que se produce el mantenimiento.
  • windowStartTime : el inicio de la ventana de tiempo en la que se produce el mantenimiento.

Comportamientos del estado de mantenimiento

Al gestionar eventos de mantenimiento, verifique los valores de canReschedule y maintenanceStatus . Cuando se combinan, estos campos indican qué acciones puede o no tomar con respecto a la reprogramación de un evento de mantenimiento:

  • canReschedule=True y maintenanceStatus=Pending : puede iniciar manualmente el evento de mantenimiento para la instancia antes de la hora de inicio programada.
  • canReschedule=False y maintenanceStatus=Ongoing : el mantenimiento está en marcha y no se puede reprogramar.
  • canReschedule=False y maintenanceStatus=Pending : su instancia no admite eventos de mantenimiento activados manualmente.

Ver notificaciones de mantenimiento

Puede encontrar notificaciones de mantenimiento consultando sus instancias informáticas, el servidor de metadatos o utilizando Cloud Logging.

Verificar instancias para una notificación de evento de mantenimiento

Utilice la CLI de Google Cloud, REST o consulte el servidor de metadatos para ver si hay un próximo evento de mantenimiento del host para su instancia.

nube de gcloud

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

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

Reemplace lo siguiente:

  • INSTANCE_NAME : el nombre de la instancia informática.
  • ZONE_NAME : la zona donde reside la instancia.

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

  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'

En esta respuesta:

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

DESCANSAR

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

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

Reemplace lo siguiente:

  • PROJECT_NAME : el nombre del proyecto que contiene la instancia informática.
  • ZONE : La zona donde se encuentra la instancia.
  • INSTANCE_NAME : el nombre de la instancia.

Si hay un próximo evento de mantenimiento, 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:

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

Servidor de metadatos

Desde el sistema operativo invitado, consulte 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"

Consulte Cloud Logging para ver una notificación de evento de mantenimiento

Compute Engine crea eventos del sistema en los registros de auditoría de la nube para una instancia para eventos de mantenimiento. Puede ver estos eventos antes, durante y después de un evento de mantenimiento mediante Cloud Logging y Logs Explorer .

Consola

Para consultar los registros de auditoría para notificaciones de mantenimiento de una instancia, complete los siguientes pasos:

  1. Vaya a la página de instancias de VM .

    Ir a instancias de VM

  2. Haga clic en el Nombre de la instancia para la que desea ver las notificaciones de mantenimiento.

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

  3. En la sección Registros , haga clic en el enlace denominado Registro .

    Se abre la página del editor de consultas de Logs Explorer . En el panel Consulta , el resource.type y el ID de instancia ya están completos para su instancia.

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

    operation.producer="compute.instances.upcomingMaintenance" OR
    "compute.instances.terminateOnHostMaintenance" OR
    "compute.instances.migrateOnHostMaintenance"
    
  5. Haga 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, puede hacer clic en Editar hora para expandir el período de búsqueda o limitar los resultados a fechas u horas específicas.

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

    1. Para las próximas notificaciones de mantenimiento, expanda los metadata del encabezado para ver información como el estado actual, el tipo y las horas de inicio y finalización de la ventana de mantenimiento programado.
    2. Expanda el status del encabezado para ver el mensaje descriptivo de la notificación.

Ejemplos de notificaciones de mantenimiento

Aparece una notificación de evento de mantenimiento para una instancia en el Explorador de registros 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, uno de los siguientes eventos del sistema se registra en los registros de auditoría:

  • Para instancias configuradas para usar migración en vivo durante eventos de mantenimiento, un evento del sistema con methodName: "compute.instances.migrateOnHostMaintenance" .
  • Para instancias configuradas para finalizar durante 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." }

Configurar alertas para notificaciones de mantenimiento del host

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

Consola

Para crear una alerta para un evento de mantenimiento para su instancia, complete los siguientes pasos:

  1. Vaya a la página de instancias de VM .

    Ir a instancias de VM

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

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

  3. En la sección Registros , haga clic en el enlace denominado Registro .

    Se abre la página del editor de consultas de Logs Explorer . En el panel Consulta , el resource.type y el ID de instancia ya están completos para su instancia.

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

    operation.producer="compute.instances.upcomingMaintenance"
    
  5. Haga 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 consulta, haga clic en Editar hora .

    1. En el lado izquierdo de la ventana de edición, en el campo Tiempo relativo , ingrese 1d para ver las entradas del registro de la semana pasada.
    2. Haga clic en Aplicar .
  7. En el encabezado del panel de resultados de la consulta , haga clic en Crear alerta . Si su 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 alerta basada en registros , en la sección Detalles de alerta , haga lo siguiente:

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

    3. En el campo Documentación , puede ingresar una descripción para su política de alertas. También puede 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 puede formatear y personalizar el contenido de este campo, consulte Uso de Markdown y variables en plantillas de documentación .

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

  9. En la sección Elegir registros para incluir en la alerta , verifique la consulta y los resultados haciendo clic en Vista previa de registros .

    La consulta que creó en el panel Consulta también se muestra en este panel. Recomendamos crear primero la consulta en el panel Consulta del Explorador de registros.

    Puede editar la consulta en este panel, si es necesario. Si edita la consulta, verifique los resultados haciendo clic en Vista previa de registros .

  10. Haga clic en Siguiente .

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

    1. Seleccione el tiempo mínimo entre notificaciones. Este valor le permite controlar la cantidad de notificaciones que recibe de Monitoreo si esta condición se cumple varias veces. Para este ejemplo, seleccione 1 día de las opciones.

    2. Para la duración del cierre automático del incidente , utilice el valor máximo de 7 días.

    3. Haga clic en Siguiente .

  12. Si ya tiene configurado un canal de notificación por correo electrónico, puede seleccionarlo de la lista. De lo contrario, haga clic en Administrar canales de notificación y agregue un canal de correo electrónico. Para obtener información sobre la creación de canales de notificación, consulte Crear y administrar canales de notificación .

  13. Haga clic en Guardar .

    Su política de alertas basada en registros ahora está lista para probarse como se describe en Pruebe la política de alertas basada en registros de ejemplo.

Para obtener más información, lea Configurar alertas basadas en registros y Crear y administrar canales de notificación .

¿Qué sigue?