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. Je nach Konfiguration müssen Sie möglicherweise das Logging für mehrere Back-End-Dienste 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 backend-services update 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 den Log-Explorer.

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

Das interne HTTP(S)-Load-Balancing unterstützt dieses Feld nicht.

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.

Das interne HTTP(S)-Load-Balancing unterstützt dieses Feld nicht.

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 unter „Monitoring“ die Seite "Metrics Explorer" auf.
  2. Zum Metrics Explorer

  3. Wählen Sie in der Symbolleiste den Tab Explorer aus.
  4. Wählen Sie den Tab Konfiguration aus.
  5. Maximieren Sie das Menü Messwert auswählen, geben Sie Internal HTTP/S Load Balancing Rule in die Filterleiste ein und wählen Sie dann über die Untermenüs einen bestimmten Ressourcentyp und Messwert aus:
    1. Wählen Sie im Menü Aktive Ressourcen die Option Interne HTTP(S)-Load-Balancing-Regel aus.
    2. Einen Messwert wählen Sie in den Menüs Aktive Messwertkategorien und Aktive Messwerte aus.
    3. Klicken Sie auf Anwenden.
  6. Optional: Konfigurieren Sie die Daten, fügen Sie Filter hinzu und verwenden Sie die Menüs Gruppieren nach, Aggregator und Diagrammtyp. Sie können beispielsweise nach Ressourcen- oder Messwertlabels gruppieren. Weitere Informationen finden Sie unter Messwerte bei Verwendung von Metrics Explorer auswählen.
  7. Optional: Ändern Sie die Diagrammeinstellungen:
    • Legen Sie für Kontingente und andere Messwerte, die eine Stichprobe pro Tag melden, den Zeitraum auf mindestens eine Woche fest und geben Sie als Darstellungstyp Übereinander angeordnetes Balkendiagramm an.
    • Stellen Sie für Verteilungsmesswerte die Darstellung auf Heatmap-Diagramm ein.

Benachrichtigungsrichtlinien definieren

Sie können Benachrichtigungsrichtlinien erstellen, um Messwerte zu beobachten und sich informieren zu lassen, wenn diese gegen eine Bedingung verstoßen. Die folgenden Schritte beziehen sich auf die Vorschau-Oberfläche für Benachrichtigungen.

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

    Zu Monitoring

  2. Wählen Sie im Navigationsbereich „Monitoring“ die Option Benachrichtigungen aus.
  3. 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.
  4. Klicken Sie auf der Seite Benachrichtigungen auf Richtlinie erstellen.
  5. 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 Internal HTTP/S Load Balancing 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 Interne HTTP(S)-Load-Balancing-Regel aus.
    3. Wählen Sie eine Messwertkategorie und einen Messwert aus und klicken Sie dann auf Übernehmen.
  6. Klicken Sie auf Next (Weiter).
  7. 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 Bedingungstrigger.
  8. Klicken Sie auf Weiter.
  9. 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.
  10. Optional: Aktualisieren Sie die Dauer bis zur automatischen Schließung von Vorfällen. Dieses Feld bestimmt, wann Monitoring Vorfälle ohne Messwertdaten schließt.
  11. Optional: Klicken Sie auf Dokumentation und geben Sie alle Informationen ein, die in einer Benachrichtigung angezeigt werden sollen.
  12. Klicken Sie auf Name der Benachrichtigung und geben Sie einen Namen für die Benachrichtigungsrichtlinie ein.
  13. Klicken Sie auf Richtlinie erstellen.
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. 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.
Back-End-Latenzen loadbalancing.googleapis.com/https/internal/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 Back-End sendet, 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