Cette page vous explique comment configurer et utiliser Cloud Logging et Cloud Monitoring pour les équilibreurs de charge réseau proxy.
Ressources de surveillance
Le tableau suivant spécifie les noms de ressources pour les équilibreurs de charge.
Équilibreur de charge réseau proxy externe régional Équilibreur de charge réseau proxy interne régional Équilibreur de charge réseau proxy interne interrégional Équilibreur de charge réseau proxy externe global |
Équilibreur de charge réseau proxy classique | |
---|---|---|
Type de ressource surveillée Logging | "Règle d'équilibreur de charge réseau proxy"l4_proxy_rule |
"Règle d'équilibreur de charge réseau du proxy externe global"tcp_ssl_proxy_rule |
Type de ressource surveillée Monitoring | "Règle d'équilibreur de charge réseau proxy"l4_proxy_rule |
"Règle d'équilibreur de charge réseau du proxy externe global"tcp_ssl_proxy_rule |
Journalisation pour les équilibreurs de charge réseau proxy
Les journaux fournissent des informations utiles pour dépanner et surveiller les équilibreurs de charge. Les journaux sont agrégés pour chaque connexion et vous donnent des insights sur comment chaque connexion est acheminée vers les backends de diffusion.
L'utilisation des journaux n'entraîne aucuns frais supplémentaires. Cependant, en fonction de la manière dont vous importez les journaux, les tarifs standards de Cloud Logging, BigQuery ou Pub/Sub s'appliquent. En outre, l'activation des journaux n'a pas d'incidence sur les performances de l'équilibreur de charge.
Échantillonnage et collecte des journaux
Les connexions qui quittent les instances de machine virtuelle (VM) de l'équilibreur de charge et y entrent sont échantillonnées. Ces connexions échantillonnées sont ensuite traitées pour générer des journaux. Vous contrôlez la fraction des connexions qui sont émises en tant qu'entrées de journal grâce au paramètre logConfig.sampleRate. Lorsque logConfig.sampleRate
est défini sur 1.0
(100 %), cela signifie que les journaux sont générés pour toutes les connexions et écrits dans Cloud Logging.
Activer la journalisation sur un nouveau service de backend
gcloud
Exécutez la commande gcloud compute backend-services create
.
Pour les équilibreurs de charge réseau proxy régionaux externes et internes :
gcloud compute backend-services create BACKEND_SERVICE \ --region=REGION \ --enable-logging \ --logging-sample-rate=SAMPLE_RATE
Pour les équilibreurs de charge réseau proxy externes globaux, les équilibreurs de charge réseau proxy classiques ou les équilibreurs de charge réseau proxy internes interrégionaux :
gcloud compute backend-services create BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=SAMPLE_RATE
Remplacez les éléments suivants :
BACKEND_SERVICE
: nom du service de backend.REGION
: région du service de backend à créer.SAMPLE_RATE
: ce champ ne peut être spécifié que si la journalisation est activée pour ce service de backend.
La valeur du champ doit provenir de
0.0 to 1.0
, où0.0
signifie qu'aucun journal n'est signalé et1.0
signifie que toutes les connexions sont journalisées. L'activation de la journalisation en définissant le taux d'échantillonnage sur0.0
équivaut à désactiver la journalisation. La valeur par défaut est1.0
.
API
Envoyez une requête POST
à la méthode regionBackendServices.insert
.
Pour les équilibreurs de charge réseau internes proxy régionaux :
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "INTERNAL_MANAGED", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
Pour les équilibreurs de charge réseau externes régionaux proxy :
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL_MANAGED", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
Pour les équilibreurs de charge réseau externes proxy globaux :
Envoyez une requête POST
à la méthode backendServices.insert
.
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL_MANAGED", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
Pour les équilibreurs de charge réseau proxy classiques :
Envoyez une requête POST
à la méthode backendServices.insert
.
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
Pour les équilibreurs de charge réseau proxy internes interrégionaux :
Envoyez une requête POST
à la méthode backendServices.insert
.
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "INTERNAL_MANAGED", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
Remplacez les éléments suivants :
BACKEND_SERVICE
: nom du service de backend.SAMPLE_RATE
: ce champ ne peut être spécifié que si la journalisation est activée pour ce service de backend.
La valeur du champ doit provenir de
0.0 to 1.0
, où0.0
signifie qu'aucun journal n'est signalé et1.0
signifie que toutes les connexions sont journalisées. L'activation de la journalisation en définissant le taux d'échantillonnage sur0.0
équivaut à désactiver la journalisation. La valeur par défaut est1.0
.
Activer la journalisation sur un service de backend existant
gcloud
Exécutez la commande gcloud
compute backend-services update
.
Pour les équilibreurs de charge réseau proxy régionaux externes et internes :
gcloud compute backend-services update BACKEND_SERVICE \ --region=REGION \ --enable-logging \ --logging-sample-rate=SAMPLE_RATE
Pour les équilibreurs de charge réseau proxy externes globaux, les équilibreurs de charge réseau proxy classiques ou les équilibreurs de charge réseau proxy internes interrégionaux :
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --enable-logging \ --logging-sample-rate=SAMPLE_RATE
Remplacez les éléments suivants :
BACKEND_SERVICE
: nom du service de backend.REGION
: région du service de backend à créer.SAMPLE_RATE
: ce champ ne peut être spécifié que si la journalisation est activée pour ce service de backend.
La valeur du champ doit provenir de
0.0 to 1.0
, où0.0
signifie qu'aucun journal n'est signalé et1.0
signifie que toutes les connexions sont journalisées. L'activation de la journalisation en définissant le taux d'échantillonnage sur0.0
équivaut à désactiver la journalisation. La valeur par défaut est1.0
.
API
Envoyez une requête PATCH
à la méthode regionBackendServices/patch
.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE
Pour les équilibreurs de charge réseau internes proxy régionaux :
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "INTERNAL_MANAGED", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
Pour les équilibreurs de charge réseau externes régionaux proxy :
{ "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL_MANAGED", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
Pour les équilibreurs de charge réseau externes proxy globaux :
Envoyez une requête PATCH
à la méthode backendServices/patch
.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE { "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL_MANAGED", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
Pour les équilibreurs de charge réseau proxy classiques :
Envoyez une requête PATCH
à la méthode backendServices/patch
.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE { "name": "BACKEND_SERVICE", "loadBalancingScheme": "EXTERNAL", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
Pour les équilibreurs de charge réseau proxy internes interrégionaux :
Envoyez une requête PATCH
à la méthode backendServices/patch
.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE { "name": "BACKEND_SERVICE", "loadBalancingScheme": "INTERNAL_MANAGED", "logConfig": { "enable": true, "sampleRate": SAMPLE_RATE } }
Remplacez les éléments suivants :
PROJECT_ID
: nom de votre projet.BACKEND_SERVICE
: nom du service de backend.SAMPLE_RATE
: ce champ ne peut être spécifié que si la journalisation est activée pour ce service de backend.
La valeur du champ doit provenir de
0.0 to 1.0
, où0.0
signifie qu'aucun journal n'est signalé et1.0
signifie que toutes les connexions sont journalisées. L'activation de la journalisation en définissant le taux d'échantillonnage sur0.0
équivaut à désactiver la journalisation. La valeur par défaut est1.0
.
Activer la journalisation sur un service de backend existant
gcloud
Utilisez la commande gcloud compute backend-services update
.
Pour les équilibreurs de charge réseau proxy régionaux externes et internes :
gcloud compute backend-services update BACKEND_SERVICE \ --region=REGION \ --no-enable-logging
Pour les équilibreurs de charge réseau proxy externes globaux, les équilibreurs de charge réseau proxy classiques ou les équilibreurs de charge réseau proxy internes interrégionaux :
gcloud compute backend-services update BACKEND_SERVICE \ --global \ --no-enable-logging
Remplacez les éléments suivants :
BACKEND_SERVICE
: nom du service de backend.REGION
: région du service de backend.
API
Pour les équilibreurs de charge réseau proxy régionaux externes et internes :
Envoyez une requête PATCH
à la méthode regionBackendServices/patch
:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE { "logConfig": { "enable": false } }
Pour les équilibreurs de charge réseau proxy externes globaux, les équilibreurs de charge réseau proxy classiques ou les équilibreurs de charge réseau proxy internes interrégionaux :
Envoyez une requête PATCH
à la méthode backendServices/patch
:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE { "logConfig": { "enable": false } }
Remplacez les éléments suivants :
PROJECT_ID
: nom de votre projet.REGION
: région du service de backend.BACKEND_SERVICE
: nom du service de backend.
Afficher les journaux
Lorsque les journaux sont ingérés dans Cloud Logging et non exclus via un récepteur de routeur de journaux, vous pouvez les lire à l'aide de l'API Cloud Logging et Google Cloud CLI.
Pour afficher tous les journaux, procédez comme suit :
Console
Dans Google Cloud Console, accédez à la page Explorateur de journaux.
Sélectionnez le type de ressource Règle d'équilibreur de charge réseau proxy.
Sélectionnez le nom du journal loadbalancing.googleapis.com/connections.
Requête de la console
Dans Google Cloud Console, accédez à la page Explorateur de journaux.
Cliquez sur le bouton Afficher la requête.
Collez le texte suivant dans le champ de la requête.
resource.type="LOG_RESOURCE_TYPE" logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com/connections"
Cliquez sur Exécuter la requête.
Remplacez les éléments suivants :
LOG_RESOURCE_TYPE
: type de ressource surveillée de journalisation défini surl4_proxy_rule
outcp_ssl_proxy_rule
.PROJECT_ID
: nom de votre projet.
Afficher les journaux d'un service de backend spécifique
Pour afficher les journaux d'un service de backend spécifique, procédez comme suit :
Requête de la console
Dans Google Cloud Console, accédez à la page Explorateur de journaux.
Cliquez sur le bouton Afficher la requête.
Collez le texte suivant dans le champ de la requête.
resource.type="LOG_RESOURCE_TYPE" logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com/connections" resource.labels.backend_service_name="BACKEND_SERVICE_NAME"
Cliquez sur Exécuter la requête.
Remplacez les éléments suivants :
LOG_RESOURCE_TYPE
: type de ressource surveillée de journalisation défini surl4_proxy_rule
outcp_ssl_proxy_rule
.PROJECT_ID
: nom de votre projet.BACKEND_SERVICE_NAME
: nom du service de backend.
Afficher les journaux pour un groupe d'instances backend
Pour afficher les journaux d'un groupe d'instances backend spécifique, procédez comme suit :
Requête de la console
Dans Google Cloud Console, accédez à la page Explorateur de journaux.
Cliquez sur le bouton Afficher la requête.
Collez le texte suivant dans le champ de la requête.
resource.type="LOG_RESOURCE_TYPE" logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com/connections" resource.labels.backend_group_name="BACKEND_GROUP_NAME"
Cliquez sur Exécuter la requête.
Remplacez les éléments suivants :
LOG_RESOURCE_TYPE
: type de ressource surveillée de journalisation défini surl4_proxy_rule
outcp_ssl_proxy_rule
.PROJECT_ID
: nom de votre projet.BACKEND_GROUP_NAME
: nom du groupe d'instances.
Contenu consigné
Les entrées de journal contiennent des informations utiles pour surveiller et déboguer votre trafic. Les enregistrements de journal contiennent des champs obligatoires, qui sont les champs par défaut de chaque enregistrement de journal.
Champ | Format du champ | Type de champ : obligatoire ou facultatif | Description |
---|---|---|---|
severity timestamp receiveTimestamp insertID logName |
LogEntry | Obligatoire | Champs généraux décrits dans une entrée de journal. |
resource | MonitoredResource | Obligatoire | MonitoredResource est le type de ressource associé à une entrée de journal. MonitoredResourceDescriptor décrit le schéma d'un objet |
jsonPayload | object (format Struct) | Obligatoire | Charge utile de l'entrée de journal, exprimée sous la forme d'un objet JSON. L'objet JSON contient les champs suivants :
|
Champs de journal
Les enregistrements de journal contiennent des champs obligatoires, qui sont les champs par défaut de chaque enregistrement de journal.
Certains champs de journal contiennent plusieurs données dans un même champ. Ces champs de journal sont au format multi-champ. Par exemple, le champ connection
est au format IpConnection
, qui contient l'adresse IP et les ports sources et de destination ainsi que le protocole, dans un seul champ. Ces champs e journal particuliers sont décrits dans le tableau relatif au format des enregistrements ci-dessous.
Le tableau suivant liste tous les champs de journal obligatoires pour la ressource l4_proxy_rule.
Champ | Format du champ | Description |
---|---|---|
connexion | IpConnection | 5-tuple décrivant cette connexion. |
startTime | chaîne | Horodatage (format de chaîne de date RFC 3339) lorsque la connexion du client a été acceptée par l'équilibreur de charge. |
endTime | chaîne | Horodatage (format de chaîne de date RFC 3339) lorsque le client ou le backend a mis fin à la connexion. |
bytesSent | int64 | Nombre d'octets envoyés par le serveur au client. |
bytesReceived | int64 | Nombre d'octets reçus par le serveur en provenance du client. |
Format de champ IpConnection
Champ | Type | Description |
---|---|---|
clientIp | chaîne | Adresse IP du client |
clientPort | int32 | Port client. Défini pour les connexions TCP et UDP uniquement. |
serverIp | chaîne | Adresse IP du serveur (adresse IP de la règle de transfert) |
serverPort | int32 | Port du serveur. Défini pour les connexions TCP et UDP uniquement. |
protocol | int32 | Numéro de protocole IANA |
Champ d'erreur proxyStatus
Le champ proxyStatus
contient une chaîne qui spécifie la raison pour laquelle l'équilibreur de charge a renvoyé une erreur. Le champ proxyStatus
comporte deux parties : proxyStatus error
et proxyStatus details
.
Cette section décrit les chaînes compatibles avec le champ proxyStatus error
.
Le champ proxyStatus error s'applique aux équilibreurs de charge suivants :
- Équilibreur de charge réseau proxy externe global
- Équilibreur de charge réseau proxy externe régional
- Équilibreur de charge réseau proxy interne interrégional
- Équilibreur de charge réseau proxy interne régional
Erreur proxyStatus | Description | Codes de réponse d'accompagnement courants |
---|---|---|
destination_unavailable
|
L'équilibreur de charge considère que le backend est indisponible. Par exemple, les tentatives récentes de communication avec le backend ont échoué, ou une vérification de l'état a peut-être entraîné un échec. | 500, 503 |
connection_timeout
|
La tentative d'ouverture d'une connexion au backend par l'équilibreur de charge a expiré. | 504 |
connection_terminated
|
La connexion de l'équilibreur de charge au backend s'est terminée avant la réception d'une réponse complète. Ce
|
0, 502, 503 |
connection_refused
|
La connexion de l'équilibreur de charge au backend est refusée. | 502, 503 |
connection_limit_reached
|
L'équilibreur de charge est configuré pour limiter le nombre de connexions au backend dont il dispose, et cette limite a été dépassée. Ce
|
502, 503 |
destination_not_found
|
L'équilibreur de charge ne peut pas déterminer le backend approprié à utiliser pour cette requête. Par exemple, le backend peut ne pas être configuré. | 500, 404 |
dns_error
|
L'équilibreur de charge a rencontré une erreur DNS lors de la tentative de recherche d'une adresse IP pour le nom d'hôte du backend. | 502, 503 |
proxy_configuration_error
|
L'équilibreur de charge a rencontré une erreur de configuration interne. | 500 |
proxy_internal_error
|
L'équilibreur de charge a rencontré une erreur interne. | 0, 500, 502 |
proxy_internal_response
|
L'équilibreur de charge a généré la réponse sans tenter de se connecter au backend. | Tout code de réponse en fonction du type de problème. Par exemple, le code de réponse 410 signifie que le backend n'est pas disponible en raison d'un défaut de paiement.
|
tls_protocol_error
|
L'équilibreur de charge a rencontré une erreur TLS lors du handshake TLS. | 0 |
tls_certificate_error
|
L'équilibreur de charge a rencontré une erreur au moment de la vérification du certificat présenté par le serveur. | 0 |
tls_alert_received
|
L'équilibreur de charge a rencontré une alerte TLS fatale lors du handshake TLS. | 0 |
Champ "proxyStatus details"
Le champ proxyStatus
contient une chaîne qui spécifie la raison pour laquelle l'équilibreur de charge a renvoyé une erreur. Le champ proxyStatus
comporte deux parties : proxyStatus error
et proxyStatus details
.
Le champ proxyStatus details
est facultatif et ne s'affiche que lorsque des informations supplémentaires sont disponibles.
Cette section décrit les chaînes compatibles avec le champ proxyStatus details
.
Le champ proxyStatus details s'applique aux équilibreurs de charge suivants :
- Équilibreur de charge réseau proxy externe global
- Équilibreur de charge réseau proxy externe régional
- Équilibreur de charge réseau proxy interne régional
- Équilibreur de charge réseau proxy interne interrégional
Détails du proxyStatus | Description | Codes de réponse d'accompagnement courants |
---|---|---|
client_disconnected_before_any_response
|
La connexion au client a été interrompue avant que l'équilibreur de charge n'ait envoyé de réponse. | 0 |
backend_connection_closed
|
Le backend a fermé de manière inattendue sa connexion à l'équilibreur de charge. Cela peut se produire si l'équilibreur de charge envoie du trafic vers une autre entité, par exemple une application tierce dont le délai avant expiration TCP est inférieur à celui de l'équilibreur de charge, qui est de 10 minutes (600 secondes). | 502 |
failed_to_connect_to_backend
|
L'équilibreur de charge n'a pas pu se connecter au backend. Cet échec inclut les délais avant expiration pendant la phase de connexion. | 503 |
failed_to_pick_backend
|
L'équilibreur de charge n'a pas pu sélectionner un backend opérationnel pour traiter la requête. | 502 |
handled_by_identity_aware_proxy
|
Cette réponse a été générée par Identity-Aware Proxy (IAP) lors de la vérification d'identité du client avant d'autoriser l'accès. | 200, 302, 400, 401, 403, 500, 502 |
request_overall_timeout
|
Le délai avant expiration de la requête totale a été dépassé. | 408, 503, 504 |
tls_version_not_supported
|
La version du protocole TLS est reconnue, mais n'est pas prise en charge. L'erreur entraîne une connexion TLS fermée. | 0 |
unknown_psk_identity
|
Les serveurs envoient cette erreur lorsque l'établissement de clés PSK est requis, mais que le client ne fournit pas d'identité PSK acceptable. Cette erreur entraîne une connexion TLS fermée. | 0 |
no_application_protocol
|
Envoyés par les serveurs lorsqu'une extension client "application_layer_protocol_negociation" n'annonce que des protocoles non compatibles avec le serveur. Consultez la section Extension de négociation de protocole de couche application TLS. Cette erreur entraîne une connexion TLS fermée. | 0 |
no_certificate
|
Aucun certificat n'a été trouvé. Cette erreur entraîne une connexion TLS fermée. | 0 |
bad_certificate
|
Un certificat n'est pas valide ou contient des signatures qui n'ont pas pu être validées. Cette erreur entraîne une connexion TLS fermée. | 0 |
unsupported_certificate
|
Le type d'un certificat n'est pas compatible. L'erreur entraîne une connexion TLS fermée. | 0 |
certificate_revoked
|
Un certificat a été révoqué par son signataire. L'erreur entraîne une connexion TLS fermée. | 0 |
certificate_expired
|
Un certificat a expiré ou n'est pas valide. L'erreur entraîne une connexion TLS fermée. | 0 |
certificate_unknown
|
Des problèmes non spécifiés sont survenus lors du traitement du certificat, ce qui le rend inacceptable. Cette erreur entraîne une connexion TLS fermée. | 0 |
unknown_ca
|
Une chaîne de certificats valide ou une chaîne partielle a été reçue, mais le certificat n'a pas été accepté, car il n'a pas pu être localisé ni mis en correspondance avec une ancre de confiance connue. L'erreur entraîne une connexion TLS fermée. | 0 |
unexpected_message
|
Un message inapproprié, tel qu'un message de handshake incorrect ou de données d'application prématurées a été reçu. Cette erreur entraîne une connexion TLS fermée. | 0 |
bad_record_mac
|
La protection d'un enregistrement reçu ne peut pas être annulée. L'erreur entraîne une connexion TLS fermée. | 0 |
record_overflow
|
Un enregistrement TLSCiphertext a été reçu d'une longueur supérieure à 214+256 octets ou un enregistrement a été déchiffré comme enregistrement TLSPlaintext avec plus de 214 octets (ou une autre limite négociée). L'erreur entraîne une connexion TLS fermée.
|
0 |
handshake_failure
|
Impossible de négocier un ensemble acceptable de paramètres de sécurité compte tenu des options disponibles. Cette erreur entraîne une connexion TLS fermée. | 0 |
illegal_parameter
|
Un champ du handshake était incorrect ou incohérent avec les autres champs. Cette erreur entraîne une connexion TLS fermée. | 0 |
access_denied
|
Un certificat ou une clé PSK valide a été reçu, mais le client n'a pas commencé la négociation lorsque le contrôle des accès a été appliqué. Cette erreur entraîne une connexion TLS fermée. | 0 |
decode_error
|
Un message n'a pas pu être décodé, car certains champs étaient en dehors de la plage spécifiée ou la longueur du message était incorrecte. Cette erreur entraîne une connexion TLS fermée. | 0 |
decrypt_error
|
Échec d'une opération cryptographique de handshake (et non de la couche d'enregistrement), y compris l'impossibilité de valider correctement une signature ou de valider un message terminé ou un liant PSK. Cette erreur entraîne une connexion TLS fermée. | 0 |
insufficient_security
|
Une négociation a échoué spécifiquement car le serveur requiert des paramètres plus sécurisés que ceux acceptés par le client. Cette erreur entraîne une connexion TLS fermée. | 0 |
inappropriate_fallback
|
Envoyée par un serveur en réponse à une tentative de nouvelle connexion non valide d'un client. Cette erreur entraîne une connexion TLS fermée. | 0 |
user_cancelled
|
L'utilisateur annule le handshake pour une raison sans rapport avec un échec de protocole. Cette erreur entraîne une connexion TLS fermée. | 0 |
missing_extension
|
Envoyés par les points de terminaison qui reçoivent un message de handshake ne contenant pas d'extension obligatoire à envoyer pour la version TLS proposée ou d'autres paramètres négociés. Cette erreur entraîne une connexion TLS fermée. | 0 |
unsupported_extension
|
Envoyés par les points de terminaison qui reçoivent un message de handshake contenant une extension dont l'inclusion dans le message de handshake donné est interdite, ou contenant des extensions dans ServerHello ou Certificate , et qui n'a pas été proposé dans l'élément ClientHello ou CertificateRequest correspondant.
Cette erreur entraîne une connexion TLS fermée.
|
0 |
unrecognized_name
|
Envoyés par les serveurs lorsqu'aucun serveur ne peut être identifié par le nom fourni par le client via l'extension "server_name". Consultez les définitions des extensions TLS. | 0 |
bad_certificate_status_response
|
Envoyée par les clients lorsqu'une réponse OCSP non valide ou non acceptable est fournie par le serveur via l'extension "status_request". Consultez les définitions des extensions TLS. Cette erreur entraîne une connexion TLS fermée. | 0 |
load_balancer_configured_resource_limits_reached
|
L'équilibreur de charge a atteint les limites de ressources configurées, telles que le nombre maximal de connexions. | 400, 500, 503 |
Entrées de journal de connexion TLS ayant échoué
Lorsque la connexion TLS entre le client et l'équilibreur de charge échoue avant qu'un backend ne soit sélectionné, les entrées de journal enregistrent les erreurs. Vous pouvez configurer les services de backend avec différents taux d'échantillonnage des journaux. Lorsqu'une connexion TLS échoue, le taux d'échantillonnage du journal de la connexion TLS est le plus élevé pour tous les service de backend. Par exemple, si vous avez configuré deux services de backend avec un taux d'échantillonnage de journalisation de 0.3
et 0.5
, le taux d'échantillonnage du journal de connexion TLS ayant échoué est 0.5
.
Vous pouvez identifier les échecs de connexions TLS en vérifiant les détails d'entrée de journal suivants:
- Le type d'erreur proxyStatus est
tls_alert_received
,tls_certificate_error
,tls_protocol_error
ouconnection_terminated
. - Aucune information de backend n'est disponible.
L'exemple suivant montre une entrée de journal TLS ayant échoué avec le champ proxyStatus error
:
json_payload: { @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" proxyStatus: "error="tls_alert_received"; details="server_to_client: handshake_failure"" log_name: "projects/529254013417/logs/mockservice.googleapis.com%20name" } http_request { latency { nanos: 12412000 } protocol: "HTTP/1.0" remote_ip: "127.0.0.2" } resource { type: "mock_internal_http_lb_rule" labels { backend_name: "" backend_scope: "" backend_scope_type: "UNKNOWN" backend_target_name: "" backend_target_type: "UNKNOWN" backend_type: "UNKNOWN" forwarding_rule_name: "l7-ilb-https-forwarding-rule-dev" matched_url_path_rule: "UNKNOWN" network_name: "lb-network" region: "REGION" target_proxy_name: "l7-ilb-https-proxy-dev" url_map_name: "" } } timestamp: "2023-08-15T16:49:30.850785Z"
Étiquettes de ressource
Le tableau suivant liste les libellés de ressources pour le type de ressource l4_proxy_rule
.
Champ | Type | Description |
---|---|---|
network_name | chaîne | Nom du réseau VPC de l'équilibreur de charge. |
project_id | chaîne | Identifiant du projet Google Cloud associé à cette ressource. |
region | chaîne | Région dans laquelle l'équilibreur de charge est défini. |
target_proxy_name | chaîne | Nom de l'objet de proxy cible référencé par la règle de transfert. |
forwarding_rule_name | chaîne | Nom de l'objet de règle de transfert. |
loadbalancing_scheme_name | chaîne | Attribut sur la règle de transfert et sur le service de backend d'un équilibreur de charge qui indique si celui-ci peut être utilisé pour le trafic interne ou externe. |
backend_target_name | chaîne | Nom du backend sélectionné pour gérer la requête. |
backend_target_type | chaîne | Type de la cible de backend (BACKEND_SERVICE / UNKNOWN) . |
backend_name | chaîne | Nom du groupe d'instances backend ou groupe de points de terminaison du réseau (NEG). |
backend_type | chaîne | Type de backend : un groupe d'instances ou un NEG, ou inconnu. Cloud Logging consigne les requêtes lorsque backend_type est |
backend_scope | chaîne | Champ d'application du backend : nom de la zone ou nom de la région. Peut être UNKNOWN quand backend_name est inconnu. |
backend_scope_type | chaîne | Champ d'application du backend (REGION/ZONE ). Peut être UNKNOWN quand backend_name est inconnu. |
Surveillance
Les équilibreurs de charge réseau proxy exportent des données de surveillance vers Cloud Monitoring.
Les métriques de surveillance peuvent être utilisées pour effectuer les opérations suivantes :
- Évaluer la configuration, l'utilisation et les performances d'un équilibreur de charge
- Résoudre les problèmes
- Améliorer l'utilisation des ressources et l'expérience utilisateur
En plus des tableaux de bord prédéfinis proposés dans Monitoring, vous pouvez créer des tableaux de bord personnalisés, configurer des alertes et interroger les métriques à l'aide de l'API Cloud Monitoring.
Afficher les tableaux de bord Monitoring
Dans la console Google Cloud, accédez à la page Monitoring.
Si Ressources apparaît dans le volet de navigation, sélectionnez Ressources, puis Équilibreurs de charge Google Cloud. Sinon, sélectionnez Tableaux de bord, puis le tableau de bord intitulé Équilibreurs de charge Google Cloud.
Cliquez sur le nom de votre équilibreur de charge.
Le volet de gauche affiche diverses informations concernant l'équilibreur de charge. Le volet de droite présente les graphiques de séries temporelles. Cliquez sur le lien Répartitions pour afficher des répartitions spécifiques.
Fréquence et conservation des rapports sur les métriques
Les métriques des équilibreurs de charge sont exportées vers Monitoring par lots de précision d'une minute. Les données de surveillance sont conservées pendant six semaines. Les métriques sont basées sur l'échantillonnage du trafic (le taux d'échantillonnage est dynamique et ne peut pas être ajusté).
Le tableau de bord fournit une analyse des données à des intervalles par défaut d'une heure (1H), six heures (6H), un jour (1D), une semaine (1W) et six semaines (6W). Vous pouvez demander manuellement une analyse à un intervalle compris entre une minute et six semaines.
Métriques des équilibreurs de charge réseau proxy classiques
Les métriques suivantes pour les équilibreurs de charge réseau proxy classiques sont consignées dans Monitoring.
Métrique | Nom | Description |
---|---|---|
Trafic entrant | tcp_ssl_proxy/ingress_bytes_count |
Nombre d'octets envoyés par des points de terminaison externes vers des backends configurés via Google Front End (GFE), en octets par seconde. |
Trafic sortant | tcp_ssl_proxy/egress_bytes_count |
Nombre d'octets envoyés par des backends configurés à des points de terminaison externes via le GFE (en octets par seconde). |
Connexions ouvertes | tcp_ssl_proxy/open_connections |
Nombre de connexions ouvertes au moment de l'échantillon donné. Les échantillons sont prélevés à une minute d'intervalle. |
Nouvelles connexions par seconde | tcp_ssl_proxy/new_connections |
Nombre de connexions créées (le client est connecté au backend). La précision de comptage est calculée par minute, mais les graphiques sont ajustés pour s'afficher par seconde. Pour en savoir plus, consultez la documentation de Monitoring. |
Connexions fermées par seconde | tcp_ssl_proxy/closed_connections |
Nombre de connexions qui ont été fermées. La précision de comptage est calculée par minute, mais les graphiques sont ajustés pour s'afficher par seconde. Pour en savoir plus, consultez la documentation de Monitoring. |
DAR d'interface | tcp_ssl_proxy/frontend_tcp_rtt |
Distribution du délai aller-retour (DAR) lissé mesurée pour chaque connexion entre le client et le GFE (mesurée par la pile TCP du GFE, chaque fois que les octets de la couche d'application passent du GFE au client). Le DAR lissé est un algorithme qui traite les variations et les anomalies pouvant se produire dans les mesures de latence DAR. |
Métriques pour d'autres équilibreurs de charge
Les métriques suivantes pour les équilibreurs de charge réseau proxy internes régionaux, les équilibreurs de charge réseau proxy externes régionaux, les équilibreurs de charge réseau proxy internes interrégionaux et les équilibreurs de charge réseau proxy externes globaux sont consignés dans Monitoring.
Métrique | Nom | Description |
---|---|---|
Trafic entrant | l4_proxy/ingress_bytes_count |
Nombre d'octets envoyés par le client à la VM de backend à l'aide du proxy. Échantillonné toutes les 60 secondes. Après échantillonnage, les données ne sont pas visibles pendant un délai pouvant atteindre 210 secondes. |
Trafic sortant | l4_proxy/egress_bytes_count |
Nombre d'octets envoyés par la VM de backend au client à l'aide du proxy. Échantillonné toutes les 60 secondes. Après échantillonnage, les données ne sont pas visibles pendant un délai pouvant atteindre 210 secondes. |
Connexions fermées par seconde | l4_proxy/tcp/closed_connections_count |
Nombre de connexions terminées à l'aide d'un message TCP RST ou TCP FIN. Échantillonné toutes les 60 secondes. Après échantillonnage, les données ne sont pas visibles pendant un délai pouvant atteindre 210 secondes. |
Filtrer les dimensions pour les métriques
Les métriques sont agrégées pour chaque équilibreur de charge. Ces métriques peuvent être décomposées selon les dimensions suivantes :
Propriété | Description |
---|---|
BACKEND SCOPE | Champ d'application (région ou zone) du groupe d'instances ayant diffusé la connexion. |
BACKEND ZONE | Si le groupe d'instances était un groupe d'instances zonal, il s'agit de la zone du groupe d'instances ayant diffusé la connexion. |
BACKEND REGION | Si le groupe d'instances était un groupe d'instances régional, il s'agit de la région du groupe d'instances qui a diffusé la connexion. |
PROXY CONTINENT | Continent du GFE qui a mis fin à la connexion utilisateur TCP/SSL, par exemple America , Europe , Asia .
|
INSTANCE GROUP | Nom du groupe d'instances ayant reçu la connexion utilisateur |
FORWARDING RULE | Nom de la règle de transfert utilisée pour se connecter au GFE. |
CLIENT COUNTRY | Pays de l'utilisateur. |
Étapes suivantes
- Pour en savoir plus sur le fonctionnement des règles SSL, consultez la page Concepts de règle SSL.
- Pour en savoir plus sur le fonctionnement des équilibreurs de charge réseau proxy externes, consultez la page Présentation de l'équilibreur de charge réseau proxy externe.
- Pour en savoir plus sur le fonctionnement des équilibreurs de charge réseau proxy internes, consultez la page Présentation de l'équilibreur de charge réseau proxy interne.