Autoscaling-Logs ansehen

Wenn Sie Autoscaling aktivieren, werden Skalierungsentscheidungen basierend auf den von Ihnen festgelegten Optionen vorgenommen. Jede Skalierungsentscheidung wird von Cloud Logging protokolliert. Lesen Sie diese Logs in der Loganzeige, um die vom Autoscaling getroffenen Skalierungsentscheidungen besser zu verstehen.

In der Loganzeige sehen Sie folgende Ereignisse:

  • Änderungen an der Größe einer Instanzgruppe. Bei Änderung der Größe einer Instanzgruppe wird diese in den Autoscaling-Logs beschrieben.
  • Statusänderungen des Autoscalings. Wenn beispielsweise das Autoscaling wie erwartet funktioniert, dann aber ein Problem auftritt, wird diese Statusänderung in den Autoscaling-Logs beschrieben. Einige dieser häufig auftretenden Statusmeldungen werden im Abschnitt Gängige Statusrückmeldungen erläutert.

Hinweis

Autoscaling-Logs ansehen

Zum Aufrufen von Autoscaling-Logs verwenden Sie die Google Cloud Console, das gcloud-Befehlszeilentool oder die Cloud Logging API.

Console

Wenn Sie das Autoscaling aktiviert haben, können Sie Autoscaling-Logs in der Google Cloud Console aufrufen.

  1. Öffnen Sie die Seite "Loganzeige".

    Zur Loganzeige

  2. Maximieren Sie das Drop-down-Menü der Ressource und wählen Sie GCE-Autoscaling aus.

gcloud

Führen Sie im gcloud-Tool den Betabefehl logging read aus, um alle Autoscaling-Logs aufzurufen, einschließlich Aktivitätslogs und Audit-Logs. Beispiel:

gcloud beta logging read "resource.type=gce_autoscaler" --limit 10 \
    --format json

Wenn Sie die Einträge auf Logs beschränken möchten, die nur Größenänderungen für das Autoscaling betreffen, geben Sie den Parameter logName an und filtern nach dem Feld jsonPayload.newSize. Setzen Sie den Wert logName auf:

`projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler`

Beispiel:

gcloud beta logging read 'logName="projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler" AND jsonPayload.newSize:*' \
    --limit 10 --format json

Zum Aufrufen der Statusänderungen für das Autoscaling verwenden Sie den Parameter logName und filtern nach dem Feld jsonPayload.new_status. Setzen Sie den Wert logName auf:

`projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler`

Beispiel:

gcloud beta logging read 'logName="projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler" AND jsonPayload.new_status:*' \
    --limit 10 --format json

API

Stellen Sie eine Anfrage an die Logging V2 API. Der Text der Anfrage muss den Parameter filter zum Suchen nach Logs und das project haben, für das Sie Logs aufrufen möchten. Hier ein Beispiel für eine Anfrage zum Abrufen einer Liste von Größenänderungen:

POST https://logging.googleapis.com/v2/entries:list

{
  "filter": "logName=\"projects\/[PROJECT_ID]\/logs\/compute.googleapis.com%2Fautoscaler\" AND jsonPayload.new_size:*",
  "pageSize": 10,
  "resourceNames": [
    "projects\/[PROJECT_ID]"
  ]
}

Anfrage zum Abrufen einer Liste von Statusänderungen:

POST https://logging.googleapis.com/v2/entries:list

{
  "filter": "logName=\"projects\/[PROJECT_ID]\/logs\/compute.googleapis.com%2Fautoscaler\" AND jsonPayload.new_status:*",
  "pageSize": 10,
  "resourceNames": [
    "projects\/[PROJECT_ID]"
  ]
}

Logs für Größenänderungen

Die Logs für Größenänderungen enthalten Informationen über die vorherige und die neue Größe der Instanzgruppe. Diese Logeinträge werden in der JSON-Nutzlast durch die folgenden Felder identifiziert:

jsonPayload.new_size
jsonPayload.old_size

Im folgenden Eintrag beschreibt das Log beispielsweise Änderungen von der früheren Instanzgruppe der Größe 8 in eine neue Instanzgruppe der Größe 10.

{
"insertId": "1l68z7sg4jw7kzo",
"jsonPayload": {
  "autoscaler_name": "example-autoscaler",
  "instance_group_name": "example-igm",
  "new_size": 10,
  "old_size": 8,
  "project_id": "myproject",
  "zone_name": "europe-west1-b"
},
"logName": "projects/myproject/logs/compute.googleapis.com%2Fautoscaler",
"receiveTimestamp": "2017-10-24T16:12:08.294439822Z",
"resource": {
  "labels": {
    "autoscaler_id": "1234567890123456789",
    "location": "europe-west1-b",
    "project_id": "myproject"
  },
  "type": "gce_autoscaler"
},
"severity": "INFO",
"timestamp": "2017-10-24T16:12:07.715125478Z"
}

Erläuterung der einzelnen Felder des Logs:

Eigenschaft Wert
insertId Eindeutige Kennung des Logeintrags.
jsonPayload Nutzlast des Logeintrags, dargestellt als eine Struktur, die als JSON-Objekt ausgedrückt wird.
new_size Die neue Größe der Gruppe, auf die automatisch skaliert wurde. Wenn die Gruppe vertikal skaliert wurde, ist die neue Größe größer als die alte Größe. Wenn sie verkleinert wurde, ist die neue Größe kleiner als die alte Größe.
old_size Alte Größe der Gruppe vor der Änderung.
instance_group_name Name der verwalteten Instanzgruppe, auf die sich der Logeintrag bezieht.
project_id Die Projekt-ID der Instanzgruppe. Diese sollte immer der ID des aktuellen Projekts entsprechen.
autoscaler_name Name des Autoscalings, das die Änderung ausgelöst hat.
zone_name Zone des Autoscalings und der Instanzgruppe.
resource Details zum Autoscaling.
type Der Ressourcentyp. Für Autoscalings ist dieses Feld immer gce_autoscaler.
labels Metadaten des Autoscalings.
location Zone des Autoscalings.
autoscaler_id Eine vom Server generierte, numerische Autoscaling-ID.
project_id Projekt-ID, der das Autoscaling zugeordnet ist.
timestamp Zeit, zu der das im Logeintrag beschriebene Ereignis eingetreten ist. Dies ist ein Zeitstempel im Format RFC 3339 UTC "Zulu'" in Nanosekunden.
severity Gewichtung des Logs. Für Autoscaling-Logs ist dies immer "INFO".
logName Ressourcenname des Logs, dessen Bestandteil der Logeintrag ist. Bei Autoscaling-Logs für Größenänderungen lautet dieser immer projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler.
receiveTimestamp Zeitpunkt, zu dem der Logeintrag von Cloud Logging empfangen wurde. Dies ist ein Zeitstempel im Format RFC 3339 UTC "Zulu'" in Nanosekunden.

Logs für Statusänderungen

Wenn sich der Status des Autoscalings ändert, erstellt Compute Engine einen Logeintrag, in dem diese Statusänderung erfasst wird. Diese Logeinträge werden in der JSON-Nutzlast durch die folgenden Felder identifiziert:

jsonPayload.old_status
jsonPayload.new_status

Der folgende Eintrag beschreibt zum Beispiel eine Statusänderung von OK zu einem neuen Status:

The autoscaler is configured to scale based on a load balancing signal but
the instance group has not received any utilization data from the load
balancer or the utilization is constantly 0. Check that the load balancing
configuration is working

Anhand dieser Statusmeldungen können Sie herausfinden, warum Ihr Autoscaling nicht wie erwartet funktioniert, oder Probleme beheben, die Ihnen aufgefallen sind. In diesem Fall können Sie beispielsweise anhand der Statusmeldung prüfen, ob das Load-Balancing richtig konfiguriert ist.

{
"insertId": "ivho6kg4icqfio",
"jsonPayload": {
  "autoscaler_name": "example-autoscaler",
  "instance_group_name": "example-igm",
  "new_status": {
    "details": "The autoscaler is configured to scale based on a load
        balancing signal but the instance group has not received any
        utilization data from the load balancer or the utilization is
        constantly 0. Check that the load balancing configuration is working."
  },
  "old_status": {
    "details": "OK"
  },
  "project_id": "myproject",
  "zone_name": "us-east1-b"
},
"logName": "projects/myproject/logs/compute.googleapis.com%2Fautoscaler",
"receiveTimestamp": "2017-10-24T15:11:58.076196762Z",
"resource": {
  "labels": {
    "autoscaler_id": "1234567890123456789",
    "location": "us-east1-b",
    "project_id": "myproject"
  },
  "type": "gce_autoscaler"
},
"severity": "INFO",
"timestamp": "2017-10-24T15:11:57.619997893Z"
}

Erläuterung der einzelnen Felder des Logs:

Eigenschaft Wert
insertId Eindeutige Kennung des Logeintrags.
jsonPayload Nutzlast des Logeintrags, dargestellt als eine Struktur, die als JSON-Objekt ausgedrückt wird.
new_status Neuer Autoscaling-Status. Hier finden Sie Häufige Statusrückmeldungen.
old_status Alter Autoscaling-Status vor der Änderung.
instance_group_name Name der verwalteten Instanzgruppe, auf die sich der Logeintrag bezieht.
project_id Projekt-ID der Instanzgruppe.
autoscaler_name Name des Autoscalings, das die Änderung ausgelöst hat.
zone_name Zone des Autoscalings und der Instanzgruppe.
resource Details zum Autoscaling.
type Der Ressourcentyp. Für Autoscalings ist dieses Feld immer gce_autoscaler.
labels Metadaten des Autoscalings.
location Zone des Autoscalings.
autoscaler_id Eine vom Server generierte, numerische Autoscaling-ID.
project_id Projekt-ID, der das Autoscaling zugeordnet ist. Dies ist immer das aktuelle Projekt.
timestamp Zeit, zu der das im Logeintrag beschriebene Ereignis eingetreten ist. Dies ist ein Zeitstempel im Format RFC 3339 UTC "Zulu'" in Nanosekunden.
severity Gewichtung des Logs. Für Autoscaling-Logs ist dies immer "INFO".
logName Ressourcenname des Logs, dessen Bestandteil der Logeintrag ist. Bei Logs für Statusänderungen ist dies immer projects/[PROJECT_ID]/logs/compute.googleapis.com%2Fautoscaler.
receiveTimestamp Zeitpunkt, zu dem der Logeintrag von Cloud Logging empfangen wurde. Dies ist ein Zeitstempel im Format RFC 3339 UTC "Zulu'" in Nanosekunden.

Nächste Schritte