Hostwartungsereignis überwachen und planen


Für jede VM-Instanz oder Bare-Metal-Instanz wird eine Hostwartungsrichtlinie verwendet, um das Verhalten der Instanz während eines Wartungsvorgangs zu bestimmen. Bei einigen Instanzen haben Sie die zusätzliche Möglichkeit, sich den Wartungszeitplan im Voraus anzusehen.

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 bei Compute Engine authentifizieren. Wählen Sie dazu eine der folgenden Optionen aus:

    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

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

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

        gcloud init

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

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 Wartung von Instanzen 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 anstehende Wartungsereignis einer Instanz nur aufrufen, wenn für die Instanz ein Maschinentyp aus einer der folgenden Maschinenfamilien verwendet wird:

  • Beschleunigungsoptimierte Maschinenfamilien:

  • Maschinenfamilien für allgemeine Zwecke:

  • Speicheroptimierte Maschinenfamilien:

  • Speicheroptimierte Maschinenfamilien:

Wartungsbenachrichtigungen

Google sendet Benachrichtigungen über bevorstehende Hostwartungen über mehrere 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 folgende 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 Wartungszeitplan im Blick behalten. Mithilfe von Vorfällen und Benachrichtigungen können Sie auf dem Laufenden bleiben.
  • 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 in etwa so dargestellt:

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

Wenn keine Wartung ansteht, wird stattdessen eine Meldung wie die folgende angezeigt:

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

Definitionen für Wartungsstatus

In den folgenden Statusdefinitionen werden die Antworten auf Abfragen zur Hostwartung für eine Instanz erläutert. 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 Wartung auf Abruf unterstützt.
  • latestWindowStartTime: die späteste Zeit, zu der das Wartungsfenster verschoben werden kann.
  • maintenanceStatus: Der aktuelle Status des Wartungsereignisses.
    • ONGOING: Der Wartungsvorgang wird ausgeführt.
    • PENDING: Der Wartungsvorgang ist geplant, wurde aber noch nicht gestartet.
  • type: die Art der auszuführenden Wartung.
    • NONE: Für diese Instanz ist keine Wartung geplant.
    • SCHEDULED: Bei Wartungsarbeiten, die die Verfügbarkeit beeinträchtigen, erhalten Sie von der Compute Engine für die meisten Instanzen mindestens 7 Tage vor Beginn eine Vorankündigung. Für X4-Instanzen wird etwa 60 Tage vorher eine Vorankündigung gesendet.
    • UNSCHEDULED: Da es sich bei der Wartung um wichtige Updates handelt, versucht die Compute Engine, so früh wie möglich Bescheid zu geben. Die Vorabankündigung ist jedoch in der Regel viel kürzer als bei geplanten Wartungsereignissen.
  • windowEndTime: das Ende des Wartungsfensters.
  • windowStartTime: der Beginn des Wartungszeitraums.

Verhalten bei Wartungsstatus

Prüfen Sie beim Verwalten von Wartungsereignissen die Werte für canReschedule und maintenanceStatus. In Kombination geben diese Felder an, welche Aktionen Sie ausführen können oder nicht, um ein Wartungsereignis neu zu planen:

  • canReschedule=True und maintenanceStatus=Pending: Sie können das Wartungsereignis für die Instanz vor dem geplanten Beginn manuell starten.
  • canReschedule=False und maintenanceStatus=Ongoing: Die Wartung ist bereits in vollem Gange 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, den Metadatenserver oder Cloud Logging abfragen.

Instanzen auf Benachrichtigungen zu Wartungsereignissen prüfen

Verwenden Sie die Google Cloud CLI, REST oder fragen Sie den Metadatenserver ab, um zu sehen, ob ein bevorstehendes Hostwartungsereignis für Ihre Instanz ansteht.

gcloud

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

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

Ersetzen Sie Folgendes:

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

Wenn eine anstehende Wartung ansteht, enthält die Antwort einen Abschnitt, der in etwa so aussieht:

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

In dieser Antwort:

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

REST

Wenn Sie wissen möchten, ob für eine Instanz Wartungsarbeiten anstehen, erstellen Sie eine GET-Anfrage mit der instances.get-Methode:

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 eine anstehende Wartung ansteht, enthält die Antwort einen Abschnitt, der in etwa so aussieht:

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

In dieser Antwort:

  • Die Wartung ist für das in windowStartTime angegebene Datum und die angegebene Uhrzeit geplant.
  • canReschedule ist auf True und maintenanceStatus auf PENDING gesetzt. Diese Einstellungen weisen darauf hin, dass Sie das geplante Wartungsereignis vor dem in latestWindowStartTime angezeigten Datum manuell 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 auf Benachrichtigungen zu Wartungsereignissen prüfen

Die 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 rufen Sie die Prüfprotokolle auf, um Wartungsbenachrichtigungen für eine Instanz abzufragen:

  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 Protokolle auf den Link Protokollierung.

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

  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 „Abfrageergebnisse“ angezeigt.

    Klicken Sie im Bereich „Abfrageergebnisse“ auf Zeit bearbeiten, 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. Maximieren Sie die Überschrift metadata, um Informationen wie den aktuellen Status, den Typ und den Beginn und das Ende des geplanten Wartungsfensters zu sehen.
    2. Maximieren Sie die Überschrift status, um die Beschreibung der Benachrichtigung zu sehen.

Beispiele für Wartungsbenachrichtigungen

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

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

Wenn das Wartungsereignis beginnt, wird in den Protokollen ein neues Informationsereignis mit Werten wie den folgenden angezeigt:

  • methodName: "compute.instances.upcomingMaintenance"
  • metadata:
    • maintenanceStatus: "ONGOING"
    • 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" ausgegeben.
  • Für Instanzen, die so konfiguriert sind, dass sie bei Wartungsereignissen beendet werden, ein Systemereignis mit methodName: "compute.instances.terminateOnHostMaintenance".

Nach dem Ende des Wartungsereignisses wird in den Audit-Logs ein neues Informationsereignis mit Werten wie den folgenden protokolliert:

  • 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 Hostwartung konfigurieren

Sie können eine logbasierte Benachrichtigungsrichtlinie einrichten, um nach bestimmten Wartungsbenachrichtigungsereignissen zu suchen und Benachrichtigungen über einen Benachrichtigungskanal 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 zu Wartungsereignissen erstellen möchten.

    Die Seite mit den Instanzdetails wird geöffnet.

  3. Klicken Sie im Bereich Protokolle auf den Link Protokollierung.

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

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

    operation.producer="compute.instances.upcomingMaintenance"
    
  5. Klicken Sie auf Abfrage ausführen. Die übereinstimmenden Wartungsbenachrichtigungsereignisse werden im Bereich „Abfrageergebnisse“ angezeigt.

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

    1. Geben Sie links im Bearbeitungsfenster im Feld Relativ die Zahl 1d ein, um die Protokolleinträge der letzten Woche aufzurufen.
    2. Klicken Sie auf Anwenden.
  7. Klicken Sie in der Kopfzeile des Bereichs Abfrageergebnisse auf  Benachrichtigung erstellen. Wenn das Fenster zu klein 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ü Richtlinienschwere die Option Kein Schweregrad aus.

    3. Geben Sie im Feld Dokumentation eine Beschreibung für die Benachrichtigungsrichtlinie ein. Sie können auch Informationen angeben, die dem Empfänger einer Benachrichtigung helfen können, das Problem zu diagnostizieren. Im folgenden String wird der Grund für die Benachrichtigung zusammengefasst:

      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 vom 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 maximalen Wert 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 Beispielbenachrichtigung testen beschrieben getestet werden.

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

Nächste Schritte