Monitora e pianifica un evento di manutenzione dell'host


Ogni istanza di macchina virtuale (VM) o bare metal utilizza una policy di manutenzione host per determinare il comportamento dell'istanza durante un'operazione di manutenzione. Alcune istanze offrono l'opzione aggiuntiva di visualizzare la pianificazione della manutenzione in anticipo.

Questa pagina spiega come monitorare e pianificare un evento di manutenzione dell'host sulle istanze Compute Engine.

Prima di iniziare

  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale la tua identità viene verificata per l'accesso ai Google Cloud servizi e alle API. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    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

        Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a 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.

        Per saperne di più, consulta la sezione Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare istanze e gestire la manutenzione delle istanze, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per creare istanze e gestire la manutenzione delle istanze. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per creare istanze e gestire la manutenzione delle istanze sono necessarie le seguenti autorizzazioni:

  • Per ottenere informazioni su un'istanza, inclusi i metadati: compute.instances.get

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Limitazioni

Puoi visualizzare le notifiche per l'evento di manutenzione imminente di un'istanza solo se l'istanza utilizza un tipo di macchina di una delle seguenti famiglie di macchine:

  • Famiglie di macchine ottimizzate per l'acceleratore:

  • Famiglie di macchine per uso generico:

  • Famiglie di macchine ottimizzate per la memoria:

  • Famiglie di macchine ottimizzate per l'archiviazione:

Panoramica delle notifiche relative alla manutenzione

Google invia notifiche per la manutenzione imminente dell'host tramite diversi metodi. Quando si apre il periodo di manutenzione, Google Cloud esegue automaticamente la manutenzione dell'istanza. Monitorando i prossimi periodi di manutenzione della tua istanza, puoi preparare in modo proattivo i tuoi workload per gestire la manutenzione imminente con un'interruzione minima.

Le istanze di calcolo che supportano le notifiche degli eventi di manutenzione hanno le seguenti caratteristiche:

  • Meno eventi di manutenzione: in generale, le istanze con intervalli di manutenzione ricorrenti dovrebbero registrare meno eventi di manutenzione.
  • Notifica di manutenzione più lunga: ricevi una notifica degli eventi di manutenzione con largo anticipo per pianificare.
  • Monitoraggio e pianificazione: utilizza Cloud Logging per monitorare la pianificazione della manutenzione. Utilizza incidenti e avvisi per rimanere informato.
  • Controllo della manutenzione on demand: avvia la manutenzione durante il periodo di notifica per aggiornare le istanze quando è più comodo per te.

Le informazioni su un evento di notifica imminente vengono presentate in modo simile al seguente:

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

Se non è previsto alcun evento di manutenzione imminente, viene visualizzato un messaggio simile al seguente:

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

Definizioni degli stati di manutenzione

Le seguenti definizioni di stato spiegano le risposte alle query sulla manutenzione dell'host per un'istanza. Forniscono informazioni relative all'evento di manutenzione. Google Cloud CLI, REST e il server di metadati utilizzano le stesse risposte:

  • canReschedule: indica se la manutenzione può essere avviata manualmente durante il periodo di notifica per questa istanza.
    • TRUE: la manutenzione attivata dal cliente può essere eseguita durante il periodo di notifica.
    • FALSE: su questa istanza non è possibile eseguire la manutenzione attivata dal cliente. Questo problema si verifica spesso durante il periodo in cui l'istanza è in fase di manutenzione o se il tipo di istanza non supporta la manutenzione on demand.
  • latestWindowStartTime: l'ultima ora in cui è possibile spostare il periodo di manutenzione.
  • machineType: il tipo di macchina dell'istanza, ad esempio x4-megamem-960-metal o c4-highmem-192.
  • maintenanceStatus: lo stato attuale dell'evento di manutenzione.
    • ONGOING: l'operazione di manutenzione è in corso.
    • PENDING: l'operazione di manutenzione è pianificata, ma non è ancora iniziata.
  • type: il tipo di manutenzione da eseguire.
    • NONE: per questa istanza non è pianificata alcuna manutenzione.
    • SCHEDULED: per la manutenzione distruttiva, Compute Engine fornisce un preavviso minimo di 7 giorni per la maggior parte delle istanze; le istanze X4 ricevono un preavviso di circa 60 giorni.
    • UNSCHEDULED: Poiché la manutenzione rappresenta aggiornamenti critici, Compute Engine tenta di fornire un preavviso il più ampio possibile, ma di solito è molto inferiore rispetto agli eventi di manutenzione pianificata.
  • windowEndTime: la fine dell'intervallo di tempo in cui viene eseguita la manutenzione.
  • windowStartTime: l'inizio del periodo di tempo in cui viene eseguita la manutenzione.

Comportamenti dello stato della manutenzione

Quando gestisci gli eventi di manutenzione, controlla i valori di canReschedule e maintenanceStatus. Se combinati, questi campi indicano le azioni che puoi o non puoi intraprendere in merito alla riprogrammazione di un evento di manutenzione:

  • canReschedule=True e maintenanceStatus=Pending: puoi avviare manualmente l'evento di manutenzione per l'istanza prima dell'ora di inizio pianificata.
  • canReschedule=False e maintenanceStatus=Ongoing: la manutenzione è in corso e non può essere riprogrammata.
  • canReschedule=False e maintenanceStatus=Pending: la tua istanza non supporta gli eventi di manutenzione attivati manualmente.

Visualizzare le notifiche di manutenzione

Puoi trovare le notifiche di manutenzione eseguendo query sulle istanze di calcolo, sul server di metadati o utilizzando Cloud Logging.

Controllare le istanze per una notifica di evento di manutenzione

Utilizza Google Cloud CLI, REST o esegui query sul server di metadati per verificare se è previsto un evento di manutenzione host imminente per la tua istanza.

gcloud

Per visualizzare la periodo di manutenzione imminente per un'istanza, utilizza il comando gcloud compute instances describe.

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

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza di computing.
  • ZONE_NAME: la zona in cui risiede l'istanza.

Se è previsto un evento di manutenzione imminente, la risposta contiene una sezione simile alla seguente:

  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'

In questa risposta:

  • La manutenzione è pianificata per la data e l'ora mostrate in windowStartTime.
  • canReschedule è impostato su true e maintenanceStatus è impostato su PENDING. Queste impostazioni indicano che puoi avviare manualmente l'evento di manutenzione pianificato prima della data mostrata in latestWindowStartTime.

REST

Per verificare se è prevista una manutenzione imminente per un'istanza, crea una richiesta GET utilizzando il metodo instances.get:

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

Sostituisci quanto segue:

  • PROJECT_NAME: il nome del progetto che contiene l'istanza di computing.
  • ZONE: la zona in cui si trova l'istanza.
  • INSTANCE_NAME: il nome dell'istanza.

Se è previsto un evento di manutenzione imminente, la risposta contiene una sezione simile alla seguente:

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

In questa risposta:

  • La manutenzione è pianificata per la data e l'ora mostrate in windowStartTime.
  • canReschedule è impostato su True e maintenanceStatus è impostato su PENDING. Queste impostazioni indicano che puoi avviare manualmente l'evento di manutenzione pianificato prima della data mostrata in latestWindowStartTime.

Server dei metadati

Dal sistema operativo guest, esegui una query sul server di metadati per visualizzare il successivo evento di manutenzione.

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

Controlla Cloud Logging per una notifica di evento di manutenzione

Compute Engine crea eventi di sistema negli audit log di Cloud per un'istanza per gli eventi di manutenzione. Puoi visualizzare questi eventi prima, durante e dopo un evento di manutenzione utilizzando Cloud Logging e Esplora log.

Console

Per eseguire una query nei log di controllo per le notifiche di manutenzione di un'istanza, completa i seguenti passaggi:

  1. Vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Fai clic sul Nome dell'istanza per cui vuoi visualizzare le notifiche di manutenzione.

    Viene visualizzata la pagina Dettagli istanza.

  3. Nella sezione Log, fai clic sul link Logging.

    Viene visualizzata la pagina Editor query di Esplora log. Nel riquadro Query, resource.type e l'ID istanza sono già compilati per la tua istanza.

  4. Nel riquadro Query, aggiungi la seguente riga alla query:

    operation.producer="compute.instances.upcomingMaintenance" OR
    "compute.instances.terminateOnHostMaintenance" OR
    "compute.instances.migrateOnHostMaintenance"
    
  5. Fai clic su Esegui query. Gli eventi di notifica di manutenzione corrispondenti vengono visualizzati nel riquadro dei risultati della query.

    Nel riquadro dei risultati della query, puoi fare clic su Modifica ora per espandere l'intervallo di tempo della ricerca o per restringere i risultati a date o ore specifiche.

  6. Fai clic su una voce di log per visualizzare i dettagli della notifica di manutenzione.

    1. Per le notifiche di manutenzione imminente, espandi l'intestazione metadata per visualizzare informazioni come lo stato attuale, il tipo e gli orari di inizio e fine del periodo di manutenzione pianificato.
    2. Espandi l'intestazione status per visualizzare il messaggio descrittivo della notifica.

Esempi di notifiche relative alla manutenzione

Una notifica di evento di manutenzione per un'istanza viene visualizzata in Esplora log con valori simili ai seguenti:

  • methodName: "compute.instances.upcomingMaintenance"
  • metadata:
    • maintenanceStatus: "PENDING"
    • machineType: "x4-megamem-960-metal"
    • windowStartTime: "2024-07-23T20:00:00Z"

Quando inizia l'evento di manutenzione, nei log viene visualizzato un nuovo evento informativo con valori simili ai seguenti:

  • methodName: "compute.instances.upcomingMaintenance"
  • metadata:
    • maintenanceStatus: "ONGOING"
    • machineType: "x4-megamem-960-metal"
    • windowStartTime: "2024-07-23T20:00:00Z"

Durante l'evento di manutenzione, a seconda della configurazione dei criteri di manutenzione dell'host per l'istanza, viene registrato uno dei seguenti eventi di sistema nei log di controllo:

  • Per le istanze configurate per utilizzare la migrazione live durante gli eventi di manutenzione, un evento di sistema con methodName: "compute.instances.migrateOnHostMaintenance".
  • Per le istanze configurate per essere terminate durante gli eventi di manutenzione, un evento di sistema con methodName: "compute.instances.terminateOnHostMaintenance".

Al termine dell'evento di manutenzione, nei log di controllo viene visualizzato un nuovo evento informativo con valori simili ai seguenti:

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

Configurare gli avvisi per le notifiche di manutenzione dell'attività

Puoi configurare un criterio di avviso basato su log per cercare eventi di notifica di manutenzione specifici e inviare avvisi utilizzando un canale di notifica.

Console

Per creare un avviso per un evento di manutenzione per la tua istanza, completa i seguenti passaggi:

  1. Vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Fai clic sul Nome dell'istanza per cui vuoi creare un avviso di evento di manutenzione.

    Viene visualizzata la pagina Dettagli istanza.

  3. Nella sezione Log, fai clic sul link Logging.

    Viene visualizzata la pagina Editor query di Esplora log. Nel riquadro Query, resource.type e l'ID istanza sono già compilati per la tua istanza.

  4. Nel riquadro Query, aggiungi la seguente riga alla query:

    operation.producer="compute.instances.upcomingMaintenance"
    

    Per filtrare gli eventi di manutenzione dell'host per un tipo di macchina anziché per un'istanza specifica, modifica la query nel seguente modo:

    1. Rimuovi la riga che specifica l'ID istanza.
    2. Aggiungi la seguente riga alla query:

      protoPayload.metadata.machineType:"MACHINE_TYPE"

      Sostituisci MACHINE_TYPE con il tipo di macchina per cui vuoi filtrare gli eventi di manutenzione dell'host.

  5. Fai clic su Esegui query. Gli eventi di notifica di manutenzione corrispondenti vengono visualizzati nel riquadro dei risultati della query.

  6. Nel riquadro dei risultati della query, fai clic su Modifica ora.

    1. Sul lato sinistro della finestra di modifica, nel campo Ora relativa, inserisci 1d per visualizzare le voci di log dell'ultima settimana.
    2. Fai clic su Applica.
  7. Nell'intestazione del riquadro Risultati delle query, fai clic su  Crea avviso. Se la finestra di visualizzazione è stretta, l'opzione Crea avviso potrebbe essere visualizzata nel menu Azioni.

  8. Nel riquadro Crea policy di avviso basata su log, nella sezione Dettagli avviso, segui questi passaggi:

    1. Inserisci un nome per la policy di avviso, ad esempio Upcoming maintenance for my-c3d-vm@us-central1-b.
    2. Nel menu Livello di gravità delle norme, seleziona Nessuna gravità.

    3. Nel campo Documentazione, puoi inserire una descrizione per la criterio di avvisoo. Puoi anche includere informazioni che potrebbero aiutare il destinatario di una notifica a diagnosticare il problema. La seguente stringa riassume il motivo della notifica:

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

      Per informazioni su come formattare e personalizzare i contenuti di questo campo, consulta Utilizzo di Markdown e variabili nei modelli di documentazione.

    4. Per passare al passaggio successivo, fai clic su Avanti.

  9. Nella sezione Scegli i log da includere nell'avviso, controlla la query e i risultati facendo clic su Anteprima dei log.

    In questo riquadro viene visualizzata anche la query che hai creato nel riquadro Query. Ti consigliamo di creare prima la query nel riquadro Query di Esplora log.

    Se necessario, puoi modificare la query in questo riquadro. Se modifichi la query, controlla i risultati facendo clic su Anteprima dei log.

  10. Fai clic su Avanti.

  11. Nel riquadro Imposta la frequenza delle notifiche e la durata della chiusura automatica, procedi nel seguente modo:

    1. Seleziona il tempo minimo tra le notifiche. Questo valore ti consente di controllare il numero di notifiche che ricevi da Monitoring se questa condizione viene soddisfatta più volte. Per questo esempio, seleziona 1 giorno tra le opzioni.

    2. Per la Durata chiusura automatica incidenti, utilizza il valore massimo di 7 giorni.

    3. Fai clic su Avanti.

  12. Se hai già configurato un canale di notifica via email, puoi selezionarlo dall'elenco. In caso contrario, fai clic su Gestisci canali di notifica e aggiungi un canale email. Per informazioni sulla creazione dei canali di notifica, vedi Creare e gestire i canali di notifica.

  13. Fai clic su Salva.

    Il criterio di avviso basato sui log è ora pronto per essere testato come descritto in Testare il criterio di avviso basato sui log di esempio

Per saperne di più, leggi Configurare gli avvisi basati sui log e Creare e gestire i canali di notifica.

Passaggi successivi