Journalisation et surveillance de l'équilibreur de charge d'application interne

Ce document fournit les informations dont vous avez besoin pour comprendre les métriques de journalisation et de surveillance des équilibreurs de charge d'application internes. Les métriques de journalisation et de surveillance des équilibreurs de charge d'application internes régionaux et internes interrégionaux sont identiques.

Journalisation

Vous pouvez activer la journalisation par service de backend. Le mappage d'URL d'un équilibreur de charge d'application interne peut faire référence à plusieurs services de backend. Vous devrez peut-être activer la journalisation pour plusieurs services de backend, en fonction de votre configuration.

Échantillonnage et collecte des journaux

Google Cloud échantillonne les paquets qui quittent les instances de machine virtuelle (VM) de backend d'équilibreur de charge et y entrent. Ces paquets échantillonnés sont traités afin de générer des journaux.

Tous les paquets ne sont pas échantillonnés. Google Cloud échantillonne un sous-ensemble variable de paquets en fonction du volume de trafic sur l'hôte physique. Le taux d'échantillonnage le plus faible est de un paquet sur 1 024. Le taux d'échantillonnage est contrôlé de manière dynamique par Google Cloud. Vous ne pouvez pas l'ajuster.

L'échantillonnage de paquets interagit avec les règles de pare-feu de la manière suivante :

  • Les paquets sont échantillonnés avant l'application des règles de pare-feu de sortie.
  • Les paquets sont échantillonnés après l'application des règles de pare-feu d'entrée.

Après échantillonnage des paquets, Google Cloud traite les paquets échantillonnés en suivant la procédure suivante :

  1. Agrégation : les paquets échantillonnés sont agrégés sur un intervalle de cinq secondes pour produire une seule entrée de flux.

  2. Échantillonnage de journal configurable (secondaire) : il s'agit d'un deuxième processus d'échantillonnage, qui échantillonne les flux. Vous contrôlez la fraction des entrées de flux qui sont émises en tant qu'entrées de journal grâce au paramètre logConfig.sampleRate. Lorsque la valeur de logConfig.sampleRate est définie sur 1.0 (100 %), cela signifie que tous les paquets échantillonnés sont traités.

  3. Écriture dans Logging : les entrées de journal sont écrites dans Cloud Logging.

Champs facultatifs

Les enregistrements de journal contiennent des champs obligatoires et des champs facultatifs. La section Contenu consigné répertorie les champs facultatifs et les champs obligatoires. Tous les champs obligatoires sont toujours inclus. Vous pouvez personnaliser quels sont les champs facultatifs à conserver.

  • Si vous sélectionnez Inclure tous les champs facultatifs, tous les champs facultatifs du format d'enregistrement du journal sont inclus dans les journaux de flux. Lorsque de nouveaux champs facultatifs sont ajoutés au format d'enregistrement, les journaux de flux incluent automatiquement les nouveaux champs.

  • Si vous sélectionnez Exclure tous les champs facultatifs, tous les champs facultatifs sont omis.

  • Si vous sélectionnez Personnalisé, vous pouvez spécifier les champs facultatifs que vous souhaitez inclure, par exemple tls.protocol,tls.cipher.

Pour obtenir des instructions sur la personnalisation des champs facultatifs, consultez la section Activer la journalisation sur un service de backend existant.

Activer la journalisation sur un service de backend existant

Pour les équilibreurs de charge d'application internes régionaux, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Équilibrage de charge.

    Accéder à la page "Équilibrage de charge"

  2. Cliquez sur le nom de votre équilibreur de charge.

  3. Cliquez sur Modifier ().

  4. Cliquez sur Configuration du backend.

  5. Cliquez sur Modifier () à côté de votre service de backend.

  6. Cliquez sur Configurations avancées (affinité de session, délai avant expiration du drainage de connexion).

  7. Cliquez sur Activer la journalisation.

  8. Définissez un taux d'échantillonnage. Vous pouvez définir un nombre compris entre 0.0 et 1.0, où 0.0 signifie qu'aucune requête n'est enregistrée et 1.0 signifie que 100 % des requêtes sont enregistrées. La valeur par défaut est 1.0.

  9. Facultatif : pour inclure tous les champs facultatifs dans les journaux, dans la section Champs facultatifs, cliquez sur Inclure tous les champs facultatifs.

  10. Pour terminer la modification du service de backend, cliquez sur Mettre à jour.

  11. Pour terminer la modification de l'équilibreur de charge, cliquez sur Mettre à jour.

gcloud

Pour mettre à jour le service de backend afin d'activer la journalisation, exécutez la commande gcloud compute backend-services update.

gcloud compute backend-services update BACKEND_SERVICE \
    --enable-logging \
    --logging-sample-rate=RATE \
    --region=REGION \
    --logging-optional=LOGGING_OPTIONAL_MODE \
    --logging-optional-fields=OPTIONAL_FIELDS

Où :

  • --enable-logging active la journalisation pour ce service de backend.
  • --logging-sample-rate permet de spécifier une valeur entre 0.0 et 1.0, où 0.0 signifie qu'aucune requête n'est enregistrée et 1.0 signifie que 100 % des requêtes sont enregistrées. Ce paramètre n'est pertinent que lorsqu'il est associé au paramètre --enable-logging. L'activation de la journalisation en définissant le taux d'échantillonnage sur 0.0 équivaut à désactiver la journalisation. La valeur par défaut est 1.0.
  • --logging-optional vous permet de spécifier les champs facultatifs que vous souhaitez inclure dans les journaux :

    • INCLUDE_ALL_OPTIONAL pour inclure tous les champs facultatifs.

    • EXCLUDE_ALL_OPTIONAL (par défaut) pour exclure tous les champs facultatifs.

    • CUSTOM pour inclure une liste personnalisée de champs facultatifs que vous spécifiez dans OPTIONAL_FIELDS.

  • --logging-optional-fields vous permet de spécifier une liste de champs facultatifs séparés par une virgule que vous souhaitez inclure dans les journaux.

    Par exemple, tls.protocol,tls.cipher ne peut être défini que si LOGGING_OPTIONAL_MODE est défini sur CUSTOM.

Pour les équilibreurs de charge d'application internes interrégionaux, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Équilibrage de charge.

    Accéder à la page "Équilibrage de charge"

  2. Cliquez sur le nom de votre équilibreur de charge.

  3. Cliquez sur Modifier ().

  4. Cliquez sur Configuration du backend.

  5. Cliquez sur Modifier () à côté de votre service de backend.

  6. Cliquez sur Configurations avancées (affinité de session, délai avant expiration du drainage de connexion).

  7. Cliquez sur Activer la journalisation.

  8. Définissez un taux d'échantillonnage. Vous pouvez définir un nombre compris entre 0.0 et 1.0, où 0.0 signifie qu'aucune requête n'est enregistrée et 1.0 signifie que 100 % des requêtes sont enregistrées. La valeur par défaut est 1.0.

  9. Facultatif : pour inclure tous les champs facultatifs dans les journaux, dans la section Champs facultatifs, cliquez sur Inclure tous les champs facultatifs.

  10. Pour terminer la modification du service de backend, cliquez sur Mettre à jour.

  11. Pour terminer la modification de l'équilibreur de charge, cliquez sur Mettre à jour.

gcloud

Pour mettre à jour le service de backend afin d'activer la journalisation, exécutez la commande gcloud compute backend-services update.

gcloud compute backend-services update BACKEND_SERVICE \
    --enable-logging \
    --logging-sample-rate=RATE \
    --global \
    --logging-optional=LOGGING_OPTIONAL_MODE \
    --logging-optional-fields=OPTIONAL_FIELDS

Où :

  • --enable-logging active la journalisation pour ce service de backend.
  • --logging-sample-rate permet de spécifier une valeur entre 0.0 et 1.0, où 0.0 signifie qu'aucune requête n'est enregistrée et 1.0 signifie que 100 % des requêtes sont enregistrées. Ce paramètre n'est pertinent que lorsqu'il est associé au paramètre --enable-logging. L'activation de la journalisation en définissant le taux d'échantillonnage sur 0.0 équivaut à désactiver la journalisation. La valeur par défaut est 1.0.
  • --logging-optional vous permet de spécifier les champs facultatifs que vous souhaitez inclure dans les journaux :

    • INCLUDE_ALL_OPTIONAL pour inclure tous les champs facultatifs.

    • EXCLUDE_ALL_OPTIONAL (par défaut) pour exclure tous les champs facultatifs.

    • CUSTOM pour inclure une liste personnalisée de champs facultatifs que vous spécifiez dans OPTIONAL_FIELDS.

  • --logging-optional-fields vous permet de spécifier une liste de champs facultatifs séparés par une virgule que vous souhaitez inclure dans les journaux.

    Par exemple, tls.protocol,tls.cipher ne peut être défini que si LOGGING_OPTIONAL_MODE est défini sur CUSTOM.

Une fois la journalisation activée sur le service de backend, chaque requête HTTP(S) est consignée via Cloud Logging.

Afficher les journaux

Pour afficher les journaux, accédez à la page Explorateur de journaux dans la console Google Cloud.

Les journaux de l'équilibreur de charge d'application internes sont indexés d'abord par réseau, puis par région.

  • Pour afficher les journaux de tous les équilibreurs de charge d'application internes, sélectionnez Règle d'équilibreur de charge d'application interne dans le premier menu déroulant.
  • Pour afficher les journaux d'un seul réseau, sélectionnez Règle d'équilibrage de charge d'application interne, puis le nom d'un réseau.
  • Pour afficher les journaux d'une seule région du réseau, sélectionnez Règle d'équilibrage de charge d'application interne > NETWORK > REGION.

Les champs de journal de type booléen n'apparaissent généralement que s'ils comportent la valeur true. Si un champ booléen a la valeur false, il est omis du journal.

Le codage UTF-8 est appliqué aux champs de journaux. Les caractères qui ne sont pas au format UTF-8 sont remplacés par des points d'interrogation.

Vous pouvez configurer l'exportation de métriques basées sur les journaux pour les journaux de ressources (resource.type="internal_http_lb_rule"). Les métriques créées sont basées sur la ressource "Règle d'équilibreur de charge d'application interne", disponible dans les tableaux de bord Cloud Monitoring:

Accéder à Monitoring

Contenu consigné

Les entrées des journaux de l'équilibreur de charge d'application interne contiennent des informations utiles pour surveiller et déboguer votre trafic HTTP(S). Les enregistrements de journal contiennent des champs obligatoires, qui sont les champs par défaut de chaque enregistrement de journal, ainsi que des champs facultatifs qui ajoutent des informations supplémentaires sur votre trafic HTTP(S). Ils peuvent être omis pour réduire les coûts de stockage. Les entrées de journal contiennent les types d'informations suivants :

  • Informations générales figurant dans la plupart des journaux Google Cloud, telles que la gravité, l'ID de projet, le numéro de projet et l'horodatage, comme décrit dans LogEntry.
  • Champs de journal HttpRequest.

Le format "multi-champs" de certains champs affiche plusieurs données dans un même champ. Par exemple, le champ tls est au format TlsDetails, qui contient le protocole TLS et l'algorithme de chiffrement TLS dans un seul champ. Ces champs particuliers sont décrits dans le tableau sur le format des enregistrements ci-dessous.

Champ Type Type de champ : obligatoire ou facultatif Description
logName chaîne Requis Nom de la ressource du journal à laquelle appartient cette entrée de journal.
Au format "projects/PROJECT_ID/logs/requests".
timestamp chaîne Requis Heure à laquelle la requête a commencé.
severity Format LogSeverity Requis Gravité de l'entrée de journal. La valeur par défaut est LogSeverity.DEFAULT.
httpRequest Objet HttpRequest Requis Proto HttpRequest qui décrit la requête HTTP(S) en cours de journalisation.
trace chaîne Requis Nom de ressource de la trace associée à l'entrée de journal, le cas échéant. S'il contient un nom de ressource relatif, le nom est supposé être associé à https://tracing.googleapis.com. Exemple :projects/PROJECT_ID/traces/06796866738c859f2f19b7cfb3214824

Les équilibreurs de charge d'application internes ne sont pas compatibles avec ce champ.

spanId chaîne Requis ID de délai dans la trace associée à l'entrée de journal. Pour les délais de trace, cette chaîne utilise le même format que l'API Trace v2 : encodage hexadécimal à 16 caractères d'un tableau de 8 octets, tel que 000000000000004a.

Les équilibreurs de charge d'application internes ne sont pas compatibles avec ce champ.

resource Objet MonitoredResource Requis

La ressource surveillée qui a généré cette entrée de journal.

L'objet MonitoredResourceDescriptor décrit le schéma d'un objet MonitoredResource à l'aide d'un nom de type et d'un ensemble de libellés.

Par exemple, les descripteurs de ressources surveillées pour les équilibreurs de charge d'application internes ont le type de ressource internal_http_lb_rule et utilisent des libellés de ressources pour identifier la ressource réelle et ses attributs. Pour obtenir la liste des libellés de ressources, consultez la section Libellés de ressources pour resource.type="internal_http_lb_rule".

jsonPayload object (format Struct) Requis Charge utile de l'entrée de journal, exprimée sous la forme d'un objet JSON. L'objet JSON contient les champs suivants :
  • tls
  • proxyStatus
  • backendTargetProjectNumber
  • serviceDirectoryService
  • cloudFitExperiment
  • cloudFitFault
  • serviceExtensionInfo
  • mtls
chaîne Requis

Le champ proxyStatus contient une chaîne qui spécifie la raison pour laquelle l'équilibreur de charge d'application interne a renvoyé le HttpRequest.status. Ce champ n'est renseigné que lorsque le proxy renvoie un code d'erreur avec 4xx ou 5xx.

Le champ n'est pas consigné si la valeur est une chaîne vide. Pour en savoir plus, consultez la section Message proxyStatus.

chaîne Requis Le champ backendTargetProjectNumber contient le numéro de projet qui identifie le propriétaire du service de backend ou du bucket backend.
chaîne Requis Le champ serviceDirectoryService contient le nom du service de l'Annuaire des services sur lequel l'erreur Cloud FIT a été configurée.
chaîne Requis Le champ cloudFitExperiment contient le nom du test Cloud FIT.
chaîne Requis Le champ cloudFitFault contient le nom de l'erreur injectée par un test de défaillance Cloud FIT dans ce chemin de requête.
ServiceExtensionInfo Requis Le champ serviceExtensionInfo stocke des informations sur les flux gRPC de l'équilibreur de charge vers les extensions de service. Pour en savoir plus, consultez les données enregistrées pour les extensions d'accroche.
TlsDetails Facultatif Le champ tls contient les informations TlsDetails qui spécifient les métadonnées TLS pour la connexion entre le client et l'équilibreur de charge d'application interne. Ce champ n'est disponible que si le client utilise le chiffrement TLS/SSL.
MtlsDetails Facultatif Le champ mtls contient la valeur MtlsDetails qui spécifie les métadonnées mTLS pour la connexion entre le client et l'équilibreur de charge d'application interne. Ce champ n'est disponible que si l'équilibreur de charge utilise le protocole d'authentification TLS mutuelle (mTLS) d'interface.

Format de champ TlsDetails

Champ Format du champ Type de champ : obligatoire ou facultatif Description
protocol chaîne Facultatif Protocole TLS utilisé par les clients pour établir une connexion avec l'équilibreur de charge. Les valeurs possibles sont TLS 1.0, 1.1, 1.2, 1.3, et QUIC. Cette valeur est définie sur NULL si le client n'utilise pas le chiffrement TLS/SSL.
cipher chaîne Facultatif Algorithme de chiffrement TLS que les clients peuvent utiliser pour établir une connexion avec l'équilibreur de charge. Cette valeur est définie sur NULL si le client n'utilise pas HTTP(S) ou s'il n'utilise pas le chiffrement TLS/SSL.

Format de champ MtlsDetails

Champ Format du champ Type de champ : obligatoire ou facultatif Description
clientCertPresent Bool Facultatif

true si le client a fourni un certificat lors du handshake TLS. Sinon, false.

clientCertChainVerified Bool Facultatif

true si la chaîne de certificats client est validée par rapport à une configuration TrustStore configurée ou false.

clientCertError chaîne Facultatif

Chaînes prédéfinies représentant les conditions d'erreur. Pour plus d'informations sur les chaînes d'erreur, consultez la section Modes de validation des clients mTLS.

clientCertSha256Fingerprint chaîne Facultatif

Empreinte SHA-256 du certificat client, encodée en base64.

clientCertSerialNumber chaîne Facultatif

Numéro de série du certificat client. Si le numéro de série est plus de 50 octets, la chaîne client_cert_serial_number_exceeded_size_limit est ajoutée à client_cert_error et le numéro de série est défini sur une chaîne vide.

clientCertValidStartTime chaîne Facultatif

Horodatage (format de chaîne de date RFC 3339) avant lequel le certificat client n'est pas valide. Par exemple, 2022-07-01T18:05:09+00:00.

clientCertValidEndTime chaîne Facultatif

Horodatage (format de chaîne de date RFC 3339) après lequel le certificat client n'est pas valide. Par exemple, 2022-07-01T18:05:09+00:00.

clientCertSpiffeId chaîne Facultatif

L'ID SPIFFE du champ "Autre nom de l'objet (SAN)". Si la valeur n'est pas valide ou dépasse 2 048 octets, l'ID SPIFFE est défini sur une chaîne vide.

Si l'ID SPIFFE dépasse 2 048 octets, la chaîne client_cert_spiffe_id_exceeded_size_limit est ajoutée à client_cert_error.

clientCertUriSans chaîne Facultatif

Liste des extensions SAN de type URI encodées en base64, séparées par une virgule. Les extensions SAN sont extraites du certificat client. L'ID SPIFFE n'est pas inclus dans le champ client_cert_uri_sans.

Si le champ client_cert_uri_sans comporte plus de 512 octets, la chaîne client_cert_uri_sans_exceeded_size_limit est ajoutée à client_cert_error et la liste d'éléments séparés par des virgules est définie sur une chaîne vide.

clientCertDnsnameSans chaîne Facultatif

Liste des extensions SAN de type DNSName encodées en base64, séparées par une virgule. Les extensions SAN sont extraites du certificat client.

Si le champ client_cert_dnsname_sans comporte plus de 512 octets, la chaîne client_cert_dnsname_sans_exceeded_size_limit est ajoutée à client_cert_error et la liste d'éléments séparés par des virgules est définie sur une chaîne vide.

clientCertIssuerDn chaîne Facultatif

Champ Issuer (émetteur) complet, encodé en base64, tiré du certificat.

Si le champ client_cert_issuer_dn dépasse 512 octets, la chaîne client_cert_issuer_dn_exceeded_size_limit est ajoutée à client_cert_error et client_cert_issuer_dn est défini sur une chaîne vide.

clientCertSubjectDn chaîne Facultatif

Champ Subject (objet) complet, encodé en base64, tiré du certificat.

Si le champ client_cert_subject_dn dépasse 512 octets, la chaîne client_cert_subject_dn_exceeded_size_limit est ajoutée à client_cert_error et client_cert_subject_dn est défini sur une chaîne vide.

clientCertLeaf chaîne Facultatif

Certificat d'entité finale du client pour une connexion mTLS établie où le certificat a été validé. L'encodage des certificats est conforme à RFC 9440 : le certificat DER binaire est encodé en base64 (sans sauts de ligne, espaces ni autres caractères en dehors de l'alphabet en base64) et est délimité par des signes deux-points de chaque côté.

Si client_cert_leaf dépasse 16 Ko non encodé, client_cert_validated_leaf_exceeded_size_limit est défini sur client_cert_error et client_cert_leaf est défini sur une chaîne vide.

clientCertChain chaîne Facultatif

Liste de certificats séparés par une virgule (dans l'ordre TLS standard) de la chaîne de certificats client pour une connexion mTLS établie où le certificat client a été validé, sans inclure le certificat d'entité finale. L'encodage du certificat est conforme à la norme RFC 9440.

Si la taille combinée de client_cert_leaf et client_cert_chain avant encodage en base64 dépasse 16 Ko, la chaîne client_cert_validated_chain_exceeded_size_limit est ajoutée à client_cert_error et client_cert_chain est défini sur une chaîne vide.

Étiquettes de ressource

Le tableau suivant liste les libellés de ressources pour resource.type="internal_http_lb_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.
url_map_name chaîne Nom de l'objet de mappage d'URL configuré pour sélectionner un service de backend.
forwarding_rule_name chaîne Nom de l'objet de règle de transfert.
target_proxy_name chaîne Nom de l'objet de proxy cible référencé par la règle de transfert.
matched_url_path_rule chaîne Règle de chemin de mappage d'URL ou règle de routage configurée dans le cadre de la clé de mappage d'URL. En cas d'absence de correspondance, ce champ peut prendre la valeur UNMATCHED ou UNKNOWN.
  • UNMATCHED fait référence à une requête qui ne correspond à aucune règle de chemin d'URL, et utilise donc la règle de chemin par défaut.
  • UNKNOWN indique une erreur interne.
backend_target_name chaîne Nom du backend sélectionné pour gérer la requête, en fonction de la règle de chemin de mappage d'URL ou de la règle de routage correspondant à 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.
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 défini sur UNKNOWN, même si la journalisation est désactivée. Par exemple, si un client ferme la connexion à l'équilibreur de charge avant que celui-ci ne puisse choisir un backend, backend_type est défini sur UNKNOWN et la requête est journalisée. Ces journaux fournissent des informations utiles sur les requêtes client qui ont été fermées car l'équilibreur de charge n'a pas pu sélectionner de backend.

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.

Messages proxyStatus

Les chaînes consignées dans le champ proxyStatus sont les suivantes :

proxyStatus Signification Codes de réponse d'accompagnement courants
destination_unavailable l'équilibreur de charge considère le backend comme indisponible. Par exemple, les tentatives récentes de communication avec le backend ont échoué ou une vérification d'état peut indiquer l'é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 a été fermée avant la réception d'une réponse complète. 502, 503
connection_refused La connexion de l'équilibreur de charge au backend a été 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. 502, 503
destination_not_found L'équilibreur de charge ne peut pas déterminer le backend approprié à utiliser pour cette requête. Par exemple, il 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
http_response_timeout L'équilibreur de charge a atteint une limite de temps configurée en attente de la réponse complète du backend. 504, 408
http_request_error L'équilibreur de charge génère une réponse client (4xx) au nom du client. 400, 403, 405, 406, 408, 411, 413, 414, 415, 416, 417 ou 429
proxy_configuration_error L'équilibreur de charge a rencontré une erreur concernant sa configuration. 500
http_protocol_error L'équilibreur de charge a rencontré une erreur de protocole HTTP lors de la communication avec le backend. 502
proxy_internal_error L'équilibreur de charge a rencontré une erreur interne. 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 d'état HTTP peut s'afficher en fonction du type de problème. Par exemple, le code d'état HTTP "410" signifie que le backend n'est pas disponible en raison d'un défaut de paiement.

Afficher les journaux pour la validation du certificat client mTLS

Pour afficher les erreurs consignées pour les connexions fermées lors de la validation du certificat client mutuel TLS, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Explorateur de journaux.

    Accéder à l'explorateur de journaux

  2. Cliquez sur le bouton Afficher la requête pour activer l'éditeur de requête.

  3. Collez le texte suivant dans le champ de la requête. Remplacez FORWARDING_RULE_NAME par le nom de votre règle de transfert.

    jsonPayload.statusDetails=~"client_cert"
    jsonPayload.@type="type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
    resource.labels.forwarding_rule_name=FORWARDING_RULE_NAME
    
  4. Cliquez sur Exécuter la requête.

Surveillance

Les équilibreurs de charge d'application internes exportent les données de surveillance vers Monitoring.

Les métriques de surveillance peuvent être utilisées aux fins suivantes :

  • Évaluation de la configuration, de l'utilisation et des performances d'un équilibreur de charge
  • Résolution des problèmes
  • Amélioration de l'utilisation des ressources et de 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 via l'API Monitoring.

Afficher des métriques Cloud Monitoring

Console

Pour afficher les métriques d'une ressource surveillée à l'aide de l'explorateur de métriques, procédez comme suit :

  1. Dans le panneau de navigation de la console Google Cloud, sélectionnez Surveillance, puis  Explorateur de métriques :

    Accéder à l'explorateur de métriques

  2. Dans l'élément Métrique, développez le menu Sélectionner une métrique, saisissez Internal Application Load Balancer Rule dans la barre de filtre, puis utilisez les sous-menus pour sélectionner un type de ressource et des métriques spécifiques :
    1. Dans le menu Ressources actives, sélectionnez Règle d'équilibreur de charge d'application interne.
    2. Pour sélectionner une métrique, utilisez les menus Catégories de métriques actives et Métriques actives.
    3. Cliquez sur Appliquer.
  3. Pour supprimer des séries temporelles de l'affichage, utilisez l'élément Filtre.

  4. Pour combiner des séries temporelles, utilisez les menus de l'élément Agrégation. Par exemple, pour afficher l'utilisation du processeur pour vos VM en fonction de leur zone, définissez le premier menu sur Moyenne et le second sur zone.

    Toutes les séries temporelles sont affichées lorsque le premier menu de l'élément Agrégation est défini sur Non agrégé. Les paramètres par défaut de l'élément Aggregation (Agrégation) sont déterminés par le type de métrique que vous avez sélectionné.

  5. Pour le quota et les autres métriques qui indiquent un échantillon par jour, procédez comme suit :
    1. Dans le volet Affichage, définissez le type de widget sur Graphique à barres empilées.
    2. Définissez la période sur au moins une semaine.

Définir des règles d'alerte

Console

Vous pouvez créer des règles d'alerte pour surveiller les valeurs des métriques et être informé lorsqu'elles ne respectent pas une condition.

  1. Dans le panneau de navigation de la console Google Cloud, sélectionnez Monitoring, puis  Alertes :

    Accéder à l'interface des alertes

  2. Si vous n'avez pas créé vos canaux de notification et que vous souhaitez être averti, cliquez sur Modifier les canaux de notification et ajoutez vos canaux de notification. Revenez à la page Alertes après avoir ajouté vos canaux.
  3. Sur la page Alertes, cliquez sur Créer une règle.
  4. Pour sélectionner la métrique, développez le menu Sélectionner une métrique, puis procédez comme suit :
    1. Pour limiter le menu aux entrées pertinentes, saisissez Internal Application Load Balancer Rule dans la barre de filtre. Si aucun résultat ne s'affiche après avoir filtré le menu, désactivez l'option Afficher seulement les ressources et les métriques actives.
    2. Pour le champ Type de ressource, sélectionnez Règle d'équilibreur de charge d'application interne.
    3. Sélectionnez une Catégorie de métrique et une Métrique, puis cliquez sur Appliquer.
  5. Cliquez sur Next (Suivant).
  6. Les paramètres de la page Configurer le déclencheur d'alerte déterminent le moment où l'alerte se déclenche. Sélectionnez un type de condition et, si nécessaire, spécifiez un seuil. Pour plus d'informations, consultez la page Créer des règles d'alerte basées sur un seuil de métrique.
  7. Cliquez sur Next (Suivant).
  8. Facultatif : Pour ajouter des notifications à votre règle d'alerte, cliquez sur Canaux de notification. Dans la boîte de dialogue, sélectionnez un ou plusieurs canaux de notification dans le menu, puis cliquez sur OK.
  9. (Facultatif) Mettez à jour la durée de fermeture automatique de l'incident. Ce champ détermine à quel moment Monitoring ferme les incidents en l'absence de données de métriques.
  10. Facultatif : Cliquez sur Documentation, puis ajoutez les informations à inclure dans le message de notification.
  11. Cliquez sur Nom de l'alerte et saisissez un nom pour la règle d'alerte.
  12. Cliquez sur Créer une stratégie.
Pour plus d'informations, consultez la page Règles d'alerte.

Définir des tableaux de bord Monitoring personnalisés

Console

Vous pouvez créer des tableaux de bord personnalisés Monitoring d'après des métriques d'équilibreur de charge d'application interne:

  1. Dans la console Google Cloud, accédez à la page Monitoring.

    Accéder à Monitoring

  2. Sélectionnez Tableaux de bord > Créer un tableau de bord.

  3. Cliquez sur Add Chart (Ajouter un graphique).

  4. Indiquez un titre pour le graphique.

  5. Sélectionnez des métriques et des filtres. Pour les métriques, le type de ressource est Internal HTTP/S Load Balancer (Équilibreur de charge HTTP/S interne).

  6. Cliquez sur Enregistrer.

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. Le tableau de bord fournit une analyse des données à des intervalles par défaut d'une heure, de six heures, d'un jour, d'une semaine et de six semaines. Vous pouvez demander manuellement une analyse à un intervalle compris entre une minute et six semaines.

Métriques de surveillance pour les équilibreurs de charge d'application internes

Les métriques suivantes pour les équilibreurs de charge d'application internes sont consignées dans Monitoring:

Métrique Nom de domaine complet Description
Nombre de requêtes loadbalancing.googleapis.com/https/internal/request_count Nombre de requêtes diffusées par l'équilibreur de charge d'application interne.
Nombre d'octets de requête loadbalancing.googleapis.com/https/internal/request_bytes Nombre d'octets envoyés en tant que requêtes par les clients à l'équilibreur de charge d'application interne.
Nombre d'octets de réponse loadbalancing.googleapis.com/https/internal/response_bytes Nombre d'octets envoyés en tant que réponses au client depuis l'équilibreur de charge HTTP(S) interne.
Total des latences loadbalancing.googleapis.com/https/internal/total_latencies Distribution de la latence, en millisecondes. La latence est mesurée entre le moment où le proxy reçoit le premier octet de la requête et le moment où le proxy envoie le dernier octet de la réponse.
Latences de backend loadbalancing.googleapis.com/https/internal/backend_latencies Distribution de la latence, en millisecondes. La latence est mesurée entre le moment où le proxy envoie le premier octet de la requête au backend et le moment où le proxy reçoit le dernier octet de la réponse du backend.

Dimensions de filtrage pour les métriques d'équilibreur de charge d'application internes

Les métriques sont agrégées pour chaque équilibreur de charge d'application interne. Vous pouvez filtrer les métriques agrégées selon les dimensions suivantes.

Propriété Description
BACKEND_SCOPE Zone ou région Google Cloud du groupe backend qui a diffusé la requête du client, ou chaîne spéciale pour les cas dans lesquels aucun groupe backend n'a été attribué. Examples : us-central1-a, europe-west1-b, asia-east1, UNKNOWN.
PROXY_REGION Région de l'équilibreur de charge d'application interne, du client et du backend. Exemples : us-central1, europe-west1 ou asia-east1.
BACKEND Nom du groupe d'instances backend ou groupe de points de terminaison du réseau ayant diffusé la requête du client.
BACKEND_TARGET Nom du service de backend qui a diffusé la requête du client.
MATCHED_URL_RULE Règle de chemin de mappage d'URL ou règle de routage correspondant au préfixe de la requête HTTP(S) du client (50 caractères maximum).

La métrique Response code class fraction est acceptée pour l'intégralité de l'équilibreur de charge. Aucune autre précision n'est acceptée.

Étapes suivantes