Logging und Monitoring des externen Passthrough-Netzwerk-Load-Balancers

In diesem Dokument erfahren Sie, wie Sie Cloud Logging und Cloud Monitoring für externe Passthrough-Netzwerk-Load-Balancer konfigurieren und verwenden.

Logging

Logs bieten nützliche Informationen zur Fehlerbehebung und zum Monitoring des externen Passthrough-Network Load Balancers. Logs werden pro Verbindung zusammengefasst und nahezu in Echtzeit exportiert. Logs werden für die TCP-, UDP-, ESP-, GRE-, ICMP- und ICMPv6-Abläufe jeder Instanz mit Load-Balancing für eingehenden und ausgehenden Traffic generiert. Weitere Informationen zu den im Logeintrag angegebenen Feldern finden Sie unter Logfelder.

Für die Verwendung von Logs fallen keine zusätzlichen Gebühren an. Je nachdem, wie Sie Logs importieren, gelten die Standardpreise für Cloud Logging, BigQuery oder Pub/Sub. Das Aktivieren von Logs hat keine Auswirkungen auf die Leistung des Load-Balancers.

Logging bietet folgende Vorteile:

  • Traffic-Monitoring für den externen Passthrough-Netzwerk-Load-Balancer. Das Logging pro Verbindung gibt Ihnen Aufschluss darüber, wie die einzelnen Verbindungen an Bereitstellungs-Back-Ends weitergeleitet werden.

  • Netzwerkfehler beheben. Sie können Logs des externen Passthrough-Netzwerk-Load-Balancers zur Fehlerbehebung verwenden. Weitere Informationen finden Sie unter Fehlerbehebung bei externen Passthrough-Network Load Balancern.

Beispiel für ein Logging-Format für einen externen Client zu VM-Ablauf

Das folgende Diagramm zeigt den eingehenden und ausgehenden Traffic für einen externen Client (203.0.113.7), einen externen Passthrough-Netzwerk-Load-Balancer (198.51.100.99) und eine Backend-Instanz (10.240.0.2).

Grafik: Externe Client-zu-Backend-VM-Dienstabläufe.
Eingehende und ausgehende Abläufe von externem Client zur VM.

Logs für externe Passthrough-Network Load Balancer für Verbindungen vom Client zur Backend-Instanz werden so formatiert:

  • connection.clientIp: 203.0.113.7
  • connection.serverIp: 198.51.100.99
  • bytesSent: 1256
  • bytesReceived: 4521

Stichprobenentnahme und Erfassung von Logs

Google Cloud nimmt Stichproben von ausgehenden und eingehenden Paketen von Load-Balancer-Backend-VMs. Diese Stichprobenpakete werden verarbeitet, um Logs zu generieren.

Nicht jedes Paket wird als Stichprobe verwendet. Google Cloud nimmt je nach Umfang des Traffics auf dem physischen Host eine variable Teilmenge von Paketen. Die niedrigste Abtastrate beträgt 1 von 1.024 Paketen. Die Abtastrate wird dynamisch von Google Cloud gesteuert. Sie können die Abtastrate nicht anpassen.

Der Entnahmeprozess von Stichproben interagiert auf folgende Weise mit Firewallregeln:

  • Pakete werden vor dem Anwenden von Firewallregeln für ausgehenden Traffic als Stichprobe erfasst.
  • Pakete werden nach dem Anwenden von Firewallregeln für eingehenden Traffic als Stichprobe erfasst.

Nach dem Entnahmeprozess von Stichproben verarbeitet Google Cloud die Stichprobenpakete gemäß dem folgenden Verfahren:

  1. Aggregation: Die Stichprobenpakete werden über ein Intervall von fünf Sekunden aggregiert, um einen einzelnen Ablaufeintrag zu erzeugen.

  2. Konfigurierbare (sekundäre) Stichproben von Logs: Dies ist ein zweiter Entnahmeprozess von Stichproben, der die Abläufe erfasst. Sie steuern den Anteil der Ablaufeinträge, die als Logeinträge gemäß dem Parameter logConfig.sampleRate ausgegeben werden. Wenn logConfig.sampleRate den Wert 1.0 (100 %) hat, werden alle Stichprobenpakete verarbeitet.

  3. In Logging schreiben: Die endgültigen Logeinträge werden in Cloud Logging geschrieben.

Optionale Felder

Logdatensätze umfassen Pflichtfelder und optionale Felder. Im Abschnitt Logfelder sind die optionalen und 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 Flusslogs enthalten. Wenn dem Eintragsformat neue optionale Felder hinzugefügt werden, enthalten die Flusslogs 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 vom übergeordneten Feld einschließen möchten. Beispiel: serverInstance oder durch ihre vollständigen Namen wie serverInstance.vm.

Wenn dem Eintragsformat neue optionale Felder hinzugefügt werden, enthalten die Logs diese Felder nur, wenn es sich um ein neues Feld in einem übergeordneten Feld handelt, das Sie angegeben haben.

Wenn Sie ein benutzerdefiniertes optionales Feld mithilfe von übergeordneten Feldern angeben, enthalten die Logs automatisch die neuen Felder, wenn dem Eintragsformat in diesem übergeordneten Feld neue optionale Felder hinzugefügt werden. Wenn Sie beispielsweise optionalFieldA einschließen, wird den Logs automatisch ein neues Feld mit dem Namen optionalFieldA.subField1 hinzugefügt.

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

Anforderungen an Quell-IP-Adressen des Antwortpakets

Beim Logging werden die Antwortpakete von den Backend-VMs nur dann erfasst, wenn die Quell-IP-Adresse für diese Pakete mit der IP-Adresse der Weiterleitungsregel des Load Balancers übereinstimmt. Bei TCP-Verbindungen müssen Antwortpakete immer Quellen enthalten, die mit dem Ziel des Anfragepakets übereinstimmen. Bei anderen Protokollen ist es jedoch möglich, dass Antwortpakete eine andere Quell-IP-Adresse verwenden. Weitere Informationen finden Sie unter IP-Adressen für Anfrage- und Rückgabepakete.

Das Stichprobenverfahren für Pakete, das vom externen Passthrough-Netzwerk-Load-Balancer verwendet wird, lässt alle Antwortpakete von Backend-VMs aus, wenn diese Antwortpakete Quellen haben, die nicht mit einer IP-Adresse einer Weiterleitungsregel für einen externen Passthrough-Netzwerk-Load-Balancer übereinstimmen.

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 und anschließend auf Backend-Konfiguration.
  4. Wählen Sie Backend-Dienst erstellen aus und füllen Sie die erforderlichen Felder für den Backend-Dienst aus.
  5. Wählen Sie im Bereich Logging die Option Logging aktivieren aus.
  6. Legen Sie einen Anteilswert für die Abtastrate fest. Sie können eine Rate von 0.0 bis 1.0 (Standardwert) festlegen.
  7. Optional: Wenn Sie alle optionalen Felder in die Logs aufnehmen möchten, klicken Sie im Abschnitt Optionale Felder auf Alle optionalen Felder einschließen.
  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

Erstellen Sie den 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=SAMPLE_RATE \
      --logging-optional=LOGGING_OPTIONAL \
      --logging-optional-fields=OPTIONAL_FIELDS
    

Ersetzen Sie dabei Folgendes:

  • BACKEND_SERVICE: der Name des Backend-Dienstes.
  • REGION ist die Region des zu erstellenden Backend-Dienstes.
  • SAMPLE_RATE: Dieses Feld kann nur angegeben werden, wenn Logging für diesen Backend-Dienst aktiviert ist.

    Der Wert des Felds muss von 0.0 to 1.0 stammen, wobei 0.0 bedeutet, dass keine Logs generiert werden, und 1.0, dass Logs für alle Stichprobenpakete generiert werden. Wenn Sie das Logging aktivieren und die Abtastrate auf 0.0 festlegen, entspricht dies einer Deaktivierung des Loggings. Der Standardwert ist 1.0.

  • LOGGING_OPTIONAL: Die optionalen Felder, 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.
  • OPTIONAL_FIELDS ist eine durch Kommas getrennte Liste optionaler Felder, die Sie in die Logs aufnehmen möchten.

    Beispiel: serverInstance.vm,serverGkeDetails. Kann nur festgelegt werden, wenn LOGGING_OPTIONAL auf CUSTOM gesetzt ist.

API

Stellen Sie eine POST-Anfrage an die Methode regionBackendServices.insert:

    POST https://compute.googleapis.com/compute/v1/projects/`PROJECT_ID`/regions/`REGION`/backendServices
    

Alle optionalen Felder ausschließen

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE
      }
    }
    

Alle optionalen Felder einschließen

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "INCLUDE_ALL_OPTIONAL"
      }
    }
    

Benutzerdefinierte Liste optionaler Felder hinzufügen

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "CUSTOM",
       "optionalFields": ["field1","field2",...]
      }
    }
    

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 und anschließend auf Backend-Konfiguration.
  4. Klicken Sie neben Ihrem Backend-Dienst auf Bearbeiten.
  5. Wählen Sie im Bereich Logging die Option Logging aktivieren aus.
  6. Legen Sie einen Anteilswert für die Abtastrate fest. Sie können eine Rate von 0.0 bis 1.0 (Standardwert) festlegen.
  7. Optional: Wenn Sie alle optionalen Felder in die Logs aufnehmen möchten, klicken Sie im Abschnitt Optionale Felder auf Alle optionalen Felder einschließen.
  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

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=SAMPLE_RATE \
      --logging-optional=LOGGING_OPTIONAL \
      --logging-optional-fields=OPTIONAL_FIELDS
    

Ersetzen Sie dabei Folgendes:

  • BACKEND_SERVICE: der Name des Backend-Dienstes.
  • REGION ist die Region des zu erstellenden Backend-Dienstes.
  • SAMPLE_RATE: Dieses Feld kann nur angegeben werden, wenn Logging für diesen Backend-Dienst aktiviert ist.

    Der Wert des Felds muss von 0.0 to 1.0 stammen, wobei 0.0 bedeutet, dass keine Logs gemeldet werden, und 1.0, dass Logs für alle Stichprobenpakete generiert werden. Wenn Sie das Logging aktivieren und die Abtastrate auf 0.0 festlegen, entspricht dies einer Deaktivierung des Loggings. Der Standardwert ist 1.0.

  • LOGGING_OPTIONAL: Die optionalen Felder, 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.
  • OPTIONAL_FIELDS ist eine durch Kommas getrennte Liste optionaler Felder, die Sie in die Logs aufnehmen möchten.

    Beispiel: serverInstance.vm,serverGkeDetails. Kann nur festgelegt werden, wenn LOGGING_OPTIONAL auf CUSTOM gesetzt ist.

API

Stellen Sie eine PATCH-Anfrage an die Methode regionBackendServices/patch:

      PATCH https://compute.googleapis.com/compute/v1/projects/`PROJECT_ID`/regions/`REGION`/backendServices/`BACKEND_SERVICE`
     

Alle optionalen Felder ausschließen

     "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "EXCLUDE_ALL_OPTIONAL"
      }
     

Alle optionalen Felder einschließen

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "INCLUDE_ALL_OPTIONAL"
      }
    }
    

Benutzerdefinierte Liste optionaler Felder hinzufügen

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "CUSTOM",
       "optionalFields": ["field1","field2",...]
      }
    }
    

Logging für vorhandenen Backend-Dienst deaktivieren

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 und anschließend auf Backend-Konfiguration.

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

  5. Wenn das Logging aktiviert bleibt, können Sie einen anderen Anteilswert als Abtastrate festlegen. Sie können eine Rate von 0.0 bis 1.0 (Standardwert) festlegen. Wenn Sie nur Logs für 20 % der Stichprobenpakete generieren möchten, setzen Sie den Wert auf 0.2.

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

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

gcloud

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

gcloud compute backend-services update BACKEND_SERVICE \
  --region=REGION \
  --no-enable-logging

Ersetzen Sie dabei Folgendes:

  • BACKEND_SERVICE: Der Name des Backend-Dienstes.
  • REGION ist die Region des Backend-Dienstes.

API

Stellen Sie eine PATCH-Anfrage an die Methode regionBackendServices/patch.

 PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE

 {
 "logConfig": {
   "enable": false
  }
 }
 

Logs ansehen

Wenn Logs in Cloud Logging aufgenommen und nicht über eine Logs Router-Senke ausgeschlossen werden, können Sie Logs mit der Cloud Logging API und der Google Cloud CLI lesen.

So rufen Sie alle Logs des externen Passthrough-Netzwerk-Load-Balancers auf:

Console

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

    Zum Log-Explorer

  2. Wählen Sie den Ressourcentyp Regel für externen Passthrough-Network Load Balancer aus.

  3. Wählen Sie den Lognamen loadbalancing.googleapis.com/flows aus.

Console-Abfrage

  1. Rufen Sie in der Google Cloud Console die Seite Log-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 PROJECT_ID durch Ihre Projekt-ID.

    resource.type="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    
  4. Klicken Sie auf Abfrage ausführen.

Logs für einen bestimmten Backend-Dienst aufrufen

So rufen Sie die Logs des externen Passthrough-Network Load Balancers für einen bestimmten Backend-Dienst auf:

Console-Abfrage

  1. Rufen Sie in der Google Cloud Console die Seite Log-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 PROJECT_ID durch Ihre Projekt-ID und BACKEND_SERVICE_NAME durch den Namen Ihres Back-End-Dienstes.

    resource.type="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    resource.labels.backend_service_name="BACKEND_SERVICE_NAME"
    
  4. Klicken Sie auf Abfrage ausführen.

Logs für eine Backend-Instanzgruppe aufrufen

So rufen Sie die Logs des externen Passthrough-Network Load Balancers für eine bestimmte Backend-Instanzgruppe auf:

Console-Abfrage

  1. Rufen Sie in der Google Cloud Console die Seite Log-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 PROJECT_ID durch Ihre Projekt-ID und BACKEND_GROUP_NAME durch den Namen der Instanzgruppe.

    resource.type="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    resource.labels.backend_group_name="BACKEND_GROUP_NAME"
    
  4. Klicken Sie auf Abfrage ausführen.

Logfelder

Logeinträge enthalten Pflichtfelder – die Standardfelder jedes Logdatensatzes – und optionale Felder, die zusätzliche Informationen enthalten. 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 connection hat beispielsweise das Format IpConnection. Dieses Format enthält die Quell- und Ziel-IP-Adresse sowie Protokoll und Port in einem einzigen Feld. Diese Felder mit Mehrfeldformat werden in der Datensatzformattabelle beschrieben.

Die überwachte Ressource ist loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule.

Feld Feldformat Feldtyp: Erforderlich oder optional Beschreibung
connection IpConnection Erforderlich 5-Tupel, das diese Verbindung beschreibt
startTime String Erforderlich Zeitstempel (RFC 3339-Datumsstring-Format) des ersten beobachteten Pakets während des aggregierten Zeitintervalls.
endTime String Erforderlich Zeitstempel (RFC 3339-Datumsstring-Format) des letzten beobachteten Pakets während des aggregierten Zeitintervalls.
bytesSent int64 Erforderlich Anzahl der Bytes, die vom Server an den Client gesendet werden.
bytesReceived int64 Erforderlich Anzahl der Bytes, die der Server vom Client erhalten hat.
packetsSent int64 Erforderlich Anzahl der Pakete, die vom Server an den Client gesendet werden.
packetsReceived int64 Erforderlich Anzahl der Pakete, die der Server vom Client erhalten hat.
rtt String Erforderlich

Die Latenz wird nur für TCP-Verbindungen gemessen. Die Latenz ist die Summe der geschätzten Netzwerk-Round-Trip-Zeit (RTT) plus der Zeit, die für die Verarbeitung des Pakets im Betriebssystem des Clients verbraucht wurde.

Bei Stichprobenpaketen wird die RTT aus der Perspektive eines Backends mit Load-Balancing berechnet. Dafür werden Zeitunterschiede zwischen dem Backend gemessen, das ein TCP-Segment sendet, und dem Backend, das eine TCP-Bestätigung für die Sequenznummer des gesendeten Segments empfängt.

Die Latenz wird als String formatiert, der mit der Anzahl von Sekunden beginnt und mit „s” endet, um Sekunden anzugeben. Nanosekunden werden als Sekundenbruchteile angegeben. Eine Latenz von 250 Millisekunden wird beispielsweise als „0,250000000s“ formatiert.

serverInstance InstanceDetails Optional Details zur Backend-VM-Instanz.
clientLocation GeographicDetails Optional Die verfügbaren Standortmetadaten des Clients.
serverGkeDetails GkeDetails Optional GKE-Metadaten für das Server-Backend. Nur verfügbar, wenn das Backend ein GKE-Endpunkt ist.
networkTier NetworkTierDetails Optional Netzwerkebene für externe Verbindungen, die nur ausgefüllt wird, wenn sich der Client nicht in Google Cloud befindet.

Feldformat von IpConnection

Feld Typ Beschreibung
clientIp String IP-Adresse des Clients
clientPort int32 Port des Clients. Nur für TCP- und UDP-Verbindungen festgelegt.
serverIp String Server-IP-Adresse (IP der Weiterleitungsregel)
serverPort int32 Serverport. Nur für TCP- und UDP-Verbindungen festgelegt.
protocol int32 IANA-Protokollnummer

Feldformat von InstanceDetails

Feld Typ Beschreibung
projectId String ID des Projekts, das die VM enthält
vm String Instanzname der VM
region String Region der VM
Zone String Zone der VM
vmIp String Primäre interne IPv4-Adresse der Netzwerkschnittstelle, die die Verbindung bereitgestellt hat

Feldformat von GeographicDetails

Feld Typ Beschreibung
continent String Kontinentname
regionCode String Ein Unicode-CLDR-Regionscode wie US oder FR. Für die meisten Länder entsprechen diese Codes den ISO-3166-2-Codes.
subRegion String Eine Unicode-CLDR-Unterteilungs-ID, z. B. eine Provinz oder ein Bundesland des Landes wie USCA oder CAON. Diese Unicode-Codes werden von den durch den ISO-Standard 3166-2 definierten Unterteilungen abgeleitet.
Ort String Der Name der Stadt, z. B. Mountain View für Mountain View, Kalifornien. Für diese Variable gibt es keine offizielle Liste gültiger Werte. Die Namen der Orte können US-ASCII-Buchstaben, Zahlen, Leerzeichen und die folgenden Zeichen enthalten: !#$%&'*+-.^_`|~
asn int32 Die Nummer des autonomen Systems (Autonomous System Number, ASN) des externen Netzwerks, zu dem der Endpunkt gehört.

Feldformat von GkeDetails

Feld Typ Beschreibung
Cluster ClusterDetails GKE-Clustermetadaten.
pod PodDetails GKE-Pod-Metadaten, die ausgefüllt werden, wenn die Quelle oder das Ziel des Traffics ein Pod ist.
Dienst ServiceDetails GKE-Dienstmetadaten, die nur in Dienstendpunkten ausgefüllt werden. Der Eintrag enthält bis zu zwei Dienste. Wenn mehr als zwei relevante Dienste vorhanden sind, enthält dieses Feld einen einzelnen Dienst mit einer speziellen MANY_SERVICES-Markierung.

Feldformat von ClusterDetails

Feld Typ Beschreibung
Cluster String Name des GKE-Clusters
clusterLocation String Speicherort des Clusters. Der Clusterstandort kann eine Zone oder Region sein.

Feldformat von PodDetails

Feld Typ Beschreibung
pod String Name des Pods.
podNamespace String Namespace des Pods.

Feldformat von ServiceDetails

Feld Typ Beschreibung
Dienst String Name des Dienstes. Wenn mehr als zwei relevante Dienste vorhanden sind, wird das Feld auf eine spezielle Markierung MANY_SERVICES gesetzt.
serviceNamespace String Namespace des Dienstes

Feldformat von NetworkTierDetails

Feld Typ Beschreibung
networkTier String In der Verbindung verwendete NetworkTier, eine der folgenden Optionen: [PREMIUM, STANDARD, FIXED_STANDARD, UNKNOWN].

Monitoring

Externe Passthrough-Network-Load-Balancer exportieren wichtige Messwerte nach Cloud Monitoring.

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

  • Konfiguration, Nutzung und Leistung eines Load Balancers bewerten
  • 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.

Monitoring-Dashboards aufrufen

Console

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

    Zu Monitoring

  2. Wählen Sie im Navigationsbereich die Option Dashboards aus.

  3. Wählen Sie das Dashboard Google Cloud Load Balancer aus. Es werden alle Load-Balancer angezeigt.

  4. Wählen Sie den Namen des Load-Balancers aus der Liste der Load-Balancer aus.

Im Bereich Details zum externen Passthrough-Network Load Balancer werden verschiedene Details zum ausgewählten Load Balancer angezeigt. In diesem Bereich werden Ihre aktuellen Konfigurationen angezeigt.

Im Bereich Schlüsselmesswerte werden Diagramme für alle Schlüsselmesswerte angezeigt. Klicken Sie auf Aufschlüsselungen, um spezifische Aufschlüsselungen einzusehen. In diesem Bereich werden Daten aus den bisherigen Konfigurationen angezeigt. Im Bereich Details zum externen Passthrough-Netzwerk-Load-Balancer werden nur die aktuellen Konfigurationen angezeigt. Weitere Informationen finden Sie unter Dashboards und Diagramme.

Benutzerdefinierte Monitoring-Dashboards definieren

Sie können benutzerdefinierte Monitoring-Dashboards über Messwerte des externen Passthrough-Netzwerk-Load-Balancers erstellen.

Eine Liste der erfassten Messwerte finden Sie unter Messwerte und Ressourcentypen. Unter Filter finden Sie eine Liste der Attribute, nach denen Sie Ihre Ergebnisse filtern können.

Console

  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.

    Suchen Sie nach dem Präfix loadbalancing.googleapis.com/l3/external, um Messwerte für den externen Passthrough-Netzwerk-Load-Balancer zu finden.

  6. Klicken Sie auf Speichern.

Monitoring-Benachrichtigungen definieren

Sie können Monitoring-Benachrichtigungen über verschiedene Messwerte des externen Passthrough-Netzwerk-Load-Balancers definieren:

Console

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

    Zu Monitoring

  2. Wählen Sie Benachrichtigungen > Richtlinie erstellen aus.

  3. Wählen Sie Ressourcentypen und -messwerte aus.

    Um Ressourcentypen und Messwerte für den externen Passthrough-Netzwerk-Load-Balancer zu finden, suchen Sie im Feld Ressourcentyp und Messwert suchen nach loadbalancing.googleapis.com/l3/external.

  4. Geben Sie eine Konfiguration an, um festzulegen, wann eine Benachrichtigung ausgelöst werden soll.

  5. Fügen Sie bei Bedarf Filter hinzu.

  6. Klicken Sie auf Speichern.

Häufigkeit und Speicherung von Messwertberichten

Messwerte für die externen Passthrough-Netzwerk-Load-Balancer werden in einminütigen Abständen nach Monitoring exportiert. Monitoring-Daten werden sechs 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 (1H), sechs Stunden (6H), einem Tag (1D), einer Woche (1W) und sechs Wochen (6W) bereitgestellt. Sie können die Analyse manuell in einem Intervall von sechs Wochen bis 60 Sekunden anfordern.

Messwerte und Ressourcentypen

Messwerte

Die folgenden Messwerte für externe Passthrough-Netzwerk-Load-Balancer werden an Monitoring gemeldet. Sie können diese Messwertnamen beim Erstellen von API-Anfragen verwenden.

metric_name Typ Beschreibung
loadbalancing.googleapis.com/l3/external/ingress_bytes_count Zähler Die Anzahl der Byte, die von einem Client an ein Backend eines externen Passthrough-Netzwerk-Load-Balancers gesendet wird. Bei TCP-Abläufen werden nur Bytes im Anwendungsstream gezählt.
loadbalancing.googleapis.com/l3/external/ingress_packets_count Zähler Die Anzahl der Pakete, die von einem Client an ein Backend eines externen Passthrough-Netzwerk-Load-Balancers gesendet wird.
loadbalancing.googleapis.com/l3/external/egress_bytes_count Zähler Die Anzahl der Byte, die von einem Backend eines externen Passthrough-Netzwerk-Load-Balancers an einen Client gesendet wird. Bei TCP-Abläufen werden nur Bytes im Anwendungsstream gezählt.
loadbalancing.googleapis.com/l3/external/egress_packets_count Zähler Die Anzahl der Pakete, die von einem Backend eines externen Passthrough-Netzwerk-Load-Balancers an einen Client gesendet wird.
loadbalancing.googleapis.com/l3/external/rtt_latencies Verteilung

Eine Verteilung von RTT, die über TCP-Verbindungen für externe Passthrough-Netzwerk-Load-Balancer-Abläufe gemessen wird.

Nur für TCP-Traffic verfügbar.

Ressourcentypen

Externe Passthrough-Network Load Balancer verwenden die folgenden Ressourcentypen:

  • tcp_lb_rule
  • udp_lb_rule
  • loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule

Ein externer Passthrough-Network Load Balancer kann TCP-, UDP-, ESP-, GRE-, ICMP- und ICMPv6-Traffic unterstützen.

Sie können den Ressourcentyp als tcp_lb_rule oder udp_lb_rule angeben, um überwachte Daten auf TCP- oder UDP-Protokolle zu beschränken. Sie können den Ressourcentyp als loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule angeben, um alle unterstützten Protokolle zu überwachen, einschließlich TCP-, UDP-, ESP-, GRE-, ICMP- und ICMPv6-Protokolle.

Filter

Die Messwerte werden für jeden externen Passthrough-Netzwerk-Load-Balancer zusammengefasst. Sie können zusammengefasste Messwerte nach den folgenden Dimensionen filtern.

Ressourcenlabels für tcp_lb_rule oder udp_lb_rule

Sie können Ihre Abfrage nach Ressource einschränken. Sie können Ergebnisse auch nach diesen Werten gruppieren.

resource.label.<var>LABEL_KEY</var>:
label_key Typ Beschreibung
project String Die Kennung des Google Cloud-Projekts, das dieser Ressource zugeordnet ist.
load_balancer_name String Der Name des Load-Balancers.
region String Die Region, in der sich das Backend des Load-Balancers befindet, z. B. us-central1, europe-west1, asia-east1.
network_name String Das VPC-Netzwerk, in dem sich das Load-Balancer-Back-End befindet.
backend_target_type String Gibt an, ob der externe Passthrough-Netzwerk-Load-Balancer zielpoolbasiert oder Backend-Dienst-basiert ist. Gültige Werte sind BACKEND_SERVICE und TARGET_POOL.
backend_target_name String Der Name des Zielpools für zielpoolbasierte externe Passthrough-Network Load Balancer. Bei Backend-Dienst-basierten externen Passthrough-Network Load Balancern der Name des Backend-Dienstes.
forwarding_rule_name String Der Name der Weiterleitungsregel.
forwarding_rule_network_tier String Die Netzwerkebene der Weiterleitungsregel.
backend_name String

Der Name des Back-Ends, das die Verbindung verarbeitet hat.

Bei einem Backend-Dienst-basierten externen Passthrough-Netzwerk-Load Balancer ist der Wert der Name der Backend-Instanzgruppe oder Netzwerk-Endpunktgruppe (NEG), die die Verbindung verarbeitet hat.

Bei einem zielpoolbasierten externen Passthrough-Network Load Balancer ist der Wert der Name des Zielpools.

backend_type String

Der Typ des Back-Ends, das die Verbindung verarbeitet hat.

Bei einem Backend-Dienst-basierten externen Passthrough-Network Load Balancer kann der Wert entweder INSTANCE_GROUP oder NETWORK_ENDPOINT_GROUP sein.

Bei einem zielpoolbasierten externen Passthrough-Network Load Balancer ist der Wert TARGET_POOL.

backend_scope String

Für einen Backend-Dienst-basierten externen Passthrough-Network Load Balancer die Zone oder Region der Backend-Instanzgruppe oder NEG.

Bei einem zielpoolbasierten Netzwerk-Load-Balancer ist der Wert UNSUPPORTED_FOR_TARGET_POOL.

backend_scope_type String

Der Typ des Bereichs der Backend-Gruppe, von der die Verbindung verarbeitet wurde. Gültige Werte sind ZONE und REGION.

Bei einem zielpoolbasierten Netzwerk-Load-Balancer ist der Wert UNSUPPORTED_FOR_TARGET_POOL.

backend_failover_configuration String Die Failover-Konfiguration der Backend-Gruppe, von der die Verbindung verarbeitet wurde. Gültige Werte sind PRIMARY, BACKUP und UNKNOWN.
backend_subnetwork_name String Der Name des Subnetzwerks des Backends, das die Verbindung erhalten hat.
endpoint_zone String Die Zone der Backend-VM, die die Verbindung verarbeitet hat.

Ressourcenlabels für loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule

Sie können Ihre Abfrage nach Ressource einschränken. Sie können Ergebnisse auch nach diesen Werten gruppieren.

resource.label.<var>LABEL_KEY</var>:
label_key Typ Beschreibung
project String Die Kennung des Google Cloud-Projekts, das dieser Ressource zugeordnet ist.
region String Die Region, in der sich das Backend des Load-Balancers befindet, z. B. us-central1, europe-west1, asia-east1.
backend_network_name String Das VPC-Netzwerk, in dem sich das Backend des Load-Balancers befindet.
backend_target_type String Der Typ des Backend-Ziels, das die Verbindung verarbeitet hat. Gültige Werte sind BACKEND_SERVICE und TARGET_POOL.
backend_service_name String Der Name des Backend-Dienstes, von dem die Verbindung verarbeitet wurde. Wenn backend_target_type den Wert TARGET_POOL hat, lautet der Wert UNSUPPORTED_FOR_TARGET_POOL.
primary_target_pool String Der Name des primären Zielpools. Wenn backend_target_type den Wert BACKEND_SERVICE hat, lautet der Wert UNSUPPORTED_FOR_BACKEND_SERVICE.
target_pool String Der Name des Zielpools. Wenn backend_target_type den Wert BACKEND_SERVICE hat, lautet der Wert UNSUPPORTED_FOR_BACKEND_SERVICE.
forwarding_rule_name String Der Name der Weiterleitungsregel des externen Passthrough-Network Load Balancers.
backend_group_name String Der Name der Backend-Gruppe, die die Verbindung verarbeitet hat. Wenn backend_target_type den Wert TARGET_POOL hat, lautet der Wert UNSUPPORTED_FOR_TARGET_POOL.
backend_group_type String

Der Typ der Backend-Gruppe, die die Verbindung verarbeitet hat.

Wenn backend_target_type den Wert BACKEND_SERVICE hat, lautet der Wert entweder INSTANCE_GROUP oder NETWORK_ENDPOINT_GROUP.

Wenn backend_target_type den Wert TARGET_POOL hat, lautet der Wert UNSUPPORTED_FOR_TARGET_POOL.

backend_group_scope String Der Bereich der Back-End-Gruppe (Name der Zone oder Region), von der die Verbindung verarbeitet wurde. Wenn backend_target_type den Wert TARGET_POOL hat, lautet der Wert UNSUPPORTED_FOR_TARGET_POOL.
backend_subnetwork_name String Der Name des Subnetzwerks des Backends, das die Verbindung erhalten hat.
backend_zone String Die Zone der Backend-VM, die die Verbindung verarbeitet hat.

Messwertlabels

Sie können Ihre Abfrage nach Messwertlabel einschränken. Sie können Ergebnisse auch nach diesen Werten gruppieren.

metric.label.<var>LABEL_KEY</var>:
label_key Typ Beschreibung
client_country String Das Land des Clients, der die Verbindung zum externen Passthrough-Network Load Balancer initiiert hat.
client_continent String Der Kontinent des Clients, der die Verbindung zum externen Passthrough-Network Load Balancer initiiert hat.
protocol String

Das Protokoll in der Verbindung für die Ressource loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule.

Dieses Feld ist für die Ressourcen tcp_lb_rule und udp_lb_rule leer.

Monitoring von API-Anfragen

Sie können über die Messwerte des externen Passthrough-Netzwerk-Load-Balancers mithilfe der Monitoring API-Anfrage v3 projects.timeSeries.list beliebige Abfragen erstellen. Die genaue Struktur der verschiedenen Definitionen folgt der allgemeinen Monitoring-Filter-Semantik.

Beispiel: API-Anfragen

  • Alle Byte abrufen, die von allen externen Passthrough-Netzwerk-Load-Balancern im Projekt zwischen 12:00 Uhr und 12:02 Uhr UTC am 1. Juli 2019 mit 1 m-Aggregaten gesendet wurden.

    timeSeries.list-Parameter:

    • Name: Projekte/PROJECT_ID
    • Filter: resource.type = "tcp_lb_rule" UND metric.name="loadbalancing.googleapis.com/l3/external/egress_bytes_count"
    • interval.start_time: 2019-07-01T12:00:00Z
    • interval.end_time: 2019-07-01T12:02:00Z
    • aggregation.alignmentPeriod: 60s
    • aggregation.crossSeriesReducer: REDUCE_SUM
    • aggregation.perSeriesAligner: ALIGN_SUM
  • Durchschnittliche RTT-Messung über alle externen Passthrough-Netzwerk-Load-Balancer im Projekt zwischen 12:19 Uhr und 12:20 Uhr UTC am 1. Juli 2019, aufgeschlüsselt nach Land des Clients, abrufen.

    timeSeries.list-Parameter:

    • Name: Projekte/PROJECT_ID
    • Filter: resource.type = "tcp_lb_rule" UND metric.name="loadbalancing.googleapis.com/l3/external/rtt_latencies"
    • interval.start_time: 2019-07-01T12:19:00Z
    • interval.end_time: 2019-07-01T12:20:00Z
    • aggregation.alignmentPeriod: 60s
    • aggregation.crossSeriesReducer: REDUCE_SUM
    • aggregation.groupByFields: metric.label.client_country
    • aggregation.perSeriesAligner: ALIGN_PERCENTILE_50
  • Alle Byte abrufen, die von einem bestimmten externen Passthrough-Netzwerk-Load-Balancer zwischen 12:19 Uhr und 12:20 Uhr UTC am 1. Juli 2019, aufgeschlüsselt nach Endpunktzone und Clientkontinent, gesendet wurden:

    timeSeries.list-Parameter:

    • Name: Projekte/PROJECT_ID
    • Filter: resource.type = "tcp_lb_rule" UND resource.label.load_balancer_name = "netlb-bs-1" UND metric.name="loadbalancing.googleapis.com/l3/external/ingress_bytes_count"
    • interval.start_time: 2019-07-01T12:19:00Z
    • interval.end_time: 2017-07-01T12:20:00Z
    • aggregation.alignmentPeriod: 60s
    • aggregation.crossSeriesReducer: REDUCE_SUM
    • aggregation.groupByFields: metric.label.client_continent
    • aggregation.groupByFields: resource.label.endpoint_zone
    • aggregation.perSeriesAligner: ALIGN_SUM

Nächste Schritte