Hostwartungsereignis überwachen und planen


Für jede VM-Instanz oder Bare-Metal-Instanz wird eine Hostwartungsrichtlinie verwendet, um das Verhalten der Instanz während einer Wartung zu bestimmen. Bei einigen Instanzen besteht die zusätzliche Option, den Wartungsplan im Voraus einzusehen.

Auf dieser Seite wird erläutert, wie Sie ein Host-Wartungsereignis auf Compute Engine-Instanzen überwachen und planen.

Hinweise

  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud -Dienste und APIs überprüft. Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei Compute Engine authentifizieren.
    <x0A>

    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

        Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

          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.

        Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen von Instanzen und zum Verwalten der Instanzwartung benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Erstellen von Instanzen und Verwalten der Instanzwartung erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um Instanzen zu erstellen und die Instanzwartung zu verwalten:

  • So rufen Sie Informationen zu einer Instanz ab, einschließlich Metadaten: compute.instances.get

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Beschränkungen

Sie können Benachrichtigungen für das bevorstehende Wartungsereignis einer Instanz nur aufrufen, wenn die Instanz einen Maschinentyp aus einer der folgenden Maschinenfamilien verwendet:

  • Beschleunigungsoptimierte Maschinenfamilien:

  • Maschinenfamilien für allgemeine Zwecke:

  • Speicheroptimierte Maschinenfamilien:

  • Speicheroptimierte Maschinenfamilien:

Übersicht über Wartungsbenachrichtigungen

Google sendet Benachrichtigungen über bevorstehende Hostwartungen über verschiedene Methoden. Wenn sich das Wartungsfenster öffnet,führt Google Cloud automatisch eine Wartung für Ihre Instanz aus. Durch Überwachung der bevorstehenden Wartungsfenster Ihrer Instanz können Sie Ihre Arbeitslasten proaktiv darauf vorbereiten, die bevorstehende Wartung mit minimalen Unterbrechungen abzuwickeln.

Compute-Instanzen, die Benachrichtigungen zu Wartungsereignissen unterstützen, haben die folgenden Merkmale:

  • Weniger Wartungsereignisse: Im Allgemeinen sollte es bei Instanzen mit wiederkehrenden Wartungsintervallen zu weniger Wartungsereignissen kommen.
  • Längere Wartungsbenachrichtigung: Sie werden zu Planungszwecken weit im Voraus über Wartungsereignisse informiert.
  • Überwachung und Planung: Mit Cloud Logging können Sie Ihren Wartungsplan im Blick behalten. Mit Vorfällen und Benachrichtigungen können Sie sich auf dem Laufenden halten.
  • On-Demand-Wartungssteuerung: Starten Sie die Wartung während des Benachrichtigungszeitraums, um Ihre Instanzen dann zu aktualisieren, wenn es Ihrem Zeitplan entspricht.

Die Informationen zu einem anstehenden Benachrichtigungsereignis werden auf ähnliche Weise wie unten dargestellt:

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

Wenn kein Wartungsereignis ansteht, wird stattdessen eine Meldung wie die folgende angezeigt:

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

Definitionen des Wartungsstatus

Die folgenden Statusdefinitionen erläutern die Antworten auf Anfragen zur Hostwartung für eine Instanz. Sie enthalten Informationen zum Wartungsereignis. Die Google Cloud CLI, REST und der Metadatenserver verwenden dieselben Antworten:

  • canReschedule: gibt an, ob die Wartung während des Benachrichtigungszeitraums für diese Instanz manuell gestartet werden kann.
    • TRUE: eine vom Kunden ausgelöste Wartung kann während des Benachrichtigungszeitraums ausgeführt werden.
    • FALSE: Eine vom Kunden ausgelöste Wartung kann für diese Instanz nicht ausgeführt werden. Dies tritt häufig in dem Zeitraum auf, in dem die Instanz gewartet wird, oder wenn der Instanztyp keine On-Demand-Wartung unterstützt.
  • latestWindowStartTime: die späteste Zeit, zu der das Wartungsfenster verschoben werden kann.
  • machineType: Der Maschinentyp der Instanz, z. B. x4-megamem-960-metal oder c4-highmem-192.
  • maintenanceStatus: Der aktuelle Status des Wartungsereignisses.
    • ONGOING: Der Wartungsvorgang wird ausgeführt.
    • PENDING: Der Wartungsvorgang ist geplant, wurde aber noch nicht gestartet.
  • type: Der Typ der auszuführenden Wartung.
    • NONE: Für diese Instanz ist keine Wartung geplant.
    • SCHEDULED: Bei unterbrechender Wartung benachrichtigt Compute Engine die meisten Instanzen mindestens 7 Tage im Voraus. X4-Instanzen werden etwa 60 Tage im Voraus benachrichtigt.
    • UNSCHEDULED: Da es sich bei der Wartung um kritische Updates handelt, versucht Compute Engine, so viel Vorlaufzeit wie möglich zu bieten. Diese ist jedoch in der Regel viel kürzer als bei geplanten Wartungsereignissen.
  • windowEndTime: das Ende des Zeitfensters, in dem die Wartung durchgeführt wird.
  • windowStartTime: der Beginn des Zeitfensters, in dem die Wartung durchgeführt wird.

Verhalten des Wartungsstatus

Prüfen Sie beim Verwalten von Wartungen die Werte für canReschedule und maintenanceStatus. In Kombination geben diese Felder an, welche Aktionen Sie in Bezug auf die Verschiebung eines Wartungsereignisses ausführen können:

  • canReschedule=True und maintenanceStatus=Pending: Sie können das Wartungsereignis für die Instanz vor dem geplanten Start manuell starten.
  • canReschedule=False und maintenanceStatus=Ongoing: Die Wartung läuft und kann nicht verschoben werden.
  • canReschedule=False und maintenanceStatus=Pending: Ihre Instanz unterstützt keine manuell ausgelösten Wartungsereignisse.

Wartungsbenachrichtigungen ansehen

Sie können Wartungsbenachrichtigungen abrufen, indem Sie Ihre Compute-Instanzen oder den Metadatenserver abfragen oder Cloud Logging verwenden.

Instanzen auf Benachrichtigungen zu Wartungsereignissen prüfen

Mit der Google Cloud CLI, REST oder durch Abfragen des Metadatenservers können Sie prüfen, ob für Ihre Instanz ein bevorstehendes Hostwartungsereignis geplant ist.

gcloud

Verwenden Sie den Befehl gcloud compute instances describe, um das bevorstehende Wartungsfenster für eine Instanz aufzurufen.

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

Ersetzen Sie Folgendes:

  • INSTANCE_NAME: Der Name der Compute-Instanz.
  • ZONE_NAME: Die Zone, in der sich die Instanz befindet.

Wenn ein Wartungsereignis ansteht, enthält die Antwort einen Abschnitt ähnlich dem folgenden:

  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 dieser Antwort:

  • Die Wartung ist für das Datum und die Uhrzeit geplant, die in windowStartTime angezeigt werden.
  • canReschedule ist auf true und maintenanceStatus auf PENDING gesetzt. Diese Einstellungen weisen darauf hin, dass Sie das geplante Wartungsereignis manuell vor dem in latestWindowStartTime angezeigten Datum starten können.

REST

Wenn Sie prüfen möchten, ob für eine Instanz eine Wartung ansteht, erstellen Sie eine GET-Anfrage mit der Methode instances.get:

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

Ersetzen Sie Folgendes:

  • PROJECT_NAME: Der Name des Projekts, das die Compute-Instanz enthält.
  • ZONE: Zone, in der sich die Instanz befindet.
  • INSTANCE_NAME: Name der Instanz

Wenn ein Wartungsereignis ansteht, enthält die Antwort einen Abschnitt ähnlich dem folgenden:

  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 dieser Antwort:

  • Die Wartung ist für das Datum und die Uhrzeit geplant, die in windowStartTime angezeigt werden.
  • canReschedule ist auf True und maintenanceStatus auf PENDING gesetzt. Diese Einstellungen weisen darauf hin, dass Sie das geplante Wartungsereignis manuell vor dem in latestWindowStartTime angezeigten Datum starten können.

Metadatenserver

Fragen Sie den Metadatenserver vom Gastbetriebssystem aus ab, um das nächste Wartungsereignis anzusehen.

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

Cloud Logging nach Benachrichtigungen zu Wartungsereignissen durchsuchen

Compute Engine erstellt Systemereignisse in den Cloud-Audit-Logs für eine Instanz für Wartungsereignisse. Sie können sich diese Ereignisse vor, während und nach einem Wartungsereignis mit Cloud Logging und dem Log-Explorer ansehen.

Console

So fragen Sie die Audit-Logs nach Wartungsbenachrichtigungen für eine Instanz ab:

  1. Rufen Sie die Seite VM-Instanzen auf.

    Zu "VM-Instanzen"

  2. Klicken Sie auf den Namen der Instanz, für die Sie Wartungsbenachrichtigungen aufrufen möchten.

    Die Seite mit den Instanzdetails wird geöffnet.

  3. Klicken Sie im Bereich Logs auf den Link mit dem Label Logging.

    Die Seite Log-Explorer-Abfrageeditor wird geöffnet. Im Bereich Abfrage sind resource.type und die Instanz-ID bereits für Ihre Instanz eingetragen.

  4. Fügen Sie im Bereich Abfrage der Abfrage die folgende Zeile hinzu:

    operation.producer="compute.instances.upcomingMaintenance" OR
    "compute.instances.terminateOnHostMaintenance" OR
    "compute.instances.migrateOnHostMaintenance"
    
  5. Klicken Sie auf Abfrage ausführen. Die übereinstimmenden Wartungsbenachrichtigungsereignisse werden im Bereich mit den Abfrageergebnissen angezeigt.

    Im Bereich „Abfrageergebnisse“ können Sie auf Zeit bearbeiten klicken, um den Suchzeitraum zu erweitern oder die Ergebnisse auf bestimmte Datumsangaben oder Uhrzeiten einzugrenzen.

  6. Klicken Sie auf einen Logeintrag, um die Details der Wartungsbenachrichtigung aufzurufen.

    1. Wenn Sie Benachrichtigungen zu anstehenden Wartungsarbeiten aufrufen möchten, maximieren Sie die Überschrift metadata. Dort finden Sie Informationen wie den aktuellen Status, den Typ und die geplanten Start- und Endzeiten des Wartungsfensters.
    2. Maximieren Sie die Überschrift status, um die beschreibende Meldung für die Benachrichtigung aufzurufen.

Beispiele für Wartungsbenachrichtigungen

Im Log-Explorer wird eine Benachrichtigung über ein Wartungsereignis für eine Instanz mit Werten wie den folgenden angezeigt:

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

Wenn die Wartung beginnt, wird in den Logs ein neues Informationsereignis mit Werten ähnlich den folgenden angezeigt:

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

Während des Wartungsereignisses wird je nach Konfiguration der Hostwartungsrichtlinie für die Instanz eines der folgenden Systemereignisse in den Audit-Logs protokolliert:

  • Bei Instanzen, die für die Verwendung der Live-Migration bei Wartungsereignissen konfiguriert sind, wird ein Systemereignis mit methodName: "compute.instances.migrateOnHostMaintenance" protokolliert.
  • Bei Instanzen, die so konfiguriert sind, dass sie während Wartungsereignissen beendet werden, wird ein Systemereignis mit methodName: "compute.instances.terminateOnHostMaintenance" generiert.

Nach der Wartung wird ein neues Informationsereignis in den Audit-Logs mit Werten wie den folgenden angezeigt:

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

Benachrichtigungen für Hostwartungsbenachrichtigungen konfigurieren

Sie können eine logbasierte Benachrichtigungsrichtlinie einrichten, um nach bestimmten Wartungsbenachrichtigungsereignissen zu suchen und Benachrichtigungen über einen Benachrichtigungschannel zu senden.

Console

So erstellen Sie eine Benachrichtigung für ein Wartungsereignis für Ihre Instanz:

  1. Rufen Sie die Seite VM-Instanzen auf.

    Zu "VM-Instanzen"

  2. Klicken Sie auf den Namen der Instanz, für die Sie eine Benachrichtigung über ein Wartungsereignis erstellen möchten.

    Die Seite mit den Instanzdetails wird geöffnet.

  3. Klicken Sie im Bereich Logs auf den Link mit dem Label Logging.

    Die Seite Log-Explorer-Abfrageeditor wird geöffnet. Im Bereich Abfrage sind resource.type und die Instanz-ID bereits für Ihre Instanz eingetragen.

  4. Fügen Sie im Bereich Abfrage der Abfrage die folgende Zeile hinzu:

    operation.producer="compute.instances.upcomingMaintenance"
    

    Wenn Sie Hostwartungsereignisse nach einem Maschinentyp anstelle einer bestimmten Instanz filtern möchten, bearbeiten Sie die Abfrage so:

    1. Entfernen Sie die Zeile, in der die Instanz-ID angegeben ist.
    2. Fügen Sie der Abfrage die folgende Zeile hinzu:

      protoPayload.metadata.machineType:"MACHINE_TYPE"

      Ersetzen Sie MACHINE_TYPE durch den Maschinentyp, nach dem Sie die Hostwartungsereignisse filtern möchten.

  5. Klicken Sie auf Abfrage ausführen. Die übereinstimmenden Wartungsbenachrichtigungsereignisse werden im Bereich mit den Abfrageergebnissen angezeigt.

  6. Klicken Sie im Bereich „Abfrageergebnisse“ auf Zeit bearbeiten.

    1. Geben Sie im Bearbeitungsfenster links im Feld Relativer Zeitraum 1d ein, um die Logeinträge der letzten Woche aufzurufen.
    2. Klicken Sie auf Übernehmen.
  7. Klicken Sie in der Kopfzeile des Bereichs Abfrageergebnisse auf  Benachrichtigung erstellen. Wenn Ihr Anzeigefenster schmal ist, wird die Option Benachrichtigung erstellen möglicherweise stattdessen im Menü Aktionen angezeigt.

  8. Führen Sie im Bereich Logbasierte Benachrichtigungsrichtlinie erstellen im Abschnitt Benachrichtigungsdetails die folgenden Schritte aus:

    1. Geben Sie einen Namen für die Benachrichtigungsrichtlinie ein, z. B. Upcoming maintenance for my-c3d-vm@us-central1-b.
    2. Wählen Sie im Menü Schweregrad der Richtlinie die Option Kein Schweregrad aus.

    3. Im Feld Dokumentation können Sie eine Beschreibung für Ihre Benachrichtigungsrichtlinie eingeben. Sie können auch Informationen angeben, die dem Empfänger einer Benachrichtigung helfen können, das Problem zu diagnostizieren. Der folgende String fasst den Grund für die Benachrichtigung zusammen:

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

      Informationen zum Formatieren und Anpassen des Inhalts dieses Felds finden Sie unter Markdown und Variablen in Dokumentationsvorlagen verwenden.

    4. Um mit dem nächsten Schritt fortzufahren, klicken Sie auf Weiter.

  9. Prüfen Sie im Bereich Logs auswählen, die in die Benachrichtigung aufgenommen werden sollen die Abfrage und die Ergebnisse. Klicken Sie dazu auf Logvorschau ansehen.

    Die Abfrage, die Sie im Bereich Abfrage erstellt haben, wird in diesem Bereich ebenfalls angezeigt. Wir empfehlen, die Abfrage zuerst im Bereich Abfrage des Log-Explorers zu erstellen.

    Bei Bedarf können Sie die Abfrage in diesem Bereich bearbeiten. Wenn Sie die Abfrage bearbeiten, prüfen Sie die Ergebnisse. Klicken Sie dazu auf Logvorschau ansehen.

  10. Klicken Sie auf Weiter.

  11. Führen Sie im Bereich Benachrichtigungshäufigkeit und Dauer für automatisches Schließen festlegen die folgenden Schritte aus:

    1. Wählen Sie die Mindestdauer zwischen Benachrichtigungen aus. Mit diesem Wert können Sie die Anzahl der Benachrichtigungen steuern, die Sie von Monitoring erhalten, wenn diese Bedingung mehrmals erfüllt wird. Wählen Sie für dieses Beispiel 1 Tag aus den Optionen aus.

    2. Verwenden Sie für die Dauer bis zur automatischen Schließung von Vorfällen den Maximalwert von 7 Tagen.

    3. Klicken Sie auf Weiter.

  12. Wenn Sie bereits einen E-Mail-Benachrichtigungskanal konfiguriert haben, können Sie ihn aus der Liste auswählen. Wenn nicht, klicken Sie auf Benachrichtigungskanäle verwalten und fügen Sie einen E-Mail-Kanal hinzu. Informationen zum Erstellen von Benachrichtigungskanälen finden Sie unter Benachrichtigungskanäle erstellen und verwalten.

  13. Klicken Sie auf Speichern.

    Ihre logbasierte Benachrichtigungsrichtlinie kann jetzt wie unter Logbasierte Beispielbenachrichtigungsrichtlinie testen beschrieben getestet werden.

Weitere Informationen finden Sie unter Logbasierte Benachrichtigungen konfigurieren und Benachrichtigungskanäle erstellen und verwalten.

Nächste Schritte