Logging und Monitoring für regionale externe Anwendungs-Load-Balancer

In diesem Dokument erfahren Sie, wie Sie Anwendungen konfigurieren und Cloud Logging und Cloud Monitoring mit regionalen externen Application Load Balancern verwenden.

Logging

Sie können Logs für den Backend-Dienst eines externen Anwendungs-Load-Balancers aktivieren, deaktivieren und aufrufen.

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.

Optionale Felder

Logdatensätze umfassen Pflichtfelder und optionale Felder. Im Abschnitt Was wird protokolliert? werden die optionalen Felder und die erforderlichen Felder aufgeführt. Alle Pflichtfelder sind immer enthalten. Sie können festlegen, welche optionalen Felder beibehalten werden.

  • Wenn Sie Alle optionalen einschließen auswählen, sind alle optionalen Felder im Logdatensatzformat in den Logs enthalten. Wenn dem Eintragsformat neue optionale Felder hinzugefügt werden, enthalten die Logs automatisch die neuen Felder.

  • Wenn Sie Alle optionalen ausschließen auswählen, werden alle optionalen Felder weggelassen.

  • Wenn Sie Benutzerdefiniert auswählen, können Sie die optionalen Felder angeben, die Sie einschließen möchten, z. B. tls.protocol,tls.cipher.

Eine Anleitung zum Anpassen optionaler Felder finden Sie unter Logging auf einem neuen Backend-Dienst aktivieren.

Logging für einen neuen 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. Wählen Sie Backend-Dienst erstellen aus.

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

  7. Klicken Sie im Bereich Logging das Kästchen Logging aktivieren an.

  8. 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

  9. Optional: Wenn Sie alle optionalen Felder in die Logs aufnehmen möchten, klicken Sie im Abschnitt Optionale Felder auf Alle optionalen Felder einschließen.

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

  11. Klicken Sie auf Aktualisieren, um das Bearbeiten des Load-Balancers abzuschließen.

gcloud: Modus "Regional"

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 \
    --region=REGION \
    --enable-logging \
    --logging-sample-rate=VALUE \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --logging-optional=LOGGING_OPTIONAL_MODE \
    --logging-optional-fields=OPTIONAL_FIELDS

Wobei Folgendes gilt:

  • --region gibt an, dass der Backend-Dienst regional ist. Verwenden Sie dieses Feld für Backend-Dienste, die mit regionalen externen Anwendungs-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
  • Mit --logging-optional können Sie die optionalen Felder angeben, die in den Logs enthalten sein sollen:

    • INCLUDE_ALL_OPTIONAL, um alle optionalen Felder einzuschließen.

    • EXCLUDE_ALL_OPTIONAL (Standard), um alle optionalen Felder auszuschließen.

    • CUSTOM zum Hinzufügen einer benutzerdefinierten Liste von optionalen Feldern, die Sie in OPTIONAL_FIELDS angeben.

  • Mit --logging-optional-fields können Sie eine durch Kommas getrennte Liste optionaler Felder angeben, die in die Logs aufgenommen werden sollen.

    Beispiel: tls.protocol,tls.cipher kann nur festgelegt werden, wenn LOGGING_OPTIONAL_MODE auf CUSTOM eingestellt ist.

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. Klicken Sie im Bereich Logging das Kästchen Logging aktivieren an.

  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. Optional: Wenn Sie alle optionalen Felder in die Logs aufnehmen möchten, klicken Sie im Abschnitt Optionale Felder auf Alle optionalen Felder einschließen.

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

  10. Klicken Sie auf Aktualisieren, um das Bearbeiten des Load-Balancers abzuschließen.

gcloud: Modus "Regional"

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 \
    --region=REGION \
    --enable-logging \
    --logging-sample-rate=VALUE \
    --logging-optional=LOGGING_OPTIONAL_MODE \
    --logging-optional-fields=OPTIONAL_FIELDS

Wobei Folgendes gilt:

  • --region gibt an, dass der Backend-Dienst regional ist. Verwenden Sie dieses Feld für Backend-Dienste, die mit regionalen externen Anwendungs-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
  • Mit --logging-optional können Sie die optionalen Felder angeben, die in den Logs enthalten sein sollen:

    • INCLUDE_ALL_OPTIONAL, um alle optionalen Felder einzuschließen.

    • EXCLUDE_ALL_OPTIONAL (Standard), um alle optionalen Felder auszuschließen.

    • CUSTOM zum Hinzufügen einer benutzerdefinierten Liste von optionalen Feldern, die Sie in OPTIONAL_FIELDS angeben.

  • Mit --logging-optional-fields können Sie eine durch Kommas getrennte Liste optionaler Felder angeben, die in die Logs aufgenommen werden sollen.

    Beispiel: tls.protocol,tls.cipher Kann nur festgelegt werden, wenn LOGGING_OPTIONAL_MODE auf CUSTOM gesetzt ist.

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. Um das Logging vollständig zu deaktivieren, entfernen Sie im Abschnitt Logging das Häkchen aus dem Kästchen Logging aktivieren.

  7. Wenn das Logging aktiviert bleibt, können Sie im Feld Abtastrate eine andere Inklusionswahrscheinlichkeit 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. Zur Reduzierung der Anzahl der gespeicherten Logs auf 20 % legen Sie den Wert auf 0.2 fest.

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

  9. Klicken Sie auf Aktualisieren, um das Bearbeiten des Load-Balancers abzuschließen.

gcloud: Modus "Regional"

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 \
    --region=REGION \
    --no-enable-logging

Dabei gilt:

  • --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 | --region=REGION \
 --logging-sample-rate=VALUE

Logs ansehen

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 regionale externe Anwendungs-Load-Balancer können Sie logbasierte Messwerte mithilfe von Ressourcenlogs (resource.type="http_external_regional_lb_rule") exportieren.

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. Logeinträge umfassen optionale Felder mit zusätzlichen Informationen zum HTTP(S)-Traffic. Sie können weggelassen werden, um Speicherkosten zu sparen.

Einige Logfelder haben ein Mehrfeldformat mit mehr als einem Datenelement in einem bestimmten Feld. Das Feld tls hat beispielsweise das Format TlsDetails. Dieses Format enthält das TLS-Protokoll und die TLS-Chiffre in einem einzelnen Feld. Diese Felder mit Mehrfeldformat werden in der Datensatzformattabelle beschrieben.

Feld Feldformat Feldtyp: Erforderlich oder optional Beschreibung
Schweregrad
insertID
timestamp
logName
LogEntry Erforderlich Die allgemeinen Felder, wie in einem Logeintrag beschrieben.
httpRequest HttpRequest Erforderlich Ein gängiges Protokoll für Logging von HTTP-Anfragen
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:
  • proxyStatus
  • tls
  • backendTargetProjectNumber
  • mtls
String Erforderlich

Das Feld proxyStatus enthält einen String, der angibt, warum der regionale externe Anwendungs-Load-Balancer den HttpRequest.status zurückgegeben hat. Dieses Feld wird nur ausgefüllt, wenn der Proxy einen Fehlercode mit 4XX oder 5XX zurückgibt.

Mögliche Werte sind connection_timeout, destination_unavailable oder http_request_error. Das Feld wird nicht protokolliert, wenn der Wert ein leerer String ist. Weitere Informationen finden Sie unter der ProxyStatus-Nachricht.

TlsDetails Optional Das Feld tls enthält die TlsDetails, die die TLS-Metadaten für die Verbindung zwischen dem Client und dem regionalen externen Anwendungs-Load-Balancer angeben. Dieses Feld ist nur verfügbar, wenn der Client die TLS/SSL-Verschlüsselung verwendet.
MtlsDetails Optional Das Feld mtls enthält den Wert MtlsDetails, der die mTLS-Metadaten für die Verbindung zwischen dem Client und dem regionalen externen Application Load Balancer angibt. Dieses Feld ist nur verfügbar, wenn der Load Balancer das gegenseitige TLS (mTLS) des Front-Ends verwendet.

Feldformat von TlsDetails

Feld Feldformat Feldtyp: Erforderlich oder optional Beschreibung
protocol String Optional TLS-Protokoll, mit dem Clients eine Verbindung mit dem Load Balancer herstellen können. Mögliche Werte sind TLS 1.0, 1.1, 1.2, 1.3 oder QUIC. Dieser Wert wird auf NULL gesetzt, wenn der Client keine TLS/SSL-Verschlüsselung verwendet.
cipher String Optional TLS-Chiffre, mit der Clients eine Verbindung mit dem Load Balancer herstellen können. Dieser Wert wird auf NULL gesetzt, wenn der Client kein HTTP(S) verwendet oder der Client keine TLS/SSL-Verschlüsselung verwendet.

Feldformat von MtlsDetails

Feld Feldformat Feldtyp: Erforderlich oder optional Beschreibung
clientCertPresent bool Optional

true, wenn der Client während des TLS-Handshakes ein Zertifikat bereitgestellt hat; andernfalls false.

clientCertChainVerified bool Optional

true, wenn die Clientzertifikatskette mit einem konfigurierten TrustStore verglichen wird. Andernfalls false.

clientCertError String Optional

Vordefinierte Strings, die die Fehlerbedingungen darstellen. Weitere Informationen zu den Fehlerstrings finden Sie unter mTLS-Clientvalidierungsmodi.

clientCertSha256Fingerprint String Optional

Base64-codierter SHA-256-Fingerabdruck des Clientzertifikats.

clientCertSerialNumber String Optional

Die Seriennummer des Clientzertifikats. Wenn die Seriennummer länger als 50 Bytes ist, wird der String client_cert_serial_number_exceeded_size_limit zu client_cert_error hinzugefügt und die Seriennummer auf einen leeren String gesetzt.

clientCertValidStartTime String Optional

Zeitstempel (Datumsstringformat gemäß RFC 3339), vor dem das Clientzertifikat ungültig ist. Beispiel: 2022-07-01T18:05:09+00:00.

clientCertValidEndTime String Optional

Zeitstempel (Datumsstringformat gemäß RFC 3339), nach dem das Clientzertifikat ungültig ist. Beispiel: 2022-07-01T18:05:09+00:00.

clientCertSpiffeId String Optional

Die SPIFFE-ID aus dem Feld „Alternativer Antragstellername“ (SAN) Wenn der Wert ungültig ist oder 2.048 Byte überschreitet, wird die SPIFFE-ID auf einen leeren String gesetzt.

Wenn die SPIFFE-ID länger als 2.048 Bytes ist, wird der String client_cert_spiffe_id_exceeded_size_limit zu client_cert_error hinzugefügt.

clientCertUriSans String Optional

Durch Kommas getrennte Liste mit Base64-codierten SAN-Erweiterungen vom Typ URI. Die SAN-Erweiterungen werden aus dem Clientzertifikat extrahiert. Die SPIFFE-ID ist nicht im Feld client_cert_uri_sans enthalten.

Wenn das Feld client_cert_uri_sans länger als 512 Bytes ist, wird der String client_cert_uri_sans_exceeded_size_limit zu client_cert_error hinzugefügt und die durch Kommas getrennte Liste auf einen leeren String gesetzt.

clientCertDnsnameSans String Optional

Durch Kommas getrennte Liste mit Base64-codierten SAN-Erweiterungen vom Typ DNSName. Die SAN-Erweiterungen werden aus dem Clientzertifikat extrahiert.

Wenn das Feld client_cert_dnsname_sans länger als 512 Bytes ist, wird der String client_cert_dnsname_sans_exceeded_size_limit zu client_cert_error hinzugefügt und die durch Kommas getrennte Liste auf einen leeren String gesetzt.

clientCertIssuerDn String Optional

Base64-codiertes vollständiges Ausstellerfeld aus dem Zertifikat.

Wenn das Feld client_cert_issuer_dn länger als 512 Byte ist, wird der String client_cert_issuer_dn_exceeded_size_limit zu client_cert_error hinzugefügt und client_cert_issuer_dn auf einen leeren String gesetzt.

clientCertSubjectDn String Optional

Base64-codiertes vollständiges Subject-Feld aus dem Zertifikat.

Wenn das Feld client_cert_subject_dn länger als 512 Bytes ist, wird der String client_cert_subject_dn_exceeded_size_limit zu client_cert_error hinzugefügt und client_cert_subject_dn auf einen leeren String gesetzt.

clientCertLeaf String Optional

Das untergeordnete Clientzertifikat für eine hergestellte mTLS-Verbindung, bei der das Zertifikat die Validierung bestanden hat. Die Zertifikatscodierung ist RFC 9440-konform: Das binäre DER-Zertifikat wird mit Base64 codiert (ohne Zeilenumbrüche, Leerzeichen oder andere Zeichen außerhalb des Base64-Alphabets) und durch Doppelpunkte auf beiden Seiten getrennt.

Wenn client_cert_leaf 16 KB uncodiert überschreitet, wird der String client_cert_validated_leaf_exceeded_size_limit zu client_cert_error hinzugefügt und client_cert_leaf auf einen leeren String gesetzt.

clientCertChain String Optional

Die durch Kommas getrennte Liste der Zertifikate in Standard-TLS-Reihenfolge der Clientzertifikatskette für eine hergestellte mTLS-Verbindung, bei der das Clientzertifikat die Validierung bestanden hat, ohne das untergeordnete Zertifikat. Die Zertifikatscodierung ist konform mit RFC 9440.

Wenn die Gesamtgröße von client_cert_leaf und client_cert_chain vor der Base64-Codierung 16 KB überschreitet, wird der String client_cert_validated_chain_exceeded_size_limit zu client_cert_error hinzugefügt und client_cert_chain auf einen leeren String festgelegt.

Ressourcenlabels

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

Feld Typ Beschreibung
backend_name String Der Name der Backend-Instanzgruppe oder der NEG.
backend_scope String Der Bereich des Back-Ends (entweder ein Zonenname oder ein Regionsname). Kann UNKNOWN sein, wenn backend_name unbekannt ist.
backend_scope_type String Der Bereich des Back-Ends (REGION/ZONE). Kann UNKNOWN sein, wenn backend_name unbekannt ist.
backend_target_name String Der Name des Back-Ends, das für die Anfrage ausgewählt wurde, auf Basis der Pfadregel oder Routingregel der URL-Zuordnung, die mit der Anfrage übereinstimmt.
backend_target_type String Der Typ des Backend-Ziels. Kann BACKEND_SERVICE oder UNKNOWN sein, wenn das Backend nicht zugewiesen wurde.
backend_type String Der Typ der Backend-Gruppe. Kann INSTANCE_GROUP, NETWORK_ENDPOINT_GROUP oder UNKNOWN sein, wenn das Backend nicht zugewiesen wurde.
forwarding_rule_name String Der Name des Weiterleitungsregelobjekts.
matched_url_path_rule String 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 die Standardpfadregel verwendet wird.
  • UNKNOWN zeigt einen internen Fehler an.
network_name String Der Name des VPC-Netzwerks des Load-Balancers.
project_id String Die Kennung des Google Cloud-Projekts, das dieser Ressource zugeordnet ist.
region String Die Region, in der der Load-Balancer definiert 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.

proxyStatus-Nachricht

proxyStatus Bedeutung Häufige zugehörige Antwortcodes
destination_unavailable Der Load Balancer betrachtet das Backend als nicht verfügbar. Beispiel: Die letzten Kommunikationsversuche mit dem Backend sind fehlgeschlagen oder eine Systemdiagnose kann auf einen Fehler hinweisen. 500, 503
connection_timeout Beim Versuch, eine Verbindung zum Backend zu öffnen, ist eine Zeitüberschreitung aufgetreten. 504
connection_terminated Die Verbindung des Load-Balancers mit dem Backend wurde geschlossen, bevor eine vollständige Antwort empfangen wurde. 502, 503
connection_refused Die Verbindung des Load-Balancers zum Backend wurde abgelehnt. 502, 503
connection_limit_reached Der Load-Balancer ist so konfiguriert, dass er die Anzahl seiner Verbindungen zum Backend begrenzt und dieses Limit wurde überschritten. 502, 503
destination_not_found Der Load Balancer kann nicht feststellen, welches Backend für diese Anfrage zu verwenden ist, z. B. weil es nicht konfiguriert ist. 500, 404
dns_error Der Load Balancer hat bei der Suche nach einer IP-Adresse für den Backend-Hostnamen einen DNS-Fehler festgestellt. 502, 503
http_response_timeout Der Load-Balancer hat beim Warten auf die vollständige Antwort vom Backend ein konfiguriertes Zeitlimit erreicht. 504, 408
http_request_error Der Load-Balancer generiert im Namen des Clients eine Clientantwort (4xx). 400, 403, 405, 406, 408, 411, 413, 414, 415, 416, 417, oder 429
proxy_configuration_error Der Load-Balancer hat einen Fehler in Bezug auf seine Konfiguration festgestellt. 500
http_protocol_error Der Load-Balancer hat bei der Kommunikation mit dem Backend einen HTTP-Protokollfehler festgestellt. 502
proxy_internal_error Der Load Balancer hat einen internen Fehler festgestellt. 500, 502
proxy_internal_response Der Load Balancer hat die Antwort generiert, ohne zu versuchen, eine Verbindung zum Backend herzustellen. Je nach Art des Problems wird möglicherweise ein HTTP-Statuscode angezeigt. Der HTTP-Statuscode 410 bedeutet beispielsweise, dass das Backend aufgrund von Zahlungsrückstand nicht verfügbar ist.

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.

Benachrichtigungsrichtlinien definieren

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

  1. Wählen Sie im Navigationsbereich der Google Cloud Console Monitoring und anschließend  Benachrichtigungen aus:

    Zu Benachrichtigungen

  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 Regional 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 Regionale 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 Next (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 Next (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:
    2. Wählen Sie für einen regionalen externen Application Load Balancer den Ressourcentyp Regel für regionalen externen Application Load Balancer aus.
    3. 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. Messwerte basieren auf Stichproben des Traffics. Die Stichprobenrate ist dynamisch und kann nicht angepasst werden. 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 Anwendungs-Load-Balancer überwachen.

Die folgenden Messwerte für regionale externe Anwendungs-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/external/regional/request_count Die Anzahl der Anfragen, die vom regionalen externen Anwendungs-Load-Balancer verarbeitet wurden.
Anzahl der Anfragebyte https/external/regional/request_bytes Die Anzahl der Byte, die als Anfragen von Clients an den regionalen externen Anwendungs-Load-Balancer gesendet wurden.
Anzahl der Antwortbyte https/external/regional/response_bytes Die Anzahl der Byte, die als Antworten vom regionalen externen Anwendungs-Load-Balancer an den Client gesendet wurden.
Gesamtlatenzen https/external/regional/total_latencies Eine Verteilung der Latenz in Millisekunden. Die Latenz wird von dem Zeitpunkt, an dem der Proxy das erste Byte der Anfrage empfängt, bis zu dem Zeitpunkt gemessen, an dem der Proxy das letzte Byte der Antwort sendet.
Backend-Latenzen https/external/regional/backend_latencies Eine Verteilung der Latenz in Millisekunden. Die Latenz wird ab dem Zeitpunkt gemessen, an dem der Proxy das erste Byte der Anfrage an das Backend sendet, bis zu dem Zeitpunkt, an dem der Proxy das letzte Byte der Antwort vom Backend empfängt.

Dimensionen für Messwerte filtern

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

Die Messwerte werden für jeden regionalen externen Anwendungs-Load-Balancer zusammengefasst. Sie können zusammengefasste Messwerte filtern, indem Sie die folgenden Dimensionen für resource.type="http_external_regional_lb_rule" verwenden.

Attribut Beschreibung
backend_name Der Name der Backend-Instanzgruppe oder der NEG.
backend_scope Der Bereich des Back-Ends (entweder ein Zonenname oder ein Regionsname). Kann UNKNOWN sein, wenn backend_name unbekannt ist.
backend_scope_type Der Bereich des Back-Ends (REGION/ZONE). Kann UNKNOWN sein, wenn backend_name unbekannt ist.
backend_target_name Der Name des Back-Ends, das für die Anfrage ausgewählt wurde, auf Basis der Pfadregel oder Routingregel der URL-Zuordnung, die mit der Anfrage übereinstimmt.
backend_target_type Der Typ des Backend-Ziels. Kann BACKEND_SERVICE oder UNKNOWN sein, wenn das Backend nicht zugewiesen wurde.
backend_type Der Typ der Backend-Gruppe. Kann INSTANCE_GROUP, NETWORK_ENDPOINT_GROUP oder UNKNOWN sein, wenn das Backend nicht zugewiesen wurde.
forwarding_rule_name Der Name des Weiterleitungsregelobjekts.
matched_url_path_rule 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 die Standardpfadregel verwendet wird.
  • UNKNOWN zeigt einen internen Fehler an.
network_name Der Name des VPC-Netzwerks des Load-Balancers.
project_id Die Kennung des Google Cloud-Projekts, das dieser Ressource zugeordnet ist.
region Die Region, in der der Load-Balancer definiert ist.
target_proxy_name Der Name des Ziel-Proxy-Objekts, auf das die Weiterleitungsregel verweist.
url_map_name Der Name des URL-Zuordnungsobjekts, das für die Auswahl eines Backend-Dienstes konfiguriert ist.

Nächste Schritte