Änderungen des VM-Systemzustands beobachten


In diesem Dokument wird beschrieben, wie Sie Änderungslogeinträge einer VM in einer verwalteten Instanzgruppe (Managed Instance Group, MIG) aufrufen und lesen. Außerdem erhalten Sie spezifische Anwendungsfälle, um Ihnen beim Monitoring der VMs der Gruppe zu helfen.

Wenn Sie eine anwendungsbasierte Systemdiagnose für Ihre verwaltete Instanzgruppe konfiguriert haben, schreibt Compute Engine einen Logeintrag, wenn sich der Systemzustand einer verwalteten Instanz ändert, beispielsweise wenn die Instanz vom Status HEALTHY in den Status UNHEALTHY wechselt. Mit diesen Logeinträgen können Sie den Systemzustand jeder verwalteten Instanz sowie den Gesamtzustand der MIG überwachen und Fehler beheben.

Vorbereitung

  • Systemdiagnosen und automatische Reparatur einrichten
  • 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.

Preise

Compute Engine verwendet Cloud Logging, um Logeinträge für Änderungen des Status der verwalteten Instanz zu generieren. Cloud Logging bietet Ihnen ein kostenloses Kontingent pro Monat. Ist dieses aufgebraucht, werden Logeinträge nach Datenvolumen abgerechnet. Weitere Informationen finden Sie in der Cloud Logging-Preisübersicht.

Sie können Logging-Kosten vermeiden, indem Sie die Änderungslogs des Systemzustand deaktivieren.

Logs für Änderungen des Systemzustand ansehen

Wenn die Änderungslogs für den Systemzustand aktiviert bleiben, schreibt Compute Engine einen Logeintrag in Plattformlogs, wenn sich der Systemstatus einer verwalteten Instanz ändert. Sie können diese Logs für ein Projekt, für eine bestimmte MIG oder für eine bestimmte verwaltete Instanz aufrufen.

Logs für ein Projekt oder eine MIG aufrufen

Verwenden Sie die Google Cloud Console, die gcloud CLI oder REST, um Logeinträge für ein Projekt oder eine bestimmte MIG aufzurufen.

Console

  1. Rufen Sie in der Google Cloud Console den Log-Explorer auf.

    Zum Log-Explorer

  2. Legen Sie die folgenden Abfrageparameter fest:

    • Ressource – GCE-Instanzgruppenmanager
    • Logname -instance_group_manager_events
  3. Alternativ können Sie die folgende Abfrage in den Query Builder kopieren.

    resource.type="gce_instance_group_manager" AND
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND
    jsonPayload.instanceHealthStateChange:*
    

    Mit der folgenden Abfrage können Sie Ihre Suche auf eine bestimmte verwaltete Instanzgruppe begrenzen.

    resource.type="gce_instance_group_manager" AND
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND
    jsonPayload.instanceHealthStateChange:* AND
    resource.labels.instance_group_manager_name="MIG_NAME"
    
  4. Klicken Sie auf Abfrage ausführen. Die Logs werden in den Abfrageergebnissen angezeigt.

gcloud

Rufen Sie mit dem Befehl gcloud logging read die Logeinträge auf und lesen Sie sie.

Verwenden Sie den folgenden Befehl, um alle Änderungslogs zu Systemstatus in Ihrem Projekt anzuzeigen:

gcloud logging read 'resource.type="gce_instance_group_manager" AND
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND
    jsonPayload.instanceHealthStateChange:*'\
    --limit 10

Verwenden Sie den folgenden Befehl, um alle Änderungslogs zum Systemzustand einer bestimmten verwalteten Instanzgruppe aufzurufen:

gcloud logging read 'resource.type="gce_instance_group_manager" AND
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND
    jsonPayload.instanceHealthStateChange:* AND
    resource.labels.instance_group_manager_name="MIG_NAME"' \
    --limit 10

Ersetzen Sie dabei Folgendes:

  • PROJECT_ID: Ihre Projekt-ID
  • MIG_NAME: MIG, für die Sie die Änderungslogs zum Systemzustand aufrufen möchten.

REST

Führen Sie zum Aufrufen der Änderungslogs zum Systemzustand eine POST-Anfrage an die Methode entries.list aus.

Verwenden Sie den folgenden Befehl, um alle Änderungslogs zu Systemstatus in Ihrem Projekt anzuzeigen:

curl -H "Content-Type: application/json" -H "Authorization: Bearer OAUTH2_TOKEN" -X POST -d \
'{"filter":
    "resource.type=gce_instance_group_manager AND
    logName=projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events AND
    jsonPayload.instanceHealthStateChange:*",
    "orderBy": "timestamp desc",
    "pageSize": 10,
    "resourceNames": ["projects/PROJECT_ID"]
}' https://logging.googleapis.com/v2/entries:list?alt=json

Verwenden Sie den folgenden Befehl, um die Änderungslogs für den System-Status einer bestimmten verwalteten Instanzgruppe aufzurufen:

curl -H "Content-Type: application/json" -H "Authorization: Bearer OAUTH2_TOKEN" -X POST -d \
'{"filter":
    "resource.type=gce_instance_group_manager AND
    logName=projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events AND
    jsonPayload.instanceHealthStateChange:* AND
    resource.labels.instance_group_manager_name=MIG_NAME",
    "orderBy": "timestamp desc",
    "pageSize": 10,
    "resourceNames": ["projects/PROJECT_ID"]
}' https://logging.googleapis.com/v2/entries:list?alt=json

Ersetzen Sie dabei Folgendes:

  • OAUTH2_TOKEN: Zugriffstoken Ihrer Anwendung. Für lokale Tests können Sie mit dem Befehl gcloud auth print-access-token ein Token generieren.
  • PROJECT_ID: Ihre Projekt-ID
  • MIG_NAME: MIG, für die Sie die Änderungslogs zum Systemzustand aufrufen möchten.

Weitere Informationen zu den einzelnen Logeinträgen finden Sie unter Format von Logeinträgen.

Je nachdem, ob Sie die Logs archivieren, zur Analyse verwenden, an andere Anwendungen streamen oder eine Cloud Functions-Funktion auslösen möchten, können Sie die Logs an Ziele wie Cloud Storage, BigQuery oder Pub/Sub exportieren. Weitere Informationen zum Exportieren von Logs finden Sie in der Übersicht über Logexporte.

Logs für Änderungen des Systemzustand einer bestimmten VM aufrufen

Zum Aufrufen von Logeinträgen für eine bestimmte verwaltete Instanz verwenden Sie die Google Cloud Console, die gcloud CLI oder REST.

Console

  1. Rufen Sie in der Google Cloud Console den Log-Explorer auf.

    Zum Log-Explorer

  2. Kopieren Sie die folgende Abfrage im Query-Builder.

    resource.type="gce_instance_group_manager" AND
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND
    jsonPayload.instanceHealthStateChange:* AND
    labels."compute.googleapis.com/instance_name"="INSTANCE_NAME"
    
  3. Klicken Sie auf Abfrage ausführen.

gcloud

Rufen Sie mit dem Befehl gcloud logging read die Logeinträge auf und lesen Sie sie.

Verwenden Sie den folgenden Befehl, um die Änderungslogs des Systemstatus einer verwalteten Instanz aufzurufen:

gcloud logging read 'resource.type="gce_instance_group_manager" AND
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND
    jsonPayload.instanceHealthStateChange:* AND
    labels."compute.googleapis.com/instance_name"="INSTANCE_NAME"' \
    --limit 10

Ersetzen Sie dabei Folgendes:

  • PROJECT_ID: Ihre Projekt-ID
  • INSTANCE_NAME: Die verwaltete Instanz, für die Sie die Änderungslogs zum Systemzustand aufrufen möchten

REST

Führen Sie zum Aufrufen der Änderungslogs zum Systemzustand einer verwalteten Instanz eine POST-Anfrage an die Methode entries.list aus.

curl -H "Content-Type: application/json" -H "Authorization: Bearer OAUTH2_TOKEN" -X POST -d \
'{"filter":
    "resource.type=gce_instance_group_manager AND
        logName=projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events AND
        jsonPayload.instanceHealthStateChange:* AND
        labels.\"compute.googleapis.com/instance_name\"=\"INSTANCE_NAME\"",
    "orderBy": "timestamp desc",
    "pageSize": 10,
    "resourceNames": ["projects/PROJECT_ID"]
}' https://logging.googleapis.com/v2/entries:list?alt=json

Ersetzen Sie dabei Folgendes:

  • OAUTH2_TOKEN: Zugriffstoken Ihrer Anwendung. Für lokale Tests können Sie mit dem Befehl gcloud auth print-access-token ein Token generieren.
  • PROJECT_ID: Ihre Projekt-ID
  • INSTANCE_NAME: Die verwaltete Instanz, für die Sie die Änderungslogs zum Systemzustand aufrufen möchten

Format der Logeinträge

Logeinträge für den Änderung der Instanz-Systemstatus enthalten Informationen, die für das Monitoring und die Fehlerbehebung des Status Ihrer verwalteten Instanzen nützlich sind.

Die Logs werden in Plattformlogs mit dem Lognamen instance_group_manager_events geschrieben. Die Plattformlogs unterstützen Sie bei der Fehlerbehebung.

logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events"

Logeinträge für Änderungslogeinträge enthalten folgende Informationen:

  • Allgemeine Informationen, die in den meisten Logs angezeigt werden, wie z. B. Schweregrad, Projekt-ID, Name und ID der MIG, Projektnummer, Zeitstempel usw.
  • Für den Systemzustand der Instanz spezifische Felder.

In jedem Änderungslogeintrag des Systemzustands enthält das Feld jsonPayload.instanceHealthStateChange die folgenden Informationen:

Feld Beschreibung
instance URL für die Instanz, basierend auf der Stringprojekt-ID und dem Instanznamen.
instanceWithId URL für die Instanz, basierend auf der numerischen Projekt-ID und der Instanz-ID.
ipAddress IP-Adresse der Instanz, wie von der Systemdiagnose geprüft.
network URL der Netzwerkressource für diese Instanz basierend auf der Stringprojekt-ID und dem Netzwerknamen.
networkWithId URL der Netzwerkressource für diese Instanz basierend auf ihrer numerischen Projekt-ID und Netzwerk-ID.
healthCheck URL für die Systemdiagnose, die für die verwaltete Instanzgruppe konfiguriert ist.
previousDetailedHealthState Vorheriger Systemzustand der Instanz. Eine Liste der möglichen Status finden Sie unter Systemzustand.
detailedHealthState Aktueller Systemzustand der Instanz. Eine Liste der möglichen Status finden Sie unter Systemzustand.
notificationTime Zeitstempel für den Zeitpunkt der Änderung des Systemzustands.

Boolesche Logfelder erscheinen normalerweise nur, wenn sie den Wert true haben. Wenn ein boolesches Feld einen Wert false hat, erscheint dieses Feld nicht im Log.

Für Logfelder wird eine UTF-8-Codierung erzwungen. Zeichen, bei denen es sich nicht um UTF-8-Zeichen handelt, werden durch Fragezeichen ersetzt.

Beispiel-Logeintrag

Das folgende Beispiel zeigt, wie sich der Systemzustand einer VM-Instanz von HEALTHY in UNHEALTHY ändert:

  {
    "logName": "projects/my-project/logs/compute.googleapis.com%2Finstance_group_manager_events",
    "resource": {
      "type": "gce_instance_group_manager",
      "labels": {
        "instance_group_manager_id": "3138236342290985981",
        "instance_group_manager_name": "my-mig",
        "project_id": "my-project",
        "location": "europe-west3"
      }
    },
    "labels": {
      "compute.googleapis.com/instance_id": "6498902454451155884",
      "compute.googleapis.com/instance_location": "europe-west3-a",
      "compute.googleapis.com/instance_name": "my-mig-a"
    },
    "timestamp": "2019-11-19T15:47:57.127Z",
    "severity": "INFO",
    "jsonPayload": {
      "@type": "type.googleapis.com/compute.InstanceGroupManagerEvent",
      "instanceHealthStateChange": {
        "instance": "projects/my-project/zones/europe-west3-a/instances/my-mig-a",
        "instanceWithId": "projects/123456/zones/europe-west3-a/instances/6498902454451155884",
        "ipAddress": "10.0.0.4",
        "network": "projects/my-project/global/networks/net-1",
        "networkWithId": "projects/123456/global/networks/456",
        "healthCheck": "projects/my-project/global/healthChecks/my-mig-health-check",
        "previousDetailedHealthState": "HEALTHY",
        "detailedHealthState": "UNHEALTHY",
        "notificationTime": "2019-11-19T15:47:56.444Z"
      }
    },
    "receiveTimestamp": "2019-11-19T15:47:57.296439184Z"
  }
  

Anwendungsfälle

Sie können die Änderungslogs zum Systemzustand in den folgenden Monitoring- oder Debugging-Szenarien verwenden:

  • Herausfinden, wie oft sich der Systemzustand einer bestimmten VM-Instanz im Laufe der Zeit geändert hat.
  • Prüfen, wie häufig bei einer MIG Änderungen am Systemzustand ihrer Instanzen aufgetreten sind.
  • Problematische VM-Instanzen bestimmen, die häufig in den Status UNHEALTHY wechseln.
  • Erfahren Sie, was die automatische Reparatur-Versuch verursacht hat.
  • Herausfinden, ob ein automatischer Reparaturversuch für eine bestimmte VM-Instanz erfolgreich war.
  • Optimieren der Konfiguration einer Systemdiagnose für eine Anwendung, indem Sie eine geeignete anfängliche Verzögerung für die automatische Reparatur bestimmen.

Änderungen des Systemzustands einer VM überwachen

Sie können überwachen, wie häufig sich der Systemzustand einer VM-Instanz ändert. Dazu erstellen Sie einen Messwert, der die Änderungen des Systemzustands dieser VM verfolgt.

So erstellen Sie den Messwert und überwachen die Änderungen:

  1. Rufen Sie in der Google Cloud Console den Log-Explorer auf.

    Zum Log-Explorer

  2. Geben Sie die folgende Abfrage mit Ihrer Projekt-ID und dem Instanznamen in den Query Builder ein.

    resource.type="gce_instance_group_manager" AND
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND
    jsonPayload.instanceHealthStateChange:* AND
    labels."compute.googleapis.com/instance_name"="INSTANCE_NAME"
    
  3. Klicken Sie im Abschnitt Abfrageergebnisse auf Aktionen und dann auf Messwert erstellen.

  4. Führen Sie auf der Seite Logmesswert erstellen die folgenden Schritte aus:

    1. Legen Sie den Messwerttyp als Zähler fest.
    2. Geben Sie einen Logmesswertnamen ein, z. B. health-mig-xyzq.

      Im Abschnitt Filter erstellen wird die Logabfrage aus dem Log-Explorer angezeigt. Sie können den Filter des Messwerts auch so konfigurieren, dass nur gestörte Status wie UNHEALTHY und TIMEOUT berücksichtigt werden, indem Sie dem Filter severity>=WARNING hinzufügen.

    3. Klicken Sie unter Labels auf Label hinzufügen.

    4. Geben Sie einen Labelnamen ein, z. B. health_state.

    5. Legen Sie als Labeltyp STRING fest.

    6. Legen Sie als Feldname jsonPayload.instanceHealthStateChange.detailedHealthState fest. Auf diese Weise können Sie zwischen verschiedenen Änderungen am Systemstatus unterscheiden.

    7. Klicken Sie auf Fertig, um das Label hinzuzufügen.

    8. Klicken Sie auf Messwert erstellen.

  5. Rufen Sie die Seite Logbasierte Messwerte auf und suchen Sie den neu erstellten Messwert.

  6. Klicken Sie auf das Menü in der Zeile des Messwerts und wählen Sie In Metrics Explorer ansehen aus. Der Metrics Explorer wird geöffnet und zeigt die Grafik mit den Änderungen des Systemzustands der VM-Instanz an, die Sie in der Abfrage angegeben haben.

Änderungen des Systemzustands aller VMs in einer MIG überwachen

Sie können Änderungen des Systemzustands aller verwalteten Instanzen überwachen. Erstellen Sie dazu einen Messwert, der die Änderungen des Systemzustands der verwalteten Instanzen erfasst.

So erstellen Sie den Messwert und überwachen die Änderungen:

  1. Rufen Sie in der Google Cloud Console den Log-Explorer auf.

    Zum Log-Explorer

  2. Geben Sie die folgende Abfrage in den Query Builder ein und verwenden Sie dabei Ihre Projekt-ID und den Namen der verwalteten Instanzgruppe.

    resource.type="gce_instance_group_manager" AND
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND
    jsonPayload.instanceHealthStateChange:* AND
    resource.labels.instance_group_manager_name="MIG_NAME"
    
  3. Klicken Sie im Abschnitt Abfrageergebnisse auf Aktionen und dann auf Messwert erstellen.

  4. Führen Sie auf der Seite Logmesswert erstellen die folgenden Schritte aus:

    1. Legen Sie den Messwerttyp als Zähler fest.
    2. Geben Sie einen Logmesswertnamen ein, z. B. health-mig-xyzq.
    3. Klicken Sie unter Labels auf Label hinzufügen.
    4. Geben Sie einen Labelnamen ein, z. B. health_state.
    5. Legen Sie als Labeltyp STRING fest.
    6. Legen Sie als Feldname jsonPayload.instanceHealthStateChange.detailedHealthState fest. Auf diese Weise können Sie zwischen verschiedenen Änderungen am Systemstatus unterscheiden.
    7. Klicken Sie auf Fertig, um das Label hinzuzufügen.
    8. Klicken Sie auf Messwert erstellen.
  5. Rufen Sie die Seite Logbasierte Messwerte auf und suchen Sie den neu erstellten Messwert.

  6. Klicken Sie auf das Menü in der Zeile des Messwerts und wählen Sie In Metrics Explorer ansehen aus. Der Metrics Explorer wird geöffnet und zeigt die Grafik mit den Änderungen des Systemzustands aller VM-Instanzen in der verwalteten Instanzgruppe an, die Sie in der Abfrage angegeben haben.

VMs bestimmen, die häufig fehlerhaft sind

Sie können problematische VMs identifizieren, die häufig auf UNHEALTHY wechseln, indem Sie einen Messwert erstellen, der die Änderungen des Systemzustands aller VM-Instanzen in Ihrer MIG verfolgt und indem Sie den Messwert nach Instanzen gruppieren.

So erstellen Sie den Messwert und gruppieren ihn nach Instanzen:

  1. Rufen Sie in der Google Cloud Console den Log-Explorer auf.

    Zum Log-Explorer

  2. Geben Sie die folgende Abfrage in den Query Builder ein und verwenden Sie dabei Ihre Projekt-ID und den Namen der verwalteten Instanzgruppe.

    resource.type="gce_instance_group_manager" AND
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND
    jsonPayload.instanceHealthStateChange:* AND
    resource.labels.instance_group_manager_name="MIG_NAME"
    
  3. Klicken Sie im Abschnitt Abfrageergebnisse auf Aktionen und dann auf Messwert erstellen.

  4. Führen Sie auf der Seite Logmesswert erstellen die folgenden Schritte aus:

    1. Legen Sie den Messwerttyp als Zähler fest.
    2. Geben Sie einen Logmesswertnamen ein, z. B. health-mig-xyzq.
    3. Klicken Sie unter Labels auf Label hinzufügen.
    4. Geben Sie einen Labelnamen ein, z. B. health_state.
    5. Legen Sie als Labeltyp STRING fest.
    6. Legen Sie als Feldname jsonPayload.instanceHealthStateChange.detailedHealthState fest. Auf diese Weise können Sie zwischen verschiedenen Änderungen am Systemstatus unterscheiden.
    7. Klicken Sie auf Fertig, um das Label hinzuzufügen.
    8. Fügen Sie ebenfalls ein zweites Label hinzu, z. B. instance, wobei der Feldname auf jsonPayload.instanceHealthStateChange.instance gesetzt ist.
    9. Klicken Sie auf Messwert erstellen.
  5. Rufen Sie die Seite Logbasierte Messwerte auf und suchen Sie den neu erstellten Messwert.

  6. Klicken Sie auf das Menü in der Zeile des Messwerts und wählen Sie In Metrics Explorer ansehen aus. Der Metrics Explorer wird geöffnet und zeigt die Grafik mit den Änderungen des Systemzustands aller VM-Instanzen in der verwalteten Instanzgruppe an, die Sie in der Abfrage angegeben haben.

  7. Legen Sie unter Gruppieren nach den Wert instance fest, um die aggregierte Anzahl von Änderungen am Systemzustand für jede Instanz anzuzeigen.

Die Instanzen mit den meisten Änderungen des Systemzustands nach zusammenfassen sind die am häufigsten fehlerhaften.

Ursachen für automatische Reparaturversuch prüfen

Um herauszufinden, warum der automatische Reparaturversuch verursacht wurde, filtern Sie Logs nach repair-Vorgängen für eine bestimmte VM-Instanz.

Gehen Sie so vor, um die Reparaturvorgänge zu filtern:

  1. Rufen Sie in der Google Cloud Console den Log-Explorer auf.

    Zum Log-Explorer

  2. Geben Sie die folgende Abfrage in den Query Builder ein und verwenden Sie Ihre Projekt-ID und den Namen der Instanz.

    resource.type="gce_instance" AND
    logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event" AND
    protoPayload.methodName="compute.instances.repair.recreateInstance" AND
    protoPayload.resourceName=~"/INSTANCE_NAME$"
    
  3. Klicken Sie auf Abfrage ausführen. In den Abfrageergebnissen werden alle automatischen Reparaturversuche für die VM mit dem Grund der automatischen Reparatur in protoPayload.status.message angezeigt.

Prüfen, ob die automatische Reparatur für eine VM erfolgreich war

Sie können feststellen, ob ein automatischer Reparaturversuch für eine VM-Instanz erfolgreich war. Dazu filtern Sie Logs für repair-Vorgängen und Systemstatusänderungen nach VM-Instanznamen. Wenn sich der Systemstatus der Instanz nach einem Reparaturvorgang in HEALTHY geändert hat, wird ein entsprechendes Systemstatus-Änderungslog angezeigt. Folgen Sie der Anleitung:

  1. Rufen Sie in der Google Cloud Console den Log-Explorer auf.

    Zum Log-Explorer

  2. Geben Sie die folgende Abfrage in den Query Builder ein und verwenden Sie Ihre Projekt-ID und den Namen der Instanz.

    (resource.type="gce_instance" AND
    logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event" AND
    protoPayload.methodName="compute.instances.repair.recreateInstance" AND
    protoPayload.resourceName=~"/INSTANCE_NAME$")
    OR
    (resource.type="gce_instance_group_manager" AND
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND
    jsonPayload.instanceHealthStateChange:* AND
    labels."compute.googleapis.com/instance_name"="INSTANCE_NAME")
    

    Der erste Teil der Abfrage zeigt die Instanzreparaturvorgänge an, die darauf hinweisen, dass die Wiederherstellung durch die automatische Reparatur der MIG ausgelöst wurde, um die Instanz wieder zu reparieren. Im zweiten Teil der Abfrage werden alle Änderungen des Systemzustands der VM-Instanz angezeigt.

    In den Abfrageergebnissen zeigt das Ereignis zum Ändern des Systemstatus, mit detailedHealthState kurz nach einem Reparaturvorgang auf HEALTHY gesetzt, an, dass die automatische Reparatur erfolgreich war.

Wert für anfängliche Verzögerung einer MIG bestimmen

Mit dem Logging des Zustands der VM-Instanz lässt sich leichter ein geeigneter anfänglicher Verzögerungswert für die automatische Reparatur der MIG ermitteln. Mit Logs können Sie die Zeit zwischen dem Abschluss des Vorgangs instances.insert und dem Empfang des ersten fehlerfreien Signals für eine Reihe von Instanzen in einer Gruppe beobachten. Dieses Zeitintervall gibt an, wie lange Instanzen dauern, bis sie vollständig gestartet sind. Da einige VMs möglicherweise langsamer starten als andere, empfiehlt Google, der beobachteten Initialisierungszeit (vom Einfügevorgang bis zum fehlerfreien Zustand) einen Puffer hinzuzufügen, wenn die anfängliche Verzögerung in der Richtlinie für die automatische Reparatur angegeben wird.

Um die Zeit zwischen dem Einfügevorgang einer Instanz und dem Erreichen des fehlerfreien Zustands der Instanz zu messen, führen Sie eine Abfrage nach Vorgängen vom Typ insert und Zustandsänderungslogs nach VM-Instanznamen durch. Verwenden Sie Zeitstempel aus beiden Vorgängen, um die Initialisierungszeit der Instanz zu berechnen. Folgen Sie der Anleitung:

  1. Rufen Sie in der Google Cloud Console den Log-Explorer auf.

    Zum Log-Explorer

  2. Geben Sie die folgende Abfrage in den Query Builder ein und verwenden Sie Ihre Projekt-ID und den Namen der Instanz.

    (resource.type="gce_instance" AND
    logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" AND
    protoPayload.request.@type="type.googleapis.com/compute.instances.insert" AND
    operation.last="true" AND
    protoPayload.resourceName=~"/INSTANCE_NAME$") OR
    (resource.type="gce_instance_group_manager" AND
    logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND
    jsonPayload.instanceHealthStateChange:* AND
    labels."compute.googleapis.com/instance_name"="INSTANCE_NAME")
    

    Der erste Teil der Abfrage zeigt den Abschluss des VM-Vorgangs "Insert" an. Im zweiten Teil werden alle Änderungen des Systemzustands für die VM angezeigt.

    In den Abfrageergebnissen zeigt der Zeitstempel des Änderungsereignisses für den Systemzustand mit detailedHealthState gesetzt auf HEALTHY kurz nach dem Einfügenvorgang die Zeit an, die für diese VM benötigt wird, um hochfahren.

  3. Wiederholen Sie die Schritte für einige weitere VMs, um einen besseren Näherungswert des Parameters für die anfängliche Verzögerung zu erhalten.