Logging und Monitoring für das interne HTTP(S)-Load-Balancing

Dieses Dokument bietet grundlegende Informationen zu Logging- und Monitoring-Messwerten für das Interne HTTP(S)-Load-Balancing.

Logging

Sie können Logging für jeden Back-End-Dienst aktivieren. Die URL-Zuordnung eines einzelnen internen HTTP(S)-Load-Balancers kann auf mehr als einen Back-End-Dienst verweisen. Daher müssen Sie das Logging je nach Konfiguration möglicherweise für mehr als einen Back-End-Dienst aktivieren.

Logging für vorhandenen Back-End-Dienst aktivieren

Console

  1. Öffnen Sie in der Google Cloud Console die Seite „Load-Balancing“.
    Zur Seite "Load-Balancing"
  2. Klicken Sie auf den Namen des Load-Balancers.
  3. Klicken Sie auf Bearbeiten .
  4. Klicken Sie auf Back-End-Konfiguration.
  5. Klicken Sie neben Ihrem Back-End-Dienst auf Bearbeiten .
  6. Klicken Sie auf Erweiterte Konfigurationen (Sitzungsaffinität, Zeitlimit für Verbindungsausgleich).
  7. Klicken Sie auf Logging aktivieren.
  8. Legen Sie einen Anteilswert für die Abtastrate fest. Sie können einen Wert von 0.0 bis 1.0 (Standard) angeben.
  9. Klicken Sie auf Aktualisieren.

gcloud

Aktualisieren Sie den Back-End-Dienst, um das Logging mit dem Befehl gcloud compute instance-templates create zu aktivieren.

gcloud compute backend-services update BACKEND_SERVICE \
    --enable-logging \
    --logging-sample-rate=RATE \
    --region=REGION

Dabei gilt:

  • --enable-logging aktiviert das Logging für diesen Back-End-Dienst.
  • Mit --logging-sample-rate können Sie einen Wert von 0.0 bis 1.0 angeben, wobei 0.0 bedeutet, dass keine Anfragen protokolliert werden, und 1.0 bedeutet, dass 100 % der Anfragen protokolliert 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.

Nachdem Sie das Logging für den Back-End-Dienst aktiviert haben, wird jede HTTP(S)-Anfrage mit Cloud Logging protokolliert.

Logs aufrufen

Öffnen Sie zum Aufrufen von Logs die Loganzeige.

Interne HTTP(S)-Load-Balancer-Logs werden zuerst nach Netzwerk und dann nach Region indexiert.

  • Wählen Sie zum Aufrufen von Logs für alle internen HTTP(S)-Load-Balancer im ersten Drop-down-Menü die Option Interne HTTP(S)-Load-Balancing-Regel aus.
  • Wählen Sie zum Aufrufen von Logs für nur ein Netzwerk Interne HTTP(S)-Load-Balancing-Regel und anschließend den Namen eines Netzwerks aus.
  • Wählen Sie zum Aufrufen von Logs für nur eine Region des Netzwerks Interne HTTP(S)-Load-Balancing-Regel > NETWORK > REGION aus.

Boolesche Logfelder werden normalerweise nur aufgeführt, 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.

Sie können den Export von logbasierten Messwerten für Ressourcenlogs (resource.type="internal_http_lb_rule") konfigurieren. Die erstellten Messwerte basieren auf der Ressource "Interne HTTP/S-Load-Balancing-Regel (logbasierte Messwerte)", die in Cloud Monitoring-Dashboards verfügbar ist:

Zu Monitoring

Was wird protokolliert?

Die Logeinträge für das interne HTTP(S)-Load-Balancing bieten Informationen, die Sie für das Monitoring und die Fehlerbehebung bei Ihrem HTTP(S)-Traffic verwenden können. Folgende Informationen sind in Ihnen enthalten:

  • Allgemeine Informationen, die in den meisten Google Cloud-Logs angezeigt werden, wie z. B. Schweregrad, Projekt-ID, Projektnummer, Zeitstempel usw.
  • HttpRequest-Logfelder.

Logfelder

Logs sind LogEntry-Protos.

Feld Typ Beschreibung
logName String Ressourcenname des Logs, dessen Bestandteil der Logeintrag ist.
Im Format "projects/PROJECT_ID/logs/requests".
timestamp Timestamp-Format Der Zeitpunkt, an dem die Anfrage gestellt wurde.
severity LogSeverity-Format Der Schweregrad des Logeintrags. Die Standardeinstellung ist LogSeverity.DEFAULT.
httpRequest HttpRequest-Objekt Ein HttpRequest-Proto, das die protokollierte HTTP(S)-Anfrage beschreibt.
trace String Der Ressourcenname des Trace, das, falls vorhanden, mit dem Logeintrag verknüpft ist. Wenn ein relativer Ressourcennamen enthalten ist, wird angenommen, dass der Name relativ zu https://tracing.googleapis.com ist. Beispiel: projects/PROJECT_ID/traces/06796866738c859f2f19b7cfb3214824
spanId String Die Span-ID innerhalb des Trace, das mit dem Logeintrag verknüpft ist. Für Trace-Spans ist dies das Format, das die Trace API V2 verwendet, d. h. eine aus 16 Zeichen bestehende hexadezimale Codierung eines 8-Byte-Arrays, z. B. 000000000000004a.
resource MonitoredResource-Objekt Die mit diesem Logeintrag verknüpfte überwachte Ressource. Siehe MonitoredResource-Objekt.

MonitoredResource

Feld Typ Beschreibung
networkName String Der Name des VPC-Netzwerks des Load-Balancers.
region String Der Name der Google Cloud-Region des Load-Balancers.
urlMapName String Der Name des URL-Zuordnungsobjekts, das für die Auswahl eines Back-End-Dienstes konfiguriert ist.
forwardingRuleName String Der Name des Weiterleitungsregelobjekts.
targetProxyName String Der Name des Ziel-Proxy-Objekts, auf das die Weiterleitungsregel verweist.
matchedUrlPathRule 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, und verwendet daher die Standardpfadregel.
  • UNKNOWN zeigt einen internen Fehler an.
backendTargetName 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.
backendTargetType String Der Typ des Back-End-Ziels (BACKEND_SERVICE/UNKNOWN).
backendName String Der Name der Back-End-Instanzgruppe oder der NEG.
backendType String Der Typ des Back-Ends, entweder Instanzgruppe oder NEG.
backendScope String Der Umfang des Back-Ends (entweder Zonenname oder Regionsname). Könnte UNKNOWN sein, wenn backendName unbekannt ist.
backendScopeType String Der Bereich des Back-Ends (REGION/ZONE). Könnte UNKNOWN sein, wenn backendName unbekannt ist.

Monitoring

Das interne HTTP(S)-Load-Balancing exportiert Monitoringdaten in Monitoring.

Monitoring-Messwerte können für Folgendes verwendet werden:

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

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

Cloud Monitoring-Messwerte anzeigen

So rufen Sie mit dem Metrics Explorer die Messwerte für eine überwachte Ressource auf:

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

    Zu Monitoring

    Wenn Sie Cloud Monitoring noch nie verwendet haben, wird beim ersten Zugriff auf Monitoring in der Google Cloud Console automatisch ein Arbeitsbereich erstellt und Ihr Projekt mit diesem Arbeitsbereich verknüpft. Wenn Ihr Projekt nicht mit einem Arbeitsbereich verknüpft ist, wird ein Dialogfeld angezeigt, in dem Sie entweder einen Arbeitsbereich erstellen oder dieses Projekt zu einem vorhandenen Arbeitsbereich hinzufügen können. Wir empfehlen, einen Arbeitsbereich zu erstellen. Klicken Sie nach der Auswahl auf Hinzufügen.

  2. Klicken Sie im Navigationsbereich von Monitoring auf Metrics Explorer.
  3. Prüfen Sie, ob der Tab Messwert ausgewählt ist.
  4. Treffen Sie im Feld Ressourcentyp und Messwert finden Ihre Auswahl über das Menü oder geben Sie den Namen für die Ressource und den Messwert ein. Verwenden Sie die folgenden Informationen, um die Felder auszufüllen:
    1. Wählen Sie für Ressource den Wert internal_http_lb_rule aus oder geben Sie ihn ein. Dadurch wird die Ressource Interne HTTP/S-Load-Balancing-Regel ausgewählt.
    2. Treffen Sie für Messwert eine Auswahl im Menü.
  5. Mit den Menüs Filter, Gruppieren nach und Aggregator können Sie die Darstellung der Daten ändern. Sie können beispielsweise nach Ressourcen- oder Messwertlabels gruppieren. Weitere Informationen finden Sie unter Messwerte auswählen.

Benachrichtigungsrichtlinien definieren

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

So erstellen Sie eine Benachrichtigungsrichtlinie, die eine oder mehrere interne HTTP/S-Load-Balancer-Ressourcen überwacht:

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

    Zu Monitoring

    Wenn Sie Cloud Monitoring noch nie verwendet haben, wird beim ersten Zugriff auf Monitoring in der Google Cloud Console automatisch ein Arbeitsbereich erstellt und Ihr Projekt mit diesem Arbeitsbereich verknüpft. Wenn Ihr Projekt nicht mit einem Arbeitsbereich verknüpft ist, wird ein Dialogfeld angezeigt, in dem Sie entweder einen Arbeitsbereich erstellen oder dieses Projekt zu einem vorhandenen Arbeitsbereich hinzufügen können. Wir empfehlen, einen Arbeitsbereich zu erstellen. Klicken Sie nach der Auswahl auf Hinzufügen.

  2. Wählen Sie im Navigationsbereich für das Monitoring Benachrichtigungen und dann Richtlinie erstellen aus.
  3. Klicken Sie auf Bedingung hinzufügen:
    1. Die Einstellungen im Bereich Ziel geben die Ressource und den Messwert an, die überwacht werden sollen. Wählen Sie im Feld Ressourcentyp und Messwert suchen die Ressource Interner HTTP/S-Load-Balancer aus. Wählen Sie als Nächstes einen Messwert aus der Messwertliste aus.
    2. Die Einstellungen im Bereich Konfiguration der Benachrichtigungsrichtlinie geben an, wann die Benachrichtigung ausgelöst wird. Die meisten Felder in diesem Bereich sind bereits mit Standardwerten gefüllt. Weitere Informationen zu den Feldern in diesem Bereich finden Sie in der Dokumentation zu Benachrichtigungsrichtlinien unter Konfiguration.
    3. Klicken Sie auf Hinzufügen.
  4. Klicken Sie auf Weiter, um zum Abschnitt "Benachrichtigungen" zu gelangen.
  5. 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.

    Wenn ein hinzuzufügender Benachrichtigungskanal nicht aufgeführt ist, klicken Sie auf Benachrichtigungskanäle verwalten. Die Seite Benachrichtigungskanäle wird in einem neuen Browsertab angezeigt. Auf dieser Seite können Sie die konfigurierten Benachrichtigungskanäle aktualisieren. Wenn Sie damit fertig sind, kehren Sie zum ursprünglichen Tab zurück, klicken Sie auf Aktualisieren und wählen Sie dann die Benachrichtigungskanäle aus, die zur Benachrichtigungsrichtlinie hinzugefügt werden sollen.

  6. Klicken Sie auf Weiter, um zum Abschnitt „Dokumentation“ zu gelangen.
  7. Klicken Sie auf Name und geben Sie einen Namen für die Benachrichtigungsrichtlinie ein.
  8. Optional: Klicken Sie auf Dokumentation und tragen Sie alle Informationen ein, die in einer Benachrichtigung angezeigt werden sollen.
  9. Klicken Sie auf Speichern.
Weitere Informationen finden Sie unter Einführung in Benachrichtigungen.

Benutzerdefinierte Monitoring-Dashboards definieren

Sie können benutzerdefinierte Monitoring-Dashboards über interne HTTP(S)-Load-Balancing-Messwerte erstellen:

  1. Rufen Sie Monitoring in der Google Cloud Console auf.
    Zu „Monitoring”
  2. Wählen Sie Dashboards > Dashboard erstellen aus.
  3. Klicken Sie auf Add Chart (Diagramm hinzufügen).
  4. Geben Sie dem Diagramm einen Namen.
  5. Wählen Sie Messwerte und Filter aus. Bei Messwerten lautet der Ressourcentyp Interner HTTP(S)-Load-Balancer.
  6. Klicken Sie auf Speichern.

Häufigkeit und Speicherung von Messwertberichten

Messwerte für die Load-Balancer werden in Batches mit einminütiger Granularität in 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 für interne HTTP(S)-Load-Balancer überwachen

Die folgenden Messwerte für interne HTTP(S)-Load-Balancer werden an Monitoring gemeldet:

Messwert FQDN Beschreibung
Anzahl der Anfragen loadbalancing.googleapis.com/https/internal/request_count Die Anzahl der Anfragen, die vom internen HTTP(S)-Load-Balancer verarbeitet wurden.
Anzahl der Anfragebytes loadbalancing.googleapis.com/https/internal/request_bytes Die Anzahl der Byte, die als Anfragen von Clients an den internen HTTP(S)-Load-Balancer gesendet wurden.
Anzahl der Antwortbytes loadbalancing.googleapis.com/https/internal/response_bytes Die Anzahl der Byte, die als Antworten vom internen HTTP(S)-Load-Balancer an den Client gesendet wurden.
Gesamtlatenzen loadbalancing.googleapis.com/https/internal/total_latencies Eine Verteilung der Latenz in Millisekunden ab dem Zeitpunkt, an dem das erste Byte der Anfrage vom Proxy empfangen wird, bis zu dem Zeitpunkt, an dem das letzte Byte der Antwort vom Proxy gesendet wird.
Back-End-Latenzen loadbalancing.googleapis.com/https/internal/backend_latencies Eine Verteilung der Latenz in Millisekunden ab dem Zeitpunkt, an dem das erste Byte der Anfrage vom Proxy an das Back-End gesendet wird, bis zu dem Zeitpunkt, an dem der Proxy das letzte Byte der Antwort vom Back-End empfängt.

Dimensionen für interne HTTP(S)-Load-Balancer-Messwerte filtern

Die Messwerte werden für jeden internen HTTP(S)-Load-Balancer aggregiert. Sie können zusammengefasste Messwerte nach den folgenden Dimensionen filtern:

Attribut Beschreibung
BACKEND_SCOPE Die Google Cloud-Zone oder -Region der Back-End-Gruppe, von der die Clientanfrage verarbeitet wurde, oder ein spezieller String für Fälle, in denen die Back-End-Gruppe nicht zugewiesen wurde. Beispiele: us-central1-a, europe-west1-b, asia-east1, UNKNOWN.
PROXY_REGION Region des internen HTTP(S)-Load-Balancers, des Clients und des Back-Ends. Beispiele: us-central1, europe-west1 oder asia-east1.
BACKEND Der Name der Back-End-Instanzgruppe oder der NEG, von denen die Clientanfrage verarbeitet wurde.
BACKEND_TARGET Der Name des Back-End-Dienstes, von dem die Clientanfrage verarbeitet wurde.
MATCHED_URL_RULE Die Pfadregel oder Routingregel der URL-Zuordnung, die mit dem Präfix der HTTP(S)-Clientanfrage übereinstimmte (bis zu 50 Zeichen).

Der Messwert Response code class fraction wird für den gesamten Load-Balancer unterstützt. Es wird keine weitere Granularität unterstützt.

Nächste Schritte