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

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

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. 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 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. Der Standardwert ist 1.0.

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

Logs aufrufen

Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf, um sich Logs anzusehen.

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

  • Wählen Sie zum Anzeigen 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 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.

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

Der überwachten Ressource, von der der Logeintrag erzeugt wurde.

Das Objekt MonitoredResourceDescriptor beschreibt das Schema eines MonitoredResource-Objekts mithilfe eines Typnamens und eines Satzes von Labels.

Der Deskriptor der überwachten Ressource für das interne HTTP(S)-Load-Balancing hat beispielsweise den Ressourcentyp internal_http_lb_rule und gibt die Verwendung von Labels an, die die tatsächliche Ressource und ihre Attribute identifizieren. Eine Liste der Ressourcenlabels finden Sie unter Ressourcenlabels für resource.type="internal_http_lb_rule".

Ressourcenlabels

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

Feld Typ Beschreibung
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.
url_map_name String Der Name des URL-Zuordnungsobjekts, das für die Auswahl eines Back-End-Dienstes konfiguriert ist.
forwarding_rule_name String Der Name des Weiterleitungsregelobjekts.
target_proxy_name String Der Name des Ziel-Proxy-Objekts, auf das die Weiterleitungsregel verweist.
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.
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 Back-End-Ziels (BACKEND_SERVICE/UNKNOWN).
backend_name String Der Name der Back-End-Instanzgruppe oder der NEG.
backend_type String Der Typ des Back-Ends, entweder eine Instanzgruppe oder eine 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.

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

Console

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 Anzeige der 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

Console

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 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 Next (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 Benachrichtigungsrichtlinien.

Benutzerdefinierte Monitoring-Dashboards definieren

Console

Sie können benutzerdefinierte Monitoring-Dashboards über interne HTTP(S)-Load-Balancing-Messwerte 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.

  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