Logging und Monitoring für globalen externen Application Load Balancer

In diesem Dokument erfahren Sie, wie Sie Cloud Logging und Cloud Monitoring mit klassischen Application Load Balancern, globalen externen Application Load Balancern und Cloud CDN konfigurieren und verwenden.

Logging

Sie können Logs für den Backend-Dienst eines externen Application Load Balancers aktivieren, deaktivieren und aufrufen. Für externe Application Load Balancer mit Backend-Buckets wird das Logging automatisch aktiviert und kann nicht deaktiviert werden.

Sie aktivieren oder deaktivieren Logging für jeden Backend-Dienst. Sie können konfigurieren, ob alle Anfragen oder nur ein zufällig ausgewählter Teil protokolliert werden sollen.

Achten Sie darauf, dass kein Logausschluss vorhanden ist, der für den externen Application Load Balancer gilt. Wie Sie prüfen, ob Cloud HTTP Load Balancer-Logs zulässig sind, erfahren Sie unter Ausgeschlossene Ressourcentypen ansehen.

Stichprobenentnahme und Erfassung von Logs

Die Anfragen (und entsprechenden Antworten), die von den Instanzen der virtuellen Maschinen (VM) im Backend des Load Balancers verarbeitet werden, werden in Stichproben erfasst. Diese Stichproben werden dann verarbeitet, um Protokolle zu generieren. Sie steuern den Anteil der Anfragen, die als Logeinträge gemäß dem Parameter logConfig.sampleRate ausgegeben werden. Wenn logConfig.sampleRate den Wert 1.0 (100%) hat, werden Logs für alle Anfragen generiert und in Cloud Logging geschrieben.

Logging für einen neuen Back-End-Dienst aktivieren

Console

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Load-Balancing aufrufen

  2. Klicken Sie auf den Namen des Load-Balancers.

  3. Klicken Sie auf Bearbeiten.

  4. Klicken Sie auf Backend-Konfiguration.

  5. Wählen Sie Backend-Dienst erstellen aus.

  6. Füllen Sie die Pflichtfelder für den Backend-Dienst aus.

  7. Wählen Sie im Bereich Logging die Option Logging aktivieren aus.

  8. Legen Sie einen Anteilswert für die Abtastrate fest. Sie können eine Zahl von 0.0 bis 1.0 festlegen, wobei 0.0 bedeutet, dass keine Anfragen in Logs erfasst werden, und 1.0 bedeutet, dass 100% der Anfragen in Logs erfasst werden. Der Standardwert ist 1.0.

  9. Klicken Sie auf Aktualisieren, um das Bearbeiten des Backend-Dienstes abzuschließen.

  10. Klicken Sie auf Aktualisieren, um die Bearbeitung des Load-Balancers abzuschließen.

gcloud: Modus "Global"

Erstellen Sie einen Backend-Dienst und aktivieren Sie das Logging mit dem Befehl gcloud compute backend-services create.

gcloud compute backend-services create BACKEND_SERVICE \
    --global \
    --enable-logging \
    --logging-sample-rate=VALUE \
    --load-balancing-scheme=EXTERNAL_MANAGED

Dabei gilt:

  • --global gibt an, dass der Backend-Dienst global ist. Verwenden Sie dieses Feld für Backend-Dienste, die mit globalen externen Application Load Balancern verwendet werden.
  • --enable-logging aktiviert das Logging für diesen Backend-Dienst.
  • Mit --logging-sample-rate können Sie einen Wert zwischen 0.0 und 1.0 angeben, wobei 0.0 dazu führt, dass keine Anfragen in Logs erfasst werden, und 1.0 bedeutet, dass 100 % der Anfragen in Logs erfasst werden. Dies ist nur mit dem Parameter --enable-logging sinnvoll. Wenn Sie das Logging aktivieren und die Abtastrate auf 0.0 festlegen, entspricht dies einer Deaktivierung des Loggings. Der Standardwert ist 1.0

gcloud: Modus "Klassisch"

Erstellen Sie einen Backend-Dienst und aktivieren Sie das Logging mit dem Befehl gcloud compute backend-services create.

gcloud compute backend-services create BACKEND_SERVICE \
 --global \
 --enable-logging \
 --logging-sample-rate=VALUE \
 --load-balancing-scheme=EXTERNAL

Dabei gilt:

  • --global gibt an, dass der Backend-Dienst global ist. Verwenden Sie dieses Feld für Backend-Dienste, die mit einem klassischen Application Load Balancer verwendet werden.
  • --enable-logging aktiviert das Logging für diesen Backend-Dienst.
  • Mit --logging-sample-rate können Sie einen Wert zwischen 0.0 und 1.0 angeben, wobei 0.0 dazu führt, dass keine Anfragen in Logs erfasst werden, und 1.0 bedeutet, dass 100 % der Anfragen in Logs erfasst werden. Dies ist nur mit dem Parameter --enable-logging sinnvoll. Wenn Sie das Logging aktivieren und die Abtastrate auf 0.0 festlegen, entspricht dies einer Deaktivierung des Loggings. Der Standardwert ist 1.0

Logging für vorhandenen Backend-Dienst aktivieren

Console

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Load-Balancing aufrufen

  2. Klicken Sie auf den Namen des Load-Balancers.

  3. Klicken Sie auf Bearbeiten.

  4. Klicken Sie auf Backend-Konfiguration.

  5. Klicken Sie neben Ihrem Backend-Dienst auf  Bearbeiten.

  6. Wählen Sie im Bereich Logging die Option Logging aktivieren aus.

  7. Legen Sie im Feld Abtastrate die Inklusionswahrscheinlichkeit fest. Sie können eine Zahl von 0.0 bis 1.0 festlegen, wobei 0.0 bedeutet, dass keine Anfragen in Logs erfasst werden, und 1.0 bedeutet, dass 100 % der Anfragen in Logs erfasst werden. Der Standardwert ist 1.0

  8. Klicken Sie auf Aktualisieren, um die Bearbeitung des Backend-Dienstes abzuschließen.

  9. Klicken Sie auf Aktualisieren, um die Bearbeitung des Load-Balancers abzuschließen.

gcloud: Modus "Global"

Aktivieren Sie das Logging für einen vorhandenen Backend-Dienst mit dem Befehl gcloud compute backend-services update.

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --enable-logging \
    --logging-sample-rate=VALUE

Dabei gilt:

  • --global gibt an, dass der Backend-Dienst global ist. Verwenden Sie dieses Feld für Backend-Dienste, die mit globalen externen Application Load Balancern verwendet werden.
  • --enable-logging aktiviert das Logging für diesen Backend-Dienst.
  • Mit --logging-sample-rate können Sie einen Wert zwischen 0.0 und 1.0 angeben, wobei 0.0 dazu führt, dass keine Anfragen in Logs erfasst werden, und 1.0 bedeutet, dass 100 % der Anfragen in Logs erfasst werden. Dies ist nur mit dem Parameter --enable-logging sinnvoll. Wenn Sie das Logging aktivieren und die Abtastrate auf 0.0 festlegen, entspricht dies einer Deaktivierung des Loggings. Der Standardwert ist 1.0

gcloud: Modus "Klassisch"

Aktivieren Sie das Logging für einen vorhandenen Backend-Dienst mit dem Befehl gcloud compute backend-services update.

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --enable-logging \
    --logging-sample-rate=VALUE

Dabei gilt:

  • --global gibt an, dass der Backend-Dienst global ist. Verwenden Sie dieses Feld für Backend-Dienste, die mit einem klassischen Application Load Balancer verwendet werden.
  • --enable-logging aktiviert das Logging für diesen Backend-Dienst.
  • Mit --logging-sample-rate können Sie einen Wert zwischen 0.0 und 1.0 angeben, wobei 0.0 dazu führt, dass keine Anfragen in Logs erfasst werden, und 1.0 bedeutet, dass 100 % der Anfragen in Logs erfasst werden. Dies ist nur mit dem Parameter --enable-logging sinnvoll. Wenn Sie das Logging aktivieren und die Abtastrate auf 0.0 festlegen, entspricht dies einer Deaktivierung des Loggings. Der Standardwert ist 1.0

Logging für einen vorhandenen Backend-Dienst deaktivieren oder ändern

Console

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Load-Balancing aufrufen

  2. Klicken Sie auf den Namen des Load-Balancers.

  3. Klicken Sie auf Bearbeiten.

  4. Klicken Sie auf Backend-Konfiguration.

  5. Klicken Sie neben Ihrem Backend-Dienst auf  Bearbeiten.

  6. Wenn Sie das Logging vollständig deaktivieren möchten, entfernen Sie im Bereich Logging das Häkchen aus dem Kästchen Logging aktivieren.

  7. Wenn das Logging aktiviert bleibt, können Sie einen anderen Anteilswert als Abtastrate festlegen. Sie können eine Zahl von 0.0 bis 1.0 festlegen, wobei 0.0 bedeutet, dass keine Anfragen in Logs erfasst werden, und 1.0 bedeutet, dass 100% der Anfragen in Logs erfasst werden. Der Standardwert ist 1.0. 0.2 bedeutet beispielsweise, dass für 20% der Stichproben angeforderten Seiten Protokolle generiert werden.

  8. Klicken Sie auf Aktualisieren, um das Bearbeiten des Backend-Dienstes abzuschließen.

  9. Klicken Sie auf Aktualisieren, um die Bearbeitung des Load-Balancers abzuschließen.

gcloud: Modus "Global"

Deaktivieren Sie das Logging für den Backend-Dienst mit dem Befehl gcloud compute backend-services update.

Logging vollständig deaktivieren

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --no-enable-logging

Dabei gilt:

  • --global gibt an, dass der Backend-Dienst global ist. Verwenden Sie dieses Feld für Backend-Dienste, die mit globalen externen Application Load Balancern verwendet werden.
  • --region gibt an, dass der Backend-Dienst regional ist. Verwenden Sie dieses Feld für Backend-Dienste, die mit regionalen externen Application Load Balancern verwendet werden.
  • --no-enable-logging deaktiviert das Logging für diesen Backend-Dienst.

Abtastrate für das Logging ändern

gcloud compute backend-services update BACKEND_SERVICE \
 --global \
 --logging-sample-rate=VALUE

gcloud: Modus "Klassisch"

Deaktivieren Sie das Logging für den Backend-Dienst mit dem Befehl gcloud compute backend-services update.

Logging vollständig deaktivieren

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --no-enable-logging

Dabei gilt:

  • --global gibt an, dass der Backend-Dienst global ist. Verwenden Sie dieses Feld für Backend-Dienste, die mit einem klassischen Application Load Balancer verwendet werden.
  • --no-enable-logging deaktiviert das Logging für diesen Backend-Dienst.

Abtastrate für das Logging ändern

gcloud compute backend-services update BACKEND_SERVICE \
 --global \
 --logging-sample-rate=VALUE

Dabei gilt:

  • --global gibt an, dass der Backend-Dienst global ist. Verwenden Sie dieses Feld für Backend-Dienste, die mit einem klassischen Application Load Balancer verwendet werden.
  • Mit --logging-sample-rate können Sie einen Wert zwischen 0.0 und 1.0 angeben, wobei 0.0 dazu führt, dass keine Anfragen in Logs erfasst werden, und 1.0 bedeutet, dass 100 % der Anfragen in Logs erfasst werden. Dies ist nur mit dem Parameter --enable-logging sinnvoll. Wenn Sie das Logging aktivieren und die Abtastrate auf 0.0 festlegen, entspricht dies einer Deaktivierung des Loggings.

Logs ansehen


Klicken Sie auf Anleitung, um eine detaillierte Anleitung für diese Aufgabe direkt in der Google Cloud Console aufzurufen.

Anleitung


HTTP(S)-Logs werden zuerst nach einer Weiterleitungsregel, dann nach einer URL-Zuordnung indexiert.

Um Logs anzusehen, öffnen Sie die Log-Explorer-Seite.

Zum Log-Explorer

  • Zum Ansehen aller Logs wählen Sie im Filtermenü Ressource die Option Cloud-HTTP-Load-Balancer > Alle Weiterleitungsregeln aus.

  • Wenn Sie die Logs für nur eine Weiterleitungsregel aufrufen möchten, wählen Sie den Namen einer einzelnen Weiterleitungsregel aus.

  • Um Logs für eine URL-Zuordnung aufzurufen, wählen Sie eine Weiterleitungsregel und dann eine URL-Zuordnung aus.

Boolesche Logfelder werden normalerweise nur angezeigt, 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. Für klassische Application Load Balancer und globale externe Application Load Balancer können Sie logbasierte Messwerte mithilfe von Ressourcenlogs (resource.type="http_load_balancer") exportieren. Die erstellten Messwerte basieren auf der Ressource „Application Load Balancer-Regel (logbasierte Messwerte)“ (l7_lb_rule), die unter Cloud Monitoring-Dashboards statt unter der https_lb_rule-Ressource verfügbar ist.

Was wird protokolliert?

Die Logeinträge des externen Application Load Balancers enthalten Informationen, die für das Monitoring und die Fehlerbehebung bei Ihrem HTTP(S)-Traffic nützlich sind. Logeinträge enthalten Pflichtfelder. Dies sind die Standardfelder jedes Logdatensatzes.

Feld Feldformat Feldtyp: Erforderlich oder optional Beschreibung
Schweregrad
insertID
logName
LogEntry Erforderlich Die allgemeinen Felder, wie in einem Logeintrag beschrieben.
timestamp string (Timestamp format) Optional Der Zeitpunkt, zu dem das GFE der ersten Schicht die Anfrage empfängt.
httpRequest HttpRequest Erforderlich Ein gängiges Protokoll für Logging von HTTP-Anfragen

HttpRequest.protocol ist nicht für resource.type="http_load_balancer" ausgefüllt

.
resource MonitoredResource Erforderlich

Die MonitoredResource ist der Ressourcentyp, der einem Logeintrag zugeordnet ist.

Der MonitoredResourceDescriptor beschreibt das Schema eines MonitoredResource-Objekts mithilfe eines Typnamens und einer Reihe von Labels. Weitere Informationen finden Sie unter Ressourcenlabels.

jsonPayload object (Struct format) Erforderlich Nutzlast des Logeintrags, die als JSON-Objekt ausgedrückt wird. Das JSON-Objekt enthält die folgenden Felder:
  • statusDetails
  • backendTargetProjectNumber
  • overrideResponseCode
  • errorService
  • errorBackendStatusDetails
  • authzPolicyInfo
  • loadBalancingScheme
String Erforderlich Das Feld statusDetails enthält einen String, der erklärt, warum der Load-Balancer den entsprechenden HTTP-Status angegeben hat. Weitere Informationen zu diesen Logstrings finden Sie unter HTTP-Erfolgsmeldungen für statusDetails und HTTP-Fehlermeldungen für statusDetails.
String Erforderlich Das Feld backendTargetProjectNumber enthält die Projektnummer, in der das Backend-Ziel – Backend-Dienst oder Backend-Bucket – erstellt wurde. Dieses Feld hat das folgende Format: "projects/PROJECT_NUMBER". Diese Informationen sind nur für globale externe Application Load Balancer verfügbar, die benutzerdefinierte Fehlerantworten verwenden.
Ganzzahl Erforderlich overrideResponseCode enthält den Antwortcode für die Überschreibung, der auf die an den Client gesendete Antwort angewendet wird. Diese Informationen sind nur für globale externe Application Load Balancer verfügbar, die benutzerdefinierte Fehlerantworten verwenden.
String Erforderlich Das Feld errorService enthält den Backend-Dienst, der die benutzerdefinierte Fehlerantwort bereitgestellt hat. Diese Informationen sind nur für globale externe Application Load Balancer verfügbar, die benutzerdefinierte Fehlerantworten verwenden.
String Erforderlich Das Feld errorBackendStatusDetails enthält die statusDetails der endgültigen Antwort, die an den Client gesendet wurde. Diese Informationen sind nur für globale externe Application Load Balancer verfügbar, die benutzerdefinierte Fehlerantworten verwenden.
AuthzPolicyInfo Erforderlich Im Feld authzPolicyInfo werden Informationen zum Ergebnis der Autorisierungsrichtlinie gespeichert. Diese Informationen sind nur für globale externe Application Load Balancer verfügbar, für die die Autorisierungsrichtlinie aktiviert ist. Weitere Informationen finden Sie unter Was wird für Autorisierungsrichtlinien protokolliert?
String Optional Das Feld loadBalancingScheme wird nur für Kunden ausgefüllt, die die Migrationsfunktion für den klassischen Application Load Balancer verwenden. Dieses Feld enthält einen String, der beschreibt, welches Load Balancing-Schema für die Weiterleitung der Anfrage verwendet wurde. Die möglichen Werte sind EXTERNAL oder EXTERNAL_MANAGED.

Ressourcenlabels

In der folgenden Tabelle sind die Ressourcenlabels für resource.type="http_load_balancer" aufgeführt.

Feld Typ Beschreibung
backend_service_name String Der Name des Backend-Dienstes.
forwarding_rule_name String Der Name des Weiterleitungsregelobjekts.
project_id String Die Kennung des Google Cloud-Projekts, das dieser Ressource zugeordnet ist.
target_proxy_name String Der Name des Ziel-Proxy-Objekts, auf das die Weiterleitungsregel verweist.
url_map_name String Der Name des URL-Zuordnungsobjekts, das für die Auswahl eines Backend-Dienstes konfiguriert ist.
zone String Die Zone, in der der Load-Balancer ausgeführt wird. Die Zone ist global.

statusDetails-HTTP-Erfolgsmeldungen

statusDetails (erfolgreich) Bedeutung Häufige zugehörige Antwortcodes
byte_range_caching Die HTTP-Anfrage wurde mit Bytebereich-Caching von Cloud CDN gestellt. Jeder cachefähige Antwortcode ist möglich.
response_from_cache Die HTTP-Anfrage kam vom Cloud CDN-Cache. Jeder cachefähige Antwortcode ist möglich.
response_from_cache_validated Der Rückgabecode wurde von einem im Cloud CDN-Cache gespeicherten Eintrag festgelegt, der von einem Back-End bestätigt wurde. Jeder cachefähige Antwortcode ist möglich.
response_sent_by_backend Die HTTP-Anfrage wurde erfolgreich an das Backend weitergeleitet und die Antwort wurde vom Backend zurückgegeben. Der HTTP-Antwortcode wird von der auf dem Backend ausgeführten Software festgelegt.

statusDetails-HTTP-Fehlermeldungen

statusDetails (Fehler) Bedeutung Häufige zugehörige Antwortcodes
aborted_request_due_to_backend_early_response Eine Anfrage mit Textkörper wurde abgebrochen, weil das Back-End eine frühe Antwort mit Fehlercode geschickt hat. Die Antwort wurde an den Client weitergeleitet. Die Anfrage wurde beendet. 4XX oder 5XX
backend_connection_closed_after_partial_response_sent Die Back-End-Verbindung wurde unerwartet geschlossen, nachdem eine Teilantwort an den Client geschickt wurde.

Der HTTP-Antwortcode wird von der auf dem Back-End ausgeführten Software festgelegt. Der HTTP-Antwortcode 0 (null) bedeutet, dass das Back-End unvollständige HTTP-Header gesendet hat.

Der HTTP-Antwortcode ist 101, wenn die HTTP(S)-Verbindung auf eine WebSocket-Verbindung aktualisiert wurde.

backend_connection_closed_before_data_sent_to_client Das Back-End hat die Verbindung mit dem Load-Balancer unerwartet geschlossen, bevor die Antwort an den Client weitergeleitet wurde.

502, 503

Der HTTP-Antwortcode ist 101, wenn die HTTP(S)-Verbindung auf eine WebSocket-Verbindung aktualisiert wurde.

backend_early_response_with_non_error_status Das Back-End hat eine fehlerfreie Antwort (1XX oder 2XX) auf eine Anfrage gesendet, bevor der gesamte Anfragetextkörper empfangen wurde. 502, 503
backend_interim_response_not_supported Das Back-End hat eine vorläufige 1XX-Antwort auf die Anfrage in einem Kontext gesendet, in dem vorläufige Antworten nicht unterstützt werden.

502, 503

backend_response_corrupted Der HTTP-Antworttextkörper vom Back-End hatte eine ungültige, aufgeteilte Transferverschlüsselung oder war anderweitig fehlerhaft. Abhängig von der Fehlerart ist jeder Antwortcode möglich. Oft 502, 503.
backend_response_headers_too_long Die vom Back-End gesendeten HTTP-Antwortheader überschritten das zulässige Limit. Weitere Informationen finden Sie im Abschnitt Header-Größe für externe Application Load Balancer. 502, 503
backend_timeout

Es gab eine Zeitüberschreitung beim Back-End, während eine Antwort erstellt wurde.

Für eine WebSocket-Verbindung:

  • Beim globalen externen Application Load Balancer wird ein Fehler generiert, wenn das GFE die WebSocket-Verbindung im inaktiven Zustand schließt, nachdem das Zeitüberschreitung des Backend-Diensts abgelaufen ist.
  • Beim klassischen Application Load Balancer wird ein Fehler generiert, wenn das GFE die WebSocket-Verbindung entweder im inaktiven oder aktiven Zustand schließt, nachdem das Zeitüberschreitung des Backend-Dienstes abgelaufen ist.

502, 503

Der HTTP-Antwortcode ist 101, wenn die HTTP(S)-Verbindung auf eine WebSocket-Verbindung aktualisiert wurde.

banned_by_security_policy Die Anfrage wurde durch eine preisbasierte Verbotsregel in Google Cloud Armor gesperrt. 429
body_not_allowed Der Client schickt eine HTTP-Anfrage mit einem Text, aber die HTTP-Methode lässt dies nicht zu. 400
byte_range_caching_aborted Der Load-Balancer hat zuvor eine Antwort erhalten, die angab, dass die Ressource im Cache speicherbar war und Bytebereiche unterstützte. Cloud CDN hat jedoch eine inkonsistente Antwort erhalten (z. B. mit einem anderen Antwortcode als dem erwarteten „206 Partial Content“). Dies ist der Versuch, eine Cache-Füllung mit einer Bytebereichsanfrage auszuführen. Daher hat der Load-Balancer die Antwort an den Client abgebrochen. 2XX
byte_range_caching_forwarded_backend_response Der Load-Balancer hat zuvor eine Antwort erhalten, die angab, dass die Ressource im Cache speicherbar war und Bytebereiche unterstützte. Cloud CDN hat jedoch eine inkonsistente Antwort erhalten (z. B. mit einem anderen Antwortcode als dem erwarteten „206 Partial Content“). Dies ist der Versuch, eine Cache-Füllung mit einer Bytebereichsanfrage auszuführen. Der Load-Balancer hat dann die inkonsistente Antwort an den Client weitergeleitet.

Wird vom Backend zurückgegeben - jeder Antwortcode ist möglich.

byte_range_caching_retrieval_abandoned Der Client hat eine von Cloud CDN initiierte Bytebereichs- oder Validierungsanfrage abgebrochen.

Wird vom Backend zurückgegeben - jeder Antwortcode ist möglich.

byte_range_caching_retrieval_from_backend_failed_after_partial_response Bei einer von Cloud CDN initiierten Bytebereichs- oder Validierungsanfrage wurde ein Fehler festgestellt. Ausführliche Informationen zum Back-End-Status finden Sie im entsprechenden Cloud Logging-Logeintrag für die von Cloud CDN initiierte Anfrage. 2XX
cache_lookup_failed_after_partial_response Der Load-Balancer hat aufgrund eines internen Fehlers keine vollständige Antwort aus dem Cloud CDN-Cache zurückgegeben. 2XX
cache_lookup_timeout_after_partial_response Es ist eine Zeitüberschreitung für den Cloud CDN-Cache aufgetreten, da der Client den Inhalt nicht rechtzeitig abgerufen hat. 2XX
client_disconnected_after_partial_response Die Verbindung mit dem Client wurde unterbrochen, nachdem der Load-Balancer eine Teilantwort gesendet hat.

Wird vom Backend zurückgegeben - jeder Antwortcode ist möglich.

Der HTTP-Antwortcode ist 101, wenn die HTTP(S)-Verbindung auf eine WebSocket-Verbindung aktualisiert wurde.

client_disconnected_before_any_response Die Verbindung mit dem Client wurde unterbrochen, bevor der Load-Balancer eine Antwort gesendet hat.

0

Der HTTP-Antwortcode ist 101, wenn die HTTP(S)-Verbindung auf eine WebSocket-Verbindung aktualisiert wurde.

client_timed_out Das Google Front End (GFE) hat die Clientverbindung aufgrund fehlenden Fortschritts während der Weiterleitung der Anfrage oder Antwort unterbrochen. 0 oder 408
client_cert_invalid_rsa_key_size Ein Klientenblatt oder Zwischenzertifikat hat eine ungültige RSA-Schlüsselgröße. Weitere Informationen finden Sie unter Protokollierte Fehler für geschlossene Verbindungen. 0
client_cert_unsupported_elliptic_curve_key Ein Client- oder ein Zwischenzertifikat verwendet eine nicht unterstützte Elliptische-Kurve. Weitere Informationen finden Sie unter Protokollierte Fehler für geschlossene Verbindungen. 0
client_cert_unsupported_key_algorithm Ein Client- oder Zwischenzertifikat verwendet einen Nicht-RSA- oder Nicht-ECDSA-Algorithmus. Weitere Informationen finden Sie unter Protokollierte Fehler für geschlossene Verbindungen. 0
client_cert_pki_too_large Die für die Validierung zu verwendende PKI hat mehr als drei Zwischenzertifikate, die dieselben Subject- und Subject Public-Key-Informationen haben. Weitere Informationen finden Sie unter Protokollierte Fehler für geschlossene Verbindungen. 0
client_cert_chain_max_name_constraints_exceeded Ein Zwischenzertifikat zur Validierung hatte mehr als zehn Namenseinschränkungen. Weitere Informationen finden Sie unter Protokollierte Fehler für geschlossene Verbindungen. 0
client_cert_chain_invalid_eku Entweder hat das Clientzertifikat oder sein Aussteller keine Extended Key Usage (EKU), die clientAuth enthält. Weitere Informationen finden Sie unter Protokollierte Fehler für geschlossene Verbindungen. 0
client_cert_validation_timed_out Zeitlimit beim Validieren der Zertifikatskette überschritten. Weitere Informationen finden Sie unter Protokollierte Fehler für geschlossene Verbindungen. 0
client_cert_validation_search_limit_exceeded Das Limit für die Tiefe oder Iteration wurde beim Prüfen der Zertifikatskette erreicht. Weitere Informationen finden Sie unter Protokollierte Fehler für geschlossene Verbindungen. 0
client_cert_validation_not_performed Sie haben mTLS konfiguriert, ohne eine TrustConfig einzurichten. Weitere Informationen finden Sie unter Protokollierte Fehler für geschlossene Verbindungen. 0
client_cert_not_provided Der Client hat während des Handshakes nicht das angeforderte Zertifikat bereitgestellt. Weitere Informationen finden Sie unter Protokollierte Fehler für geschlossene Verbindungen. 0
client_cert_validation_failed Die Validierung des Clientzertifikats mit der TrustConfig schlägt fehl, wenn Hash-Algorithmen wie MD4, MD5 und SHA-1 verwendet werden. Weitere Informationen finden Sie unter Protokollierte Fehler für geschlossene Verbindungen. 0
config_not_found

Beim Load Balancer fehlt die Projektkonfiguration. Das kann sporadisch auftreten, insbesondere nach Konfigurationsänderungen, durch die eine neue Ressource hinzugefügt wird.

Da es zwei Proxyebenen gibt, kann es manchmal vorkommen, dass das GFE der ersten Ebene das GFE der zweiten Ebene nicht erreicht. Das kann an einem internen Fehler liegen, z. B. an einem laufenden Roll-out, einer Überlastung des Load Balancers oder an vorübergehenden Konfigurationsproblemen.

404, 502, 503
direct_response Der Load-Balancer hat diese Anfrage überschrieben und eine feste Antwort zurückgegeben. Je nach Art des Problems wird möglicherweise ein HTTP-Antwortcode angezeigt. Der HTTP-Antwortcode 410 bedeutet beispielsweise, dass das Backend aufgrund von Zahlungsrückstand nicht verfügbar ist.
denied_by_security_policy Der Load-Balancer hat diese Anfrage aufgrund einer Google Cloud Armor-Sicherheitsrichtlinie abgelehnt. In der Sicherheitsrichtlinie konfiguriert
error_uncompressing_gzipped_body Es gab beim Dekomprimieren einer mit gzip komprimierten HTTP-Antwort ein Problem. 502, 503
failed_to_connect_to_backend Der Load-Balancer konnte keine Verbindung mit dem Back-End herstellen. Dies gilt auch für Zeitüberschreitungen während der Verbindungsphase. 502, 503
failed_to_pick_backend Der Load-Balancer konnte kein fehlerfreies Back-End für die Verarbeitung der Anfrage finden. 502, 503
failed_to_negotiate_alpn Der Load-Balancer und das Back-End konnten kein Protokoll auf Anwendungsebene (z. B. HTTP/2) aushandeln, um über TLS miteinander zu kommunizieren. 502, 503
headers_too_long Die Anfrage-Header waren größer als zugelassen. 413
http_version_not_supported HTTP-Version wird nicht unterstützt. Aktuell werden nur HTTP 0.9, 1.0, 1.1 und 2.0 unterstützt. 400
internal_error Interner Fehler beim Load-Balancer. Normalerweise stellt dies einen vorübergehenden Fehler in der Load-Balancer-Infrastruktur dar. Wiederholen Sie Ihre Abfrage. 4XX
invalid_external_origin_endpoint Die Konfiguration für das externe Back-End ist ungültig. Prüfen Sie die Internet-NEG-Konfiguration und achten Sie darauf, dass sie eine gültige FQDN/IP-Adresse und einen gültigen Port angibt. 4XX
invalid_request_headers

Die von einem Client empfangenen HTTP-Anfrageheader enthalten mindestens ein Zeichen, das gemäß einer anwendbaren HTTP-Spezifikation nicht zulässig ist.

Beispielsweise sind Header-Feldnamen mit einem doppelten Anführungszeichen (") oder Zeichen außerhalb des standardmäßigen ASCII-Bereichs (d. h. alle Byte >= 0x80) ungültig.

Weitere Informationen finden Sie unter:

400
invalid_http2_client_header_format Die HTTP/2-Header eines Clients sind ungültig. Weitere Informationen finden Sie unter invalid_request_headers. 400
invalid_http2_client_request_path

Der HTTP/2-Anfragepfad eines Clients enthält mindestens ein Zeichen, das gemäß der URI-Spezifikation nicht zulässig ist.

Weitere Informationen finden Sie unter 3.3. „Path“ (Pfad) in RFC 3986

400
multiple_iap_policies Mehrere Richtlinien für Identity-Aware Proxy (IAP) können nicht kombiniert werden. Wenn Sie eine IAP-Richtlinie an einen Back-End-Dienst und eine weitere Richtlinie an ein serverloses Objekt angehängt haben, entfernen Sie eine der Richtlinien und versuchen Sie es noch einmal. Zu den serverlosen Objekten gehören App Engine, Cloud Run und Cloud Run Functions. 500
malformed_chunked_body Das Chunked Encoding des Anfragetextkörpers wurde nicht richtig durchgeführt. 411
request_loop_detected Der Load-Balancer hat eine Anfrageschleife erkannt. Diese Schleife kann durch eine fehlerhafte Konfiguration verursacht werden, bei der das Back-End die Anfrage an den Load-Balancer zurückgesendet hat. 502, 503
required_body_but_no_content_length Die HTTP-Anfrage benötigt einen Textkörper, aber die Anfrage-Header hatten keine Inhaltslänge oder einen transferverschlüsselten, aufgeteilten Header. 400 oder 403
secure_url_rejected Eine Anfrage mit einer https:// URL wurde über eine reine Textverbindung mit HTTP/1.1 empfangen. 400
ssl_certificate_san_verification_failed Der Load Balancer konnte keinen alternativen Antragstellernamen (Subject Alternative Name, SAN) im SSL-Zertifikat finden, das vom Back-End bereitgestellt wird und mit dem konfigurierten Hostnamen übereinstimmt. 502, 503
ssl_certificate_chain_verification_failed Die Überprüfung des vom Back-End bereitgestellten SSL-Zertifikats ist fehlgeschlagen. 502, 503
throttled_by_security_policy Die Anfrage wurde durch eine Drosselungsregel von Google Cloud Armor blockiert. 429
unsupported_method Der Client hat eine nicht unterstützte HTTP-Anfragemethode geschickt. 400
unsupported_100_continue Die Clientanfrage enthielt den Header „Expected: 100-continue“ für ein Protokoll, das dies nicht unterstützt. 400
upgrade_header_rejected Die Client-HTTP-Anfrage enthielt den Upgrade-Header und wurde abgelehnt. 400
websocket_closed Die WebSocket-Verbindung wurde geschlossen. 101
websocket_handshake_failed Der WebSocket-Handshake ist fehlgeschlagen. Abhängig vom Handshake-Fehler ist jeder Antwortcode möglich.
request_body_too_large Der HTTP-Anfragetext hat den vom Back-End unterstützten Maximalwert überschritten. Gilt nicht für VM-Back-Ends. 413
handled_by_identity_aware_proxy Diese Antwort wurde von Identity-Aware Proxy während der Identitätsüberprüfung des Clients generiert, bevor der Zugriff zugelassen wurde.

200, 302, 400, 401, 403, 500, 502, 503

429 (durch IAP gedrosselt)

serverless_neg_routing_failed Die serverlose NEG-Anfrage kann nicht weitergeleitet werden. Dies kann passieren, wenn die in der NEG angegebene Region nicht erreicht oder der Ressourcenname (z. B. der Cloud Run Functions-Name) nicht gefunden werden kann. 404, 502, 503
fault_filter_abort Dieser Fehler kann auftreten, wenn der Kunde einen Fehlerfilter konfiguriert hat und der Fehlerfilter für die jeweilige Anfrage ausgelöst wurde. Der Wert muss zwischen 200 und 599 liegen.

Logs für die Validierung des mTLS-Clientzertifikats ansehen

So rufen Sie die gespeicherten Fehler für geschlossene Verbindungen während der Validierung des Clientzertifikats für die gegenseitige TLS-Authentifizierung auf:

Console-Abfrage

  1. Rufen Sie in der Google Cloud Console die Seite Logs-Explorer auf.

    Zum Log-Explorer

  2. Klicken Sie auf den Umschalter Abfrage anzeigen.

  3. Alternativ können Sie Folgendes in das Abfragefeld einfügen. Ersetzen Sie FORWARDING_RULE_NAME durch den Namen der Weiterleitungsregel.

    jsonPayload.statusDetails=~"client_cert"
    jsonPayload.@type="type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
    resource.labels.forwarding_rule_name=FORWARDING_RULE_NAME
    
  4. Klicken Sie auf Abfrage ausführen.

Logs für Autorisierungsanfragen

Das authz_info-Objekt in der JSON-Nutzlast des Load Balancer-Logeintrags enthält Informationen zu Autorisierungsrichtlinien. Sie können logbasierte Messwerte für Traffic konfigurieren, der durch diese Richtlinien zugelassen oder abgelehnt wird. Weitere Informationen zu den Protokolldetails für Autorisierungsrichtlinien

Feld Typ Beschreibung
authz_info.policies[] Objekt Die Liste der Richtlinien, die mit der Anfrage übereinstimmen.
authz_info.policies[].name String Der Name der Autorisierungsrichtlinie, der mit der Anfrage übereinstimmt.
Der Name ist aus den folgenden Gründen leer:
  • Es gibt keine ALLOW-Richtlinie, die der Anfrage entspricht, und die Anfrage wird abgelehnt.
  • Es gibt keine DENY-Richtlinie, die mit der Anfrage übereinstimmt, und die Anfrage wird zugelassen.
authz_info.policies[].result enum Das Ergebnis kann ALLOWED oder DENIED sein:
authz_info.policies[].details String Die Details umfassen Folgendes:
  • allowed_as_no_deny_policies_matched_request
  • denied_as_no_allow_policies_matched_request
  • denied_by_authz_extension
  • denied_by_cloud_iap
authz_info.overall_result enum Das Ergebnis kann ALLOWED oder DENIED sein:

Logging für Back-End-Buckets

Logging wird automatisch für Load-Balancer mit Back-End-Buckets aktiviert. Sie können das Logging für Back-End-Buckets nicht ändern oder deaktivieren.

Logging für Google Cloud Armor

Die Tabelle für statusDetail-HTTP-Fehlermeldungen enthält einige Nachrichten, die für Google Cloud Armor gelten. Weitere Informationen zu den Google Cloud Armor-Logs finden Sie unter Anfrage-Logging verwenden.

Logging für Bereitstellungen freigegebener VPCs

Logs und Messwerte des Anwendungs-Load-Balancers werden normalerweise in das Projekt exportiert, das die Weiterleitungsregel hat. Daher haben Dienstadministratoren – Inhaber oder Nutzer von Projekten, in denen der Backend-Dienst erstellt wird – standardmäßig keinen Zugriff auf die Logs und Messwerte des Load Balancers. Sie können IAM-Rollen verwenden, um Dienstadministratoren diese Berechtigungen zu erteilen. Weitere Informationen zu den verfügbaren IAM-Rollen und den Schritten zum Bereitstellen eines Zugriffs finden Sie unter Zugriff auf Monitoring gewähren.

Mit den Logs interagieren

Sie können mithilfe der Cloud Logging API die externen Logs für Application Load Balancer nutzen. Die Logging API bietet Möglichkeiten zum interaktiven Filtern von Logs, für die bestimmte Felder festgelegt sind. Übereinstimmende Logs werden nach Cloud Logging, Cloud Storage, BigQuery oder Pub/Sub exportiert. Weitere Informationen zur Logging API finden Sie unter Cloud Logging API.

Monitoring

Der Load Balancer exportiert auch Monitoring-Daten nach Cloud Monitoring.

Sie können Monitoring-Messwerte für Folgendes verwenden:

  • Bewertung der Konfiguration, Nutzung und Leistung eines Load-Balancers
  • Fehlerbehebung
  • Verbesserung der Ressourcenauslastung und Nutzerfreundlichkeit

Zusätzlich zu den vordefinierten Dashboards in Cloud Monitoring können Sie über die Cloud Monitoring API benutzerdefinierte Dashboards erstellen, Warnungen einrichten und Messwerte abrufen.

Vordefinierte Cloud Monitoring-Dashboards aufrufen

Cloud Monitoring bietet vordefinierte Dashboards zum Monitoring Ihrer Load-Balancer. Diese Dashboards werden von Cloud Monitoring automatisch ausgefüllt.

Führen Sie die folgenden Schritte aus, um auf die vordefinierten Dashboards zuzugreifen:

  1. Rufen Sie Monitoring in der Google Cloud Console auf.

    Zu Monitoring

  2. Klicken Sie im Navigationsbereich von Monitoring auf Dashboards.

  3. Klicken Sie unter Kategorien auf GCP.

    • Wählen Sie das Dashboard mit dem Namen Google Cloud-Load-Balancer aus, um eine Liste der Dashboards für Ihre Google Cloud-Load-Balancer aufzurufen. Wenn Sie das Dashboard eines bestimmten Load-Balancers anzeigen möchten, suchen Sie den Load-Balancer in der Liste und klicken Sie auf den Namen.

    • Wählen Sie das Dashboard mit dem Namen Externer Application Load Balancer aus, um nur die vordefinierten Dashboards für Ihre externen Application Load Balancer aufzurufen. Auf dieser Seite wird ein Dashboard mit den 5XX-Antwortverhältnissen und der Backend-Latenz für alle externen Application Load Balancer in Ihrem Projekt angezeigt. Außerdem sehen Sie eine Liste von Dashboards für alle externen Application Load Balancer in Ihrem Projekt.

      Sie können zum Dashboard des einzelnen Load-Balancers klicken. Jedes Dashboard enthält Folgendes:

      • Vorab ausgefüllte Grafiken mit Aufschlüsselungen der Antworten nach Antwortcodeklasse (5XX, 4XX, 3XX, 2XX)
      • Gesamtlatenz
      • Backend-Latenz
      • Frontend-RTT
      • Anzahl der Anfragen
      • Link zu den Logs für den Load-Balancer
  4. Wenn Sie Dashboards für Drittanbieterdienste aufrufen möchten, kehren Sie zur Seite Dashboards zurück. Klicken Sie unter Kategorien auf Sonstige.

    • Wenn Sie ein bestimmtes Dashboard eines Drittanbieterdienstes ansehen möchten, suchen Sie es in der Liste und klicken Sie auf den Namen.

Benachrichtigungsrichtlinien definieren


Klicken Sie auf Anleitung, um eine detaillierte Anleitung für diese Aufgabe direkt in der Google Cloud Console aufzurufen.

Anleitung


Sie können Benachrichtigungsrichtlinien erstellen, um Messwerte zu beobachten und sich informieren zu lassen, wenn diese gegen eine Bedingung verstoßen.

  1. Rufen Sie in der Google Cloud Console die Seite  Benachrichtigungen auf:

    Zu Benachrichtigungen

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift Monitoring ist.

  2. Wenn Sie keine Benachrichtigungskanäle erstellt haben und Benachrichtigungen erhalten möchten, klicken Sie auf Benachrichtigungskanäle bearbeiten und fügen Sie Benachrichtigungskanäle hinzu. Kehren Sie nach dem Hinzufügen der Kanäle zur Seite Benachrichtigungen zurück.
  3. Klicken Sie auf der Seite Benachrichtigungen auf Richtlinie erstellen.
  4. Maximieren Sie zum Auswählen des Messwerts das Menü Messwert auswählen und gehen Sie dann so vor:
    1. Um das Menü auf relevante Einträge zu beschränken, geben Sie in die Filterleiste Global External Application Load Balancer Rule ein. Wenn nach dem Filtern des Menüs keine Ergebnisse angezeigt werden, deaktivieren Sie die Option Nur aktive Ressourcen und Messwerte anzeigen.
    2. Wählen Sie als Ressourcentyp die Option Globale externe Application Load Balancer-Regel aus.
    3. Wählen Sie eine Messwertkategorie und einen Messwert aus und klicken Sie dann auf Übernehmen.
  5. Klicken Sie auf Weiter.
  6. Die Einstellungen auf der Seite Benachrichtigungstrigger konfigurieren bestimmen, wann die Benachrichtigung ausgelöst wird. Wählen Sie einen Bedingungstyp aus und geben Sie ggf. einen Schwellenwert an. Weitere Informationen finden Sie unter Benachrichtigungsrichtlinien mit Messwertschwellen erstellen.
  7. Klicken Sie auf Weiter.
  8. Optional: Klicken Sie auf Benachrichtigungskanäle, um Benachrichtigungen zu Ihrer Benachrichtigungsrichtlinie hinzuzufügen. Wählen Sie im Dialogfeld einen oder mehrere Benachrichtigungskanäle aus dem Menü aus und klicken Sie dann auf OK.
  9. Optional: Aktualisieren Sie die Dauer bis zur automatischen Schließung von Vorfällen. Dieses Feld bestimmt, wann Monitoring Vorfälle ohne Messwertdaten schließt.
  10. Optional: Klicken Sie auf Dokumentation und geben Sie alle Informationen ein, die in einer Benachrichtigung angezeigt werden sollen.
  11. Klicken Sie auf Name der Benachrichtigung und geben Sie einen Namen für die Benachrichtigungsrichtlinie ein.
  12. Klicken Sie auf Richtlinie erstellen.
Weitere Informationen finden Sie unter Benachrichtigungsrichtlinien.

Benutzerdefinierte Cloud Monitoring-Dashboards definieren

Sie können benutzerdefinierte Cloud Monitoring-Dashboards für die Messwerte des Load Balancers erstellen:

  1. Rufen Sie in der Google Cloud Console die Seite Monitoring auf.

    Zu Monitoring

  2. Wählen Sie Dashboards > Dashboard erstellen aus.

  3. Klicken Sie auf Diagramm hinzufügen und geben Sie dem Diagramm einen Namen.

  4. Wählen Sie einen Ressourcentyp und einen Messwerttyp aus, um die anzuzeigende Zeitachse zu identifizieren:

    1. Klicken Sie im Abschnitt Ressource und Messwert auf das Diagramm und wählen Sie dann im Abschnitt Messwert auswählen eine der verfügbaren Optionen aus:
      • Wählen Sie für einen globalen externen Application Load Balancer den Ressourcentyp Globale externe Application Load Balancer-Regel aus.
    2. Klicken Sie auf Anwenden.
  5. Klicken Sie zum Angeben von Monitoring-Filtern auf Filter > Filter hinzufügen.

  6. Klicken Sie auf Speichern.

Häufigkeit und Speicherung von Messwertberichten

Messwerte für die externen Application Load Balancer werden in einminütigen Abständen zu Cloud Monitoring exportiert. Monitoring-Daten werden sechs (6) Wochen beibehalten.

Im Dashboard werden Datenanalysen in Standardintervallen von einer Stunde, sechs Stunden, einem Tag, einer Woche und sechs Wochen bereitgestellt. Sie können manuell Analysen in jedem beliebigen Intervall von sechs Wochen bis zu einer Minute anfordern.

Messwerte überwachen

Sie können die folgenden Messwerte für externe Application Load Balancer überwachen.

Die folgenden Messwerte für globale externe Application Load Balancer werden an Cloud Monitoring gemeldet. Diese Messwerte werden mit dem Präfix loadbalancing.googleapis.com/ vorangestellt:

Messwert Name Beschreibung
Anzahl der Anfragen https/request_count Die Anzahl der Anfragen, die vom externen Application Load Balancer verarbeitet wurden
Anzahl der Anfragebyte https/request_bytes_count Die Anzahl der Byte, die als Anfragen von Clients an den externen Application Load Balancer gesendet wurden
Anzahl der Antwortbyte https/response_bytes_count Die Anzahl der Byte, die als Antworten vom externen Application Load Balancer an Clients gesendet wurden
Gesamtlatenzen https/total_latencies

Eine Verteilung der Latenz. Die Latenz ist die Zeit zwischen dem ersten Byte der empfangenen Anfrage und dem letzten Byte der vom GFE gesendeten Antwort.

Die Gesamtlatenzen werden nach Anfrage/Antwort gemessen. Pausen zwischen Anfragen an dieselbe Verbindung mit Connection: keep-alive wirken sich daher nicht auf die Messung aus. In Cloud Monitoring-Ansichten ist die Messung normalerweise auf das 95. Perzentil reduziert.

Bei WebSocket-Verbindungen bezieht sich dieses Feld auf die gesamte Zeitdauer der Verbindung.

Beispiel: Ein Load-Balancer erhält aus dem Vereinigten Königreich eine Anfrage pro Sekunde mit jeweils 100 ms Latenz und aus den USA 9 Anfragen pro Sekunde mit jeweils 50 ms Latenz. In einer bestimmten Minute gingen 60 Anfragen aus dem Vereinigten Königreich und 540 Anfragen aus den USA ein. In den Monitoring-Messwerten wird die Verteilung über alle Dimensionen beibehalten. Sie können folgende Informationen anfordern:

  • Medianwert der Gesamtlatenz (300/600) – 50 ms
  • Medianwert der Latenz Vereinigtes Königreich (30/60) – 100 ms
  • 95. Perzentil der Gesamtlatenz (570/600) – 100 ms
Frontend RTT * https/frontend_tcp_rtt Eine Verteilung der ausgeglichenen Umlaufzeit (geglättete Umlaufzeit), die für jede Verbindung zwischen dem Client und dem GFE gemessen wurde (wird vom TCP-Stack des GFE gemessen). Die ausgeglichene RTT ist ein Algorithmus, der Varianten und Anomalien behandelt, die bei RTT-Messungen auftreten können.
Backend-Latenzen * https/backend_latencies

Eine Verteilung der Latenz, gemessen ab dem Zeitpunkt, an dem das erste Byte der Anfrage vom GFE an das Backend gesendet wurde, bis das GFE das letzte Byte der Antwort vom Backend erhalten hat.

Bei WebSocket-Verbindungen gelten die Backend-Latenzen für die gesamte Dauer der WebSocket-Sitzung.

Anteil der Antwortcodeklasse Anteil der gesamten Antworten des externen Application Load Balancers in jeder Antwortcodeklasse (2XX, 4XX, …). In Cloud Monitoring ist dieser Wert nur auf Standard-Dashboards verfügbar. Er ist nicht für benutzerdefinierte Dashboards verfügbar. Sie können die API verwenden, um Benachrichtigungen dafür festzulegen.
Anzahl der Backend-Anfragen https/backend_request_count Die Anzahl der Anfragen, die vom externen Application Load Balancer an die Back-Ends gesendet wurden.
Anzahl der Backend-Anfragebyte https/backend_request_bytes_count Die Anzahl der Byte, die als Anfragen vom externen Application Load Balancer an die Back-Ends gesendet wurden.
Anzahl der Backend-Antwortbyte https/backend_response_bytes_count Die Anzahl der Byte, die als Antworten von den Back-Ends (einschließlich Cache) an den externen Application Load Balancer gesendet wurden.

* Die Summe der Frontend-RTT und Backend-Latenzen ist möglicherweise höher als die Gesamtlatenzen. Dies liegt daran, dass die RTT über den Socket vom GFE zum Client bei der Bestätigung der HTTP-Antwort abgefragt wird, für einige Messwerte jedoch Kernel-Berichte herangezogen werden. Es ist nicht sicher, dass der Kernel über einen RTT-Messwert für die jeweilige HTTP-Antwort verfügt. Das Endergebnis ist ein geglätteter RTT-Wert, der auch von vorherigen HTTP-Antworten, SYN/ACKs (Abgleichen bestätigt) und SSL-Handshakes, die sich nicht auf die tatsächlichen Zeiten von aktuellen HTTP-Anfragen auswirken, beeinflusst wird.

Wenn Sie WebSocket-Verbindungen überwachen möchten, erstellen Sie einen speziellen Backend-Dienst für WebSockets.

Dimensionen für Messwerte filtern

Sie können Filter für Messwerte für externe Application Load Balancer anwenden.

Die Messwerte werden für jeden klassischen Application Load Balancer und jeden globalen externen Application Load Balancer zusammengefasst. Sie können zusammengefasste Messwerte nach den folgenden Dimensionen für resource.type="http_load_balancer" oder resource.type="https_lb_rule" filtern. Hinweis: Nicht alle Dimensionen sind für alle Messwerte verfügbar.

Attribut Beschreibung
backend_scope Der Google Cloud-Bereich (Region oder Zone) der Back-End-Dienst-Instanzgruppe, die die Verbindung bereitgestellt hat.

Wenn keine Instanzgruppe verfügbar war oder die Anfrage von einer anderen Entität verarbeitet wurde, wird anstelle der Region oder Zone der Back-End-Dienst-Instanzgruppe einer der folgenden Werte angezeigt:

  • FRONTEND_5XX: Es ist ein interner Fehler aufgetreten, bevor ein Back-End vom GFE ausgewählt werden konnte. Das GFE hat 5XX an den Client zurückgegeben.
  • INVALID_BACKEND: Das GFE konnte kein fehlerfreies Back-End finden, um diesem die Anfrage zuzuweisen, und hat deshalb eine 5XX-Antwort an den Sender der Anfrage zurückgegeben.
  • NO_BACKEND_SELECTED: Ein Fehler oder eine andere Unterbrechung ist aufgetreten, bevor ein Back-End ausgewählt werden konnte oder eine URL-Weiterleitung erfolgt ist.
  • MULTIPLE_BACKENDS: Die Anfrage wurde von möglicherweise mehreren Back-Ends bereitgestellt. Dies kann passieren, wenn Cloud CDN die Anfrage teilweise aus seinem Cache bereitgestellt und außerdem eine oder mehrere Bytebereichsanfragen an das Back-End gesendet hat. Mit der Aufschlüsselung von backend_scope können Sie jede Anfrage vom Load Balancer zum Back-End visualisieren.

When this breakdown is chosen, the charts show backend metrics (load balancer-to-backends), not frontend metrics (client-to-load balancer).
backend_type

Der Name der Backend-Gruppe, die die Anfrage des Clients verarbeitet hat. Kann INSTANCE GROUP, NETWORK_ENDPOINT_GROUP oder UNKNOWN sein, wenn das Backend nicht zugewiesen wurde. Wenn keine Back-End-Gruppe verfügbar war oder die Anfrage von einer anderen Entität verarbeitet wurde, wird anstelle einer Back-End-Gruppe einer der folgenden Werte angezeigt.

  • FRONTEND_5XX: Es ist ein interner Fehler aufgetreten, bevor ein Back-End vom GFE ausgewählt werden konnte. Das GFE hat 5XX an den Client zurückgegeben.
  • INVALID_BACKEND: Das GFE konnte kein fehlerfreies Back-End finden, um diesem die Anfrage zuzuweisen, und hat deshalb eine 5XX-Antwort an den Sender der Anfrage zurückgegeben.
  • NO_BACKEND_SELECTED: Ein Fehler oder eine andere Unterbrechung ist aufgetreten, bevor ein Back-End ausgewählt werden konnte oder eine URL-Weiterleitung erfolgt ist.
  • MULTIPLE_BACKENDS: Die Anfrage wurde von möglicherweise mehreren Back-Ends bereitgestellt. Dies kann passieren, wenn Cloud CDN die Anfrage teilweise aus seinem Cache bereitgestellt und außerdem eine oder mehrere Bytebereichsanfragen an das Back-End gesendet hat. Mit der Aufschlüsselung von backend_scope können Sie jede Anfrage vom Load Balancer zum Back-End visualisieren.
backend_target_type Der Name des Back-End-Dienstes, von dem die Anfrage verarbeitet wurde. Kann BACKEND_SERVICE, BACKEND_BUCKET, UNKNOWN sein, wenn das Backend nicht zugewiesen wurde, oder NO_BACKEND_SELECTED, wenn vor der Auswahl eines Backends ein Fehler oder eine andere Unterbrechung aufgetreten ist oder eine URL-Weiterleitung stattgefunden hat.
matched_url_path_rule Die Pfadregel der URL-Zuordnung, die mit dem Präfix der HTTP(S)-Anfrage übereinstimmte (bis zu 50 Zeichen).
forwarding_rule_name Der Name der Weiterleitungsregel, die vom Client zum Senden des Requests verwendet wird.
url_map_name

Die Pfadregel oder Routingregel der URL-Zuordnung, die als Teil des URL-Zuordnungsschlüssels konfiguriert ist. Kann UNMATCHED oder UNKNOWN als Fallback sein.

  • UNMATCHED verweist auf eine Anfrage, die mit keiner URL-Pfadregel übereinstimmt, sodass url_map_name die Standardpfadregel verwendet.
  • UNKNOWN zeigt einen internen Fehler an.
target_proxy_name Der Name des Ziel-HTTP(S)-Proxy-Objekts, auf das die Weiterleitungsregel verweist.
backend_target_name Der Name des Backend-Ziels. Das Ziel kann entweder ein Backend-Dienst oder ein Backend-Bucket sein. UNKNOWN wird zurückgegeben, wenn kein Backend zugewiesen wurde.
backend_name Der Name der Back-End-Instanzgruppe, des Buckets oder der NEG. UNKNOWN wird zurückgegeben, wenn das Backend nicht zugewiesen wurde, oder NO_BACKEND_SELECTED, wenn vor der Auswahl eines Backends ein Fehler oder eine andere Unterbrechung aufgetreten ist oder eine URL-Weiterleitung stattgefunden hat.
backend_scope_type

Der Typ des Bereichs der Backend-Gruppe. Kann GLOBAL, REGION, ZONE, MULTIPLE_BACKENDS oder NO_BACKEND_SELECTED sein, wenn ein Fehler oder eine andere Unterbrechung aufgetreten ist, bevor ein Back-End ausgewählt werden konnte, oder eine URL-Weiterleitung stattgefunden hat, oder andere mögliche Ausgaben vom Typ „backend_type“.

MULTIPLE_BACKENDS wird verwendet, wenn das Chunk-Caching verwendet wird. Mehrere Abfragen werden für verschiedene Datenblöcke an dasselbe Back-End gesendet, um eine einzelne Clientanfrage zu unterstützen.

proxy_continent Kontinent des HTTP(S)-GFE, das die HTTP(S)-Verbindung beendet hat. (Beispiele: America, Europe, Asia)
protocol Vom Client verwendetes Protokoll: HTTP/1.0, HTTP/1.1, HTTP/2.0, QUIC/HTTP/2.0 oder UNKNOWN.
response_code Der HTTP-Antwortcode der Anfrage.
response_code_class Die HTTP-Antwortcodeklasse der Anfrage: 200, 300, 400, 500 oder 0 für „keine Angabe“.
cache_result Cache-Ergebnis für die HTTP-Anfrage per Proxy: HIT, MISS, DISABLED, PARTIAL_HIT (für eine Anfrage, die teilweise aus dem Cache und teilweise vom Backend bedient wird) oder UNKNOWN.
client_country Land des Clients, der die HTTP-Anfrage gesendet hat (z. B. United States oder Germany)
load_balancing_scheme Das verwendete Load Balancing-Schema. Wenn der klassische Application Load Balancer verwendet wird, ist der Wert EXTERNAL. Wenn ein globaler externer Application Load Balancer verwendet wird, ist der Wert EXTERNAL_MANAGED.

Nächste Schritte