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 Ihres externen Passthrough-Netzwerk-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-Netzwerk-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).
Externe Passthrough-Netzwerk-Load-Balancer-Logs für Verbindungen vom Client zur Backend-Instanz werden so formatiert:
connection.clientIp
: 203.0.113.7connection.serverIp
: 198.51.100.99bytesSent
: 1256bytesReceived
: 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:
Aggregation: Die Stichprobenpakete werden über ein Intervall von fünf Sekunden aggregiert, um einen einzelnen Ablaufeintrag zu erzeugen.
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 Wert1.0
(100 %) hat, werden alle Stichprobenpakete verarbeitet.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 wieserverInstance.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 dem übergeordneten Feld neue optionale Felder hinzugefügt werden. Wenn Sie beispielsweise optionalFieldA
angeben, wird ein neues Feld, das den Logs mit dem Namen optionalFieldA.subField1
hinzugefügt wird, automatisch hinzugefügt.
Eine Anleitung zum Anpassen optionaler Felder finden Sie unter Logging in einem neuen Backend-Dienst aktivieren.
Anforderungen an Quell-IP-Adressen des Antwortpakets
Logging nimmt die Antwortpakete von den Backend-VMs nur dann als Stichprobe, 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
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
- Klicken Sie auf den Namen des Load-Balancers.
- Klicken Sie auf Bearbeiten und anschließend auf Backend-Konfiguration.
- Wählen Sie Backend-Dienst erstellen aus und füllen Sie die Pflichtfelder für den Backend-Dienst aus.
- Klicken Sie im Abschnitt Logging das Kästchen Logging aktivieren an.
- Legen Sie einen Anteilswert für die Abtastrate fest. Sie können eine Rate von
0.0
bis1.0
(Standardwert) festlegen. - Optional: Wenn Sie alle optionalen Felder in die Logs aufnehmen möchten, klicken Sie im Abschnitt Optionale Felder auf Alle optionalen Felder einschließen.
- Klicken Sie auf Aktualisieren, um die Bearbeitung des Backend-Dienstes abzuschließen.
- Klicken Sie auf Aktualisieren, um die Bearbeitung des Load-Balancers abzuschließen.
gcloud
Erstellen Sie den Backend-Dienst, um das Logging mit dem Befehl gcloud compute backend-services create
zu aktivieren.
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
Dabei gilt:
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, wobei0.0
bedeutet, dass keine Logs generiert werden, und1.0
, dass Logs für alle Stichprobenpakete generiert werden. Wenn Sie das Logging aktivieren und die Abtastrate auf0.0
festlegen, entspricht dies einer Deaktivierung des Loggings. Der Standardwert ist1.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 inOPTIONAL_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, wennLOGGING_OPTIONAL
aufCUSTOM
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 einschließen
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE, "optionalMode": "CUSTOM", "optionalFields": ["field1","field2",...] } }
Logging für vorhandenen Backend-Dienst aktivieren
Console
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
- Klicken Sie auf den Namen des Load-Balancers.
- Klicken Sie auf Bearbeiten und anschließend auf Backend-Konfiguration.
- Klicken Sie neben Ihrem Backend-Dienst auf Bearbeiten.
- Klicken Sie im Abschnitt Logging das Kästchen Logging aktivieren an.
- Legen Sie einen Anteilswert für die Abtastrate fest. Sie können eine Rate von
0.0
bis1.0
(Standardwert) festlegen. - Optional: Wenn Sie alle optionalen Felder in die Logs aufnehmen möchten, klicken Sie im Abschnitt Optionale Felder auf Alle optionalen Felder einschließen.
- Klicken Sie auf Aktualisieren, um die Bearbeitung des Backend-Dienstes abzuschließen.
- 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
Dabei gilt:
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, wobei0.0
bedeutet, dass keine Logs gemeldet werden, und1.0
, dass Logs für alle Stichprobenpakete generiert werden. Wenn Sie das Logging aktivieren und die Abtastrate auf0.0
festlegen, entspricht dies einer Deaktivierung des Loggings. Der Standardwert ist1.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 inOPTIONAL_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, wennLOGGING_OPTIONAL
aufCUSTOM
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 einschließen
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE, "optionalMode": "CUSTOM", "optionalFields": ["field1","field2",...] } }
Logging für vorhandenen Backend-Dienst deaktivieren
Console
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
Klicken Sie auf den Namen des Load-Balancers.
Klicken Sie auf
Bearbeiten und anschließend auf Backend-Konfiguration.Wenn Sie das Logging vollständig deaktivieren möchten, entfernen Sie im Abschnitt Logging das Häkchen aus dem Kästchen Logging aktivieren.
Wenn das Logging aktiviert bleibt, können Sie einen anderen Anteilswert als Abtastrate festlegen. Sie können eine Rate von
0.0
bis1.0
(Standardwert) festlegen. Wenn Sie nur Logs für 20 % der Stichprobenpakete generieren möchten, setzen Sie den Wert auf0.2
.Klicken Sie auf Aktualisieren, um das Bearbeiten des Backend-Dienstes abzuschließen.
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
Dabei gilt:
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
Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.
Wählen Sie den Ressourcentyp Regel für externen Passthrough-Network Load Balancer aus.
Wählen Sie den Lognamen loadbalancing.googleapis.com/flows aus.
Console-Abfrage
Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.
Klicken Sie auf den Umschalter Abfrage anzeigen.
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"
Klicken Sie auf Abfrage ausführen.
Logs für einen bestimmten Backend-Dienst aufrufen
So rufen Sie die Logs des externen Passthrough-Netzwerk-Load-Balancers für einen bestimmten Backend-Dienst auf:
Console-Abfrage
Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.
Klicken Sie auf den Umschalter Abfrage anzeigen.
Alternativ können Sie Folgendes in das Abfragefeld einfügen. Ersetzen Sie
PROJECT_ID
durch Ihre Projekt-ID undBACKEND_SERVICE_NAME
durch den Namen Ihres Backend-Dienstes.resource.type="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule" logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows" resource.labels.backend_service_name="BACKEND_SERVICE_NAME"
Klicken Sie auf Abfrage ausführen.
Logs für eine Backend-Instanzgruppe aufrufen
So rufen Sie die Logs des externen Passthrough-Netzwerk-Load-Balancers für eine bestimmte Backend-Instanzgruppe auf:
Console-Abfrage
Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.
Klicken Sie auf den Umschalter Abfrage anzeigen.
Alternativ können Sie Folgendes in das Abfragefeld einfügen. Ersetzen Sie
PROJECT_ID
durch Ihre Projekt-ID undBACKEND_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"
Klicken Sie auf Abfrage ausführen.
Logfelder
Logdatensätze umfassen Pflichtfelder, die die Standardfelder jedes Logeintrags sind, 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 | Netzwerkstufe für externe Verbindungen, die nur ausgefüllt werden, wenn sich der Client nicht innerhalb von 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, von der die Verbindung bereitgestellt wurde |
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 | Pod-Details | GKE-Pod-Metadaten, die ausgefüllt werden, wenn die Quelle oder das Ziel des Traffics ein Pod ist. |
Dienst | Dienstdetails | 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 verwendeter NetworkTier, einer der folgenden Werte: [PREMIUM, STANDARD, FIXED_STANDARD, UNKNOWN]. |
Monitoring
Externe Passthrough-Netzwerk-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
Rufen Sie in der Google Cloud Console die Seite Monitoring auf.
Wählen Sie im Navigationsbereich die Option Dashboards aus.
Wählen Sie das Dashboard Google Cloud Load Balancer aus. Es werden alle Load-Balancer angezeigt.
Wählen Sie den Namen des Load-Balancers aus der Liste der Load-Balancer aus.
Im Bereich Details zum externen Passthrough-Netzwerk-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
Rufen Sie in der Google Cloud Console die Seite Monitoring auf.
Wählen Sie Dashboards > Dashboard erstellen aus.
Klicken Sie auf Diagramm hinzufügen.
Geben Sie dem Diagramm einen Namen.
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.Klicken Sie auf Speichern.
Monitoring-Benachrichtigungen definieren
Sie können Monitoring-Benachrichtigungen über verschiedene Messwerte des externen Passthrough-Netzwerk-Load-Balancers definieren:
Console
Rufen Sie in der Google Cloud Console die Seite Monitoring auf.
Wählen Sie Benachrichtigungen > Richtlinie erstellen aus.
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
.Geben Sie eine Konfiguration an, um festzulegen, wann eine Benachrichtigung ausgelöst werden soll.
Fügen Sie bei Bedarf Filter hinzu.
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-Netzwerk-Load-Balancer verwenden die folgenden Ressourcentypen:
tcp_lb_rule
udp_lb_rule
loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule
Ein externer Passthrough-Netzwerk-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. Für Backend-Dienst-basierte externe Passthrough-Network Load Balancer 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-Network Load Balancer ist der Wert der Name der Backend-Instanzgruppe oder der 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 Bei einem zielpoolbasierten externen Passthrough-Network Load Balancer ist der Wert |
backend_scope |
String | Bei einem 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 |
backend_scope_type |
String | Der Typ des Bereichs der Backend-Gruppe, von der die Verbindung verarbeitet wurde. Gültige Werte sind Bei einem zielpoolbasierten Netzwerk-Load-Balancer ist der Wert |
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-Netzwerk-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 Wenn |
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 Dieses Feld ist für die Ressourcen |
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"
UNDmetric.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
- Name: Projekte/
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"
UNDmetric.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
- Name: Projekte/
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"
UNDresource.label.load_balancer_name = "netlb-bs-1"
UNDmetric.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
- Name: Projekte/
Nächste Schritte
- Konzeptionelle Informationen zu externen Passthrough-Netzwerk-Load-Balancern
- Externen Passthrough-Netzwerk-Load-Balancer einrichten
- Informationen zu Monitoring, Messwerte, Zeitreihen und Ressourcen lesen
- Mehr über Weiterleitungsregeln erfahren
- Mehr zur Fehlerbehebung bei Logging-Problemen