Logs zur Instanzverteilung ansehen

Wenn Sie eine regionale verwaltete Instanzgruppe (Managed Instance Group, MIG) erstellen oder ihre Zielgröße erhöhen, wertet Compute Engine die Echtzeit-Ressourcenverfügbarkeit aus, um neue Compute-Instanzen auf Zonen und Maschinentypen zu verteilen. Während dieses Vorgangs zeichnet Compute Engine einen Logeintrag zur Instanzverteilung in Cloud Logging auf.

In diesem Dokument wird beschrieben, wie Sie diese Logs zur Instanzverteilung aufrufen und interpretieren. Außerdem wird erläutert, wie Sie diese Logs verwenden, um ausstehende Zuweisungen zu untersuchen und Benachrichtigungen zu konfigurieren.

Informationen zur tatsächlichen Verteilung Ihrer laufenden Instanzen finden Sie unter Instanzverteilung in MIGs überwachen.

Informationen zu Instanzverteilungslogs

Instanzverteilungslogs bieten einen einmaligen Snapshot der geplanten Zuweisungen der MIG für Compute-Instanzen. In diesen Logs bedeutet eine zugewiesene Instanz, dass die MIG Kapazität gefunden hat und plant, die Compute-Instanz auf diesem Maschinentyp und in dieser Zone zu erstellen. Eine zugewiesene Größe bedeutet nicht, dass die Compute-Instanzen bereits erstellt wurden.

Da die Logs einen Snapshot bereitstellen, aktualisiert Compute Engine diese Logs nicht, wenn die MIG die verbleibenden Compute-Instanzen später erstellt. Im Logeintrag können Sie die folgenden Details sehen:

  • Verteilung der Maschinentypen: Die Anzahl der Compute-Instanzen, die die MIG pro Maschinentyp zugewiesen hat. Diese Informationen sind nur für regionale verwaltete Instanzgruppen verfügbar, die Instanzflexibilität verwenden.

  • Zonale Verteilung: Die Anzahl der Compute-Instanzen, die die MIG pro Zone zugewiesen hat.

  • Instanzen, die auf Kapazität warten: Die Anzahl der Instanzen, für die die MIG nicht sofort Kapazität zuweisen konnte und aktiv nach Kapazität sucht.

Beschränkungen

  • Logs zur Instanzverteilung sind nur für regionale verwaltete Instanzgruppen verfügbar.

  • Bei regionalen MIGs, die die Zielverteilungsform EVEN ohne Autoscaling verwenden, enthält der Logeintrag nur die Felder oldSize, newSize, deltaSize und targetShape, ohne Details zur Instanzverteilung.

  • Compute Engine protokolliert Details zur Instanzverteilung nur, wenn Sie eine verwaltete Instanzgruppe erstellen oder ihre Zielgröße erhöhen. Compute Engine protokolliert diese Details nicht, wenn die Zielgröße verringert wird oder wenn Instanzen repariert, neu erstellt oder aktualisiert werden.

Logs zur Instanzverteilung einer bestimmten MIG ansehen

Verwenden Sie eine der folgenden Optionen, um die Instanzverteilungslogs einer bestimmten MIG aufzurufen:

Console

Sie können die Logs für eine bestimmte MIG direkt auf der Detailseite der Instanzgruppe aufrufen.

  1. Rufen Sie in der Cloud de Confiance Console die Seite Instanzgruppen auf.

    Zu den Instanzgruppen

  2. Klicken Sie auf den Namen der MIG, die Sie aufrufen möchten.

  3. Klicken Sie auf den Tab Monitoring.

  4. Wählen Sie im linken Bereich Protokolle aus.

  5. Geben Sie im Filter für die Logergebnisse instanceDistribution ein und drücken Sie die Eingabetaste.

  6. Wenn Sie die Daten zur Instanzverteilung aufrufen möchten, maximieren Sie einen Logeintrag und dann protoPayload.metadata.details.

gcloud

Verwenden Sie den Befehl gcloud logging read, um die Logs zur Instanzverteilung einer bestimmten MIG aufzurufen:

gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \
  protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND \
  resource.labels.instance_group_manager_name=\"MIG_NAME\""

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID.

  • MIG_NAME: Name der MIG.

REST

Wenn Sie die Logs zur Instanzverteilung einer bestimmten MIG aufrufen möchten, senden Sie eine POST-Anfrage an die Methode entries.list.

POST https://logging.googleapis.com/v2/entries:list
{
"resourceNames": [
  "projects/PROJECT_ID"
],
"filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND resource.labels.instance_group_manager_name=\"MIG_NAME\""
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID.

  • MIG_NAME: Name der MIG.

Weitere Informationen zu den einzelnen Feldern in einem Log finden Sie unter Logeintrag zur Instanzverteilung.

Alle Logs zur Instanzverteilung in einem Projekt ansehen

Wählen Sie eine der folgenden Optionen aus, um alle Logs zur Instanzverteilung in einem Projekt aufzurufen:

Console

  1. Rufen Sie in der Cloud de Confiance Console die Seite Log-Explorer auf:

    Zum Log-Explorer

  2. Geben Sie eine Abfrage ein. Hier einige Beispiele:

    • So rufen Sie alle Logs zur Instanzverteilung im Projekt auf:

      logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event"
      protoPayload.methodName="compute.instanceGroupManagers.instanceDistribution"
      
    • So rufen Sie die Logs zur Instanzverteilung auf, in denen ein Teil der Größenänderung noch auf Kapazität wartet:

      logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event"
      protoPayload.methodName="compute.instanceGroupManagers.instanceDistribution"
      protoPayload.metadata.details.data.activeSeekDeltaSize > 0
      

    Ersetzen Sie PROJECT_ID durch die ID Ihres Projekts.

  3. Klicken Sie auf Abfrage ausführen.

  4. Maximieren Sie in den Ergebnissen einen Logeintrag.

    • Maximieren Sie protoPayload.metadata.details, um die Zusammenfassung und die Daten aufzurufen.
    • Wenn Sie die Zusammenfassung für jede Zeile sehen möchten, klicken Sie auf message und wählen Sie Feld in Zusammenfassungszeile einfügen aus.

gcloud

Verwenden Sie den Befehl gcloud logging read, um die Logs zur Instanzverteilung aufzurufen.

  • So rufen Sie alle Logs zur Instanzverteilung im Projekt auf:
gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \
  protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\""
  • Wenn Sie alle Logs im Projekt vom letzten Tag aufrufen möchten, geben Sie das Flag --freshness=1d so an:
gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \
    protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\"" \
    --freshness=1d
  • So rufen Sie die Logs zur Instanzverteilung auf, in denen ein Teil der Größenänderung noch auf Kapazität wartet:
gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \
    protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND \
    protoPayload.metadata.details.data.activeSeekDeltaSize > 0"

Ersetzen Sie PROJECT_ID durch die ID Ihres Projekts.

REST

Senden Sie eine POST-Anfrage an die Methode entries.list, um die Logs zur Instanzverteilung aufzurufen.

  • So rufen Sie alle Logs zur Instanzverteilung im Projekt auf:
POST https://logging.googleapis.com/v2/entries:list
{
  "resourceNames": [
    "projects/PROJECT_ID"
  ],
  "filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\""
}
  • Wenn Sie alle Logs im Projekt vom letzten Tag aufrufen möchten, fügen Sie dem Filter eine timestamp-Bedingung hinzu:
POST https://logging.googleapis.com/v2/entries:list
{
  "resourceNames": [
    "projects/PROJECT_ID"
  ],
  "filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND timestamp >= \"YYYY-MM-DDThh:mm:ssZ\""
}
  • So rufen Sie die Logs zur Instanzverteilung auf, in denen ein Teil der Größenänderung noch auf Kapazität wartet:
POST https://logging.googleapis.com/v2/entries:list
{
  "resourceNames": [
    "projects/PROJECT_ID"
  ],
  "filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND protoPayload.metadata.details.data.activeSeekDeltaSize > 0"
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID.

  • YYYY-MM-DDThh:mm:ssZ: der RFC 3339-Zeitstempel für den Beginn, z. B. 2024-10-22T00:00:00Z.

Weitere Informationen zu den einzelnen Feldern in einem Log finden Sie unter Logeintrag zur Instanzverteilung.

Logeintrag zur Instanzverteilung

Im Folgenden finden Sie einen Beispiel-Logeintrag (protoPayload.metadata.details). Da dieses Ereignis ein einmaliger Snapshot ist, wird der Logeintrag nicht aktualisiert, wenn die verbleibenden Instanzen später erstellt werden. Im Logeintrag können Sie die Details so aufrufen:

  • details.data: Zeigt die strukturierten Details zur Instanzverteilung an.

  • details.message: Zeigt die Zusammenfassung der Instanzverteilung an.

In diesem Beispiel wird eine regionale MIG mit Instanzflexibilität von 0 auf 100 horizontal skaliert. Die MIG weist sofort 80 der 100 neuen Instanzen auf zwei Instanzauswahlen mit Rangfolge zu (20 c2-standard-4 Instanzen in der Auswahl rank2-c2 und 60 n2d-standard-4 Instanzen in der Auswahl rank3-n2d). Der Eintrag zeigt auch, dass jeweils 40 Compute-Instanzen in us-central1-b und us-central1-c zugewiesen sind. Für die verbleibenden 20 Instanzen (activeSeekDeltaSize) sucht die MIG weiterhin nach Kapazität in allen konfigurierten Instanzauswahlen und Zonen. Bei regionalen MIGs ohne Instanzflexibilität wird das Feld instanceSelections im Logeintrag weggelassen und nur die zonale Verteilung angezeigt.

"metadata": {
  "details": {
    "data": {
      "oldSize": 0,
      "newSize": 100,
      "deltaSize": 100,
      "targetShape": "BALANCED",
      "activeSeekDeltaSize": 20,
      "instanceSelections": {
        "rank1-n2": {
          "rank": 1,
          "machineSelections": [
            {
              "machineType": "n2-standard-4",
              "allocatedSize": 0
            }
          ]
        },
        "rank2-c2": {
          "rank": 2,
          "machineSelections": [
            {
              "machineType": "c2-standard-4",
              "allocatedSize": 20
            }
          ]
        },
        "rank3-n2d": {
          "rank": 3,
          "machineSelections": [
            {
              "machineType": "n2d-standard-4",
              "allocatedSize": 60
            }
          ]
        }
      },
      "zonalDistribution": {
        "us-central1-a": {
          "allocatedSize": 0
        },
        "us-central1-b": {
          "allocatedSize": 40
        },
        "us-central1-c": {
          "allocatedSize": 40
        }
      }
    },
    "message": "Increasing MIG target size from 0 to 100 instances (+100).
    Allocated 80 of 100 new instances. Allocated instances across instance
    selections: rank2-c2 (rank 2; c2-standard-4: 20); rank3-n2d (rank 3;
    n2d-standard-4: 60). Allocated instances across zones based on target
    distribution shape BALANCED: us-central1-a: 0, us-central1-b: 40,
    us-central1-c: 40. MIG continues to allocate the remaining 20 new instances
    across all instance selections and zones. The final distribution across zones
    and machine types may differ as instances are created. View the group's
    instances for the current distribution."
  }
}

In der folgenden Tabelle werden die einzelnen Felder in einem Logeintrag beschrieben.

Feld Beschreibung
details.data.oldSize Die Zielgröße der regionalen MIG vor der Größenänderung.
details.data.newSize Die angeforderte Zielgröße der regionalen MIG.
details.data.deltaSize Die Änderung der Zielgröße (newSize - oldSize).
details.data.targetShape Die Zielverteilungsform der regionalen MIG.
details.data.activeSeekDeltaSize Die Anzahl der neuen Instanzen, für die die verwaltete Instanzgruppe noch Kapazität in den konfigurierten Instanzauswahlen und Zonen sucht. Dieses Feld wird weggelassen, wenn der Wert 0 ist.
details.data.instanceSelections

Die konfigurierten Instanzauswahlen, die während der Zuweisung ausgewertet wurden. Dieses Feld ist nur für MIGs vorhanden, die Instanzflexibilität verwenden. Jeder Schlüssel ist der Name einer Instanzauswahl und sein Wert enthält die folgenden Felder:

  • rank: der Prioritätsrang, der für die Instanzauswahl konfiguriert ist.
  • machineSelections: Eine Liste der Maschinentypzuweisungen innerhalb der Auswahl, wobei jeder Eintrag den Maschinentyp (machineType) und die Anzahl der Compute-Instanzen angibt, die mit diesem Maschinentyp zugewiesen wurden (allocatedSize).
details.data.zonalDistribution Die konfigurierten Zonen und die ihnen zugewiesene Instanzverteilung. Jeder Schlüssel ist ein Zonenname und sein Wert enthält die Anzahl der in dieser Zone zugewiesenen Compute-Instanzen (allocatedSize).
details.message Eine Zusammenfassung, die die Instanzverteilung beschreibt, einschließlich der zugewiesenen Anzahl und der Details zur Suchkapazität.

Logs zur Instanzverteilung interpretieren

Das Instanzverteilungslog bietet einen Snapshot des Plans der MIG für die Erstellung von Compute-Instanzen. Da das Log angibt, dass die MIG Compute-Instanzen zuweist, bevor sie erfolgreich erstellt wurden, sollten Sie die Logdaten zusammen mit dem Status der Compute-Instanz und Fehlermeldungen verwenden, um das tatsächliche Verhalten Ihrer MIG zu verstehen.

Anhand der folgenden Tabelle können Sie gängige Logausgaben interpretieren und feststellen, ob Sie Maßnahmen ergreifen müssen:

Logausgabe Erklärung Empfohlene Maßnahmen
activeSeekDeltaSize ist größer als 0 Die verwaltete Instanzgruppe konnte nicht genügend Kapazität finden, um die gesamte Anfrage zur Größenanpassung sofort zu erfüllen. Die verwaltete Instanzgruppe versucht weiterhin, die verbleibenden Instanzen über alle konfigurierten Optionen hinweg zu erstellen. Prüfen Sie die Instanzfehler der MIG, um herauszufinden, warum die Instanzerstellung fehlgeschlagen ist. Erwägen Sie, Maschinentypen aus anderen Maschinenfamilien hinzuzufügen, Zonen hinzuzufügen oder Ihre Kontingente zu prüfen.
Eine Auswahl mit höherer Priorität (niedrigere Rangnummer) hat einen allocatedSize von 0. Zum Zeitpunkt der Entscheidung hat die MIG Ihre bevorzugten Maschinentypen geprüft, aber nicht genügend Kapazität gefunden. Die MIG hat stattdessen eine Auswahl mit niedrigerer Priorität (höhere Rangnummer) verwendet. Compute Engine protokolliert keine Instanzfehler für übersprungene Auswahlen. Wenn die MIG Ihre bevorzugte Auswahl häufig überspringt, sollten Sie Ihrer bevorzugten Auswahl weitere Maschinentypen hinzufügen oder Optionen mit niedrigerer Priorität akzeptieren.
Eine konfigurierte Zone hat den allocatedSize-Wert 0 Die verwaltete Instanzgruppe hat in dieser Zone keine neuen Instanzen zugewiesen. Wenn Ihre Zielform ANY oder ANY_SINGLE_ZONE ist, ist diese ungleichmäßige Verteilung normal. Andernfalls sollten Sie das Kontingent, die Reservierungen und die Zonenunterstützung für Ihre Instanzvorlage prüfen.
In der Zusammenfassung von message fehlt ein Maschinentyp Die MIG hat diesen Maschinentyp nicht für die Zuweisung verwendet. Prüfen Sie den strukturierten details.data-Block. In der Zusammenfassung werden Auswahlen und Maschinentypen weggelassen, die 0 neue Instanzen erhalten haben. In den strukturierten Daten werden jedoch alle ausgewerteten Optionen aufgeführt.

Ausstehende Instanzzuweisungen prüfen

Wenn Ihre MIG noch auf Kapazität wartet (activeSeekDeltaSize > 0), können Sie Folgendes prüfen, um die Gründe für die ausstehenden Zuweisungen zu verstehen:

  • Prüfen Sie, ob Fehler bei der Instanzerstellung aufgetreten sind. Prüfen Sie die Instanzfehler, um festzustellen, ob die Instanzerstellung nach der Kapazitätszuweisung durch die MIG fehlgeschlagen ist oder ob Compute-Instanzen noch auf Kapazität warten. Weitere Informationen finden Sie unter Instanzfehler auflisten.

  • Instanzstatus prüfen Wenn Sie den Status und die aktuelle Aktion der einzelnen Instanzen sehen möchten, listen Sie die Instanzen in der MIG auf und prüfen Sie das Feld instanceStatus. Weitere Informationen finden Sie unter Status verwalteter Instanzen prüfen.

  • Konfiguration prüfen Wenn Sie eine Richtlinie für die Instanzflexibilität in der MIG konfiguriert haben, prüfen Sie Ihre regionalen Kontingente für die Maschinenfamilien in der Richtlinie. Prüfen Sie außerdem, ob die ausgewählten Zonen die angeforderten Maschinentypen unterstützen. Weitere Informationen finden Sie unter Kontingente aufrufen und verwalten und Verfügbare Regionen und Zonen.

Benachrichtigungsrichtlinien auf Basis von Logs erstellen

Wenn Sie benachrichtigt werden möchten, wenn MIG-Größenänderungsvorgänge auf Kapazität warten, können Sie im Log-Explorer eine logbasierte Benachrichtigungsrichtlinie erstellen. Sie können beispielsweise eine Benachrichtigung auslösen, wenn activeSeekDeltaSize größer als 0 ist.

So erstellen Sie diese Benachrichtigung:

  1. Rufen Sie in der Cloud de Confiance Console die Seite Log-Explorer auf.

    Zum Log-Explorer

  2. Geben Sie die folgende Abfrage ein:

    logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event"
    protoPayload.methodName="compute.instanceGroupManagers.instanceDistribution"
    protoPayload.metadata.details.data.activeSeekDeltaSize > 0
    

    Ersetzen Sie PROJECT_ID durch die ID Ihres Projekts.

  3. Klicken Sie auf Abfrage ausführen, um die Abfrage zu validieren.

  4. Erstellen Sie die Benachrichtigungsrichtlinie gemäß der Anleitung im Abschnitt Logbasierte Benachrichtigungsrichtlinie erstellen der Cloud Logging-Dokumentation.

Nächste Schritte