Journalisation et surveillance de l'équilibreur de charge réseau passthrough externe global

Ce document explique comment configurer et utiliser Cloud Logging et Cloud Monitoring pour les équilibreurs de charge réseau passthrough externes globaux.

Journalisation

Les journaux fournissent des informations utiles pour dépanner et surveiller votre équilibreur de charge réseau passthrough externe global. Les journaux sont agrégés par connexion et exportés en quasi-temps réel. Les journaux sont générés pour chaque flux TCP, UDP, ESP, GRE, ICMP et ICMPv6 des instances à équilibrage de charge pour le trafic entrant et sortant. Pour en savoir plus sur les champs fournis dans l'entrée de journal, consultez la section Champs de journal.

L'utilisation des journaux n'entraîne aucuns frais supplémentaires. Selon la manière dont vous importez les journaux, les tarifs standards pour Cloud Logging, BigQuery ou Pub/Sub s'appliquent. L'activation des journaux n'a aucun effet sur les performances de l'équilibreur de charge.

Logging offre les avantages suivants :

  • Surveillance du trafic de l'équilibreur de charge réseau passthrough externe mondial. La journalisation par connexion vous indique comment chaque connexion est acheminée vers les backends de diffusion.

  • Dépannage du réseau. Vous pouvez utiliser les journaux de l'équilibreur de charge réseau passthrough externe global pour résoudre les problèmes.

Exemple de format de journal pour un flux de clients externes vers des VM

Le schéma suivant illustre le trafic entrant et sortant pour un client externe (203.0.113.7) accédant à un équilibreur de charge réseau passthrough externe global configuré avec deux adresses IP anycast globales 136.124.69.214 attribuées au groupe de disponibilité 0 (AG0) et 136.124.83.205 attribuées au groupe de disponibilité 1 (AG1), ainsi qu'à des instances de backend (10.10.0.2 et 10.20.0.2).

Flux entre des clients externes et des services de VM de backend.
Flux entrants et sortants pour un client externe vers une VM.

Les journaux de l'équilibreur de charge réseau passthrough externe mondial pour les connexions du client à l'instance backend sont formatés comme suit :

  • connection.clientIp : 203.0.113.7
  • connection.serverIp : 136.124.69.214 (AG0) ou 136.124.83.205 (AG1)
  • bytesSent : 1256
  • bytesReceived : 4521

Échantillonnage et collecte des journaux

Cloud de Confiance échantillonne les paquets qui quittent les VM de backend de l'é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. Cloud de Confiance é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 Cloud de Confiance. Vous ne pouvez pas ajuster le taux d'échantillonnage.

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, Cloud de Confiance 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 facultatifs. La section Champs de journal permet de savoir quels champs sont facultatifs et lesquels sont 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 le champ parent, tels que serverInstance, ou par leur nom complet, par exemple serverInstance.vm.

Lorsque de nouveaux champs facultatifs sont ajoutés au format d'enregistrement, les journaux n'incluent pas ces champs, sauf s'il s'agit d'un nouveau champ dans un champ parent que vous avez spécifié.

Si vous spécifiez un champ facultatif personnalisé à l'aide de champs parents, lorsque de nouveaux champs facultatifs sont ajoutés au format d'enregistrement au sein de ce champ parent, les journaux incluent automatiquement les nouveaux champs. Par exemple, si vous choisissez d'inclure optionalFieldA, un nouveau champ ajouté aux journaux portant le nom optionalFieldA.subField1 est inclus automatiquement.

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

Exigences relatives à l'adresse IP source du paquet de réponse

La journalisation de l'équilibreur de charge réseau n'échantillonne les paquets de réponse des VM de backend que si l'adresse IP source de ces paquets correspond à l'adresse IP de la règle de transfert de l'équilibreur de charge. Pour les connexions TCP, les paquets de réponse doivent toujours avoir des sources correspondant à la destination du paquet de requête. Toutefois, pour d'autres protocoles, il est possible que les paquets de réponse utilisent une adresse IP source différente. Pour plus d'informations, consultez la section Adresses IP pour les paquets de requêtes et de retours.

Le processus d'échantillonnage des paquets utilisé par la journalisation de l'équilibreur de charge réseau passthrough externe mondial omet tous les paquets de réponse des VM de backend, si ces paquets ont des sources qui ne correspondent pas à l'adresse IP d'une règle de transfert pour un équilibreur de charge réseau passthrough externe mondial.

Activer la journalisation sur un nouveau service de backend

gcloud

Créez le service de backend pour activer la journalisation avec la commande gcloud compute backend-services create.

    gcloud compute backend-services create BACKEND_SERVICE \
        --global \
        --load-balancing-scheme=EXTERNAL_PASSTHROUGH \
        --enable-logging \
        --logging-sample-rate=SAMPLE_RATE \
        --logging-optional=LOGGING_OPTIONAL \
        --logging-optional-fields=OPTIONAL_FIELDS
    

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 être comprise entre 0.0 to 1.0, 0.0 signifiant qu'aucun journal n'est rapporté et 1.0 signifiant que les journaux sont générés pour chaque paquet échantillonné. 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 : 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.
  • OPTIONAL_FIELDS : liste de champs facultatifs séparés par une virgule que vous souhaitez inclure dans les journaux.

    Par exemple, serverInstance.vm,serverGkeDetails. Ne peut être défini que si LOGGING_OPTIONAL est défini sur CUSTOM.

API

Envoyez une requête POST à la méthode backendServices.insert.

    POST https://compute.s3nsapis.fr/compute/v1/projects/`PROJECT_ID`/global/backendServices
    

Exclure tous les champs facultatifs

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

Inclure tous les champs facultatifs

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

Inclure une liste personnalisée de champs facultatifs

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

Activer la journalisation sur un service de backend existant

gcloud

Activez la journalisation sur un service de backend existant à l'aide de la commande gcloud compute backend-services update.

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

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 être comprise entre 0.0 to 1.0, 0.0 signifiant qu'aucun journal n'est rapportée et 1.0 signifiant que les journaux sont générés pour chaque paquet échantillonné. 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 : 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.
  • OPTIONAL_FIELDS : liste de champs facultatifs séparés par une virgule que vous souhaitez inclure dans les journaux.

    Par exemple, serverInstance.vm,serverGkeDetails. Ne peut être défini que si LOGGING_OPTIONAL est défini sur CUSTOM.

API

Envoyez une requête PATCH à la méthode backendServices/patch.

      PATCH https://compute.s3nsapis.fr/compute/v1/projects/`PROJECT_ID`/global/backendServices/`BACKEND_SERVICE`
     

Exclure tous les champs facultatifs

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

Inclure tous les champs facultatifs

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

Inclure une liste personnalisée de champs facultatifs

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

Activer la journalisation sur un service de backend existant

gcloud

Désactivez la journalisation sur le service de backend à l'aide de la commande gcloud compute backend-services update.

    gcloud compute backend-services update BACKEND_SERVICE \
        --global \
        --no-enable-logging

Remplacez les éléments suivants :

  • BACKEND_SERVICE : nom du service de backend.

API

Envoyez une requête PATCH à la méthode backendServices/patch.

    PATCH https://compute.s3nsapis.fr/compute/v1/projects/`PROJECT_ID`/global/backendServices/`BACKEND_SERVICE`

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

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 de l'équilibreur de charge réseau passthrough externe global, procédez comme suit :

Console

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

    Accéder à l'explorateur de journaux

  2. Sélectionnez le type de ressource Règle d'équilibreur de charge réseau passthrough externe.

  3. Sélectionnez le nom du journal loadbalancing.googleapis.com/flows.

Requête de la console

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

    Accéder à l'explorateur de journaux

  2. Cliquez sur le bouton Afficher la requête.

  3. Collez le texte suivant dans le champ de la requête. Remplacez PROJECT_ID par votre ID de projet :

    resource.type="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    
  4. Cliquez sur Exécuter la requête.

Afficher les journaux d'un service de backend spécifique

Pour afficher les journaux de l'équilibreur de charge réseau passthrough externe global pour un service de backend spécifique, procédez comme suit :

Requête de la console

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

    Accéder à l'explorateur de journaux

  2. Cliquez sur le bouton Afficher la requête.

  3. Collez le texte suivant dans le champ de la requête. Remplacez PROJECT_ID par l'ID de votre projet et BACKEND_SERVICE_NAME par le nom de votre service de backend.

    resource.type="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    resource.labels.backend_service_name="BACKEND_SERVICE_NAME"
    
  4. Cliquez sur Exécuter la requête.

Afficher les journaux pour un groupe d'instances backend

Pour afficher les journaux de l'équilibreur de charge réseau passthrough externe global pour un groupe d'instances backend spécifique, procédez comme suit :

Requête de la console

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

    Accéder à l'explorateur de journaux

  2. Cliquez sur le bouton Afficher la requête.

  3. Collez le texte suivant dans le champ de la requête. Remplacez PROJECT_ID par l'ID de votre projet et BACKEND_GROUP_NAME par le nom du groupe d'instances.

    resource.type="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    resource.labels.backend_group_name="BACKEND_GROUP_NAME"
    
  4. Cliquez sur Exécuter la requête.

Champs de journal

Les enregistrements de journal contiennent des champs obligatoires (les champs par défaut de chaque enregistrement de journal) et des champs facultatifs qui ajoutent des informations supplémentaires. Les champs facultatifs peuvent être omis pour réduire les coûts de stockage.

Le format "multi-champs" de certains champs affiche plusieurs données dans un même 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 particuliers sont décrits dans le tableau relatif au format des enregistrements ci-dessous.

La ressource surveillée est loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule.

Champ Format du champ Type de champ : obligatoire ou facultatif Description
connexion IpConnection Obligatoire 5-tuple décrivant cette connexion.
startTime chaîne Obligatoire Code temporel (au format de chaîne de date RFC 3339) du premier paquet observé pendant l'intervalle de temps cumulé.
endTime chaîne Obligatoire Code temporel (au format de chaîne de date RFC 3339) du dernier paquet observé pendant l'intervalle de temps cumulé.
bytesSent int64 Obligatoire Nombre d'octets envoyés par le serveur au client.
bytesReceived int64 Obligatoire Nombre d'octets reçus par le serveur en provenance du client.
packetsSent int64 Obligatoire Nombre de paquets envoyés par le serveur au client.
packetsReceived int64 Obligatoire Nombre de paquets reçus par le serveur en provenance du client.
rtt chaîne Obligatoire

La latence n'est mesurée que pour les connexions TCP. La latence correspond à la somme du délai aller-retour (DAR) estimé sur le réseau et du temps dédié au traitement du paquet dans le système d'exploitation du client.

Pour les paquets échantillonnés, le DAR est calculé du point de vue d'un backend à équilibrage de charge, en mesurant le temps écoulé entre le backend qui envoie un segment TCP et le backend qui reçoit un accusé de réception TCP pour le numéro de séquence du segment envoyé.

La latence est formatée sous forme de chaîne commençant par le nombre de secondes et se terminant par "s" pour indiquer les secondes. Les nanosecondes sont exprimées en fractions de seconde.Par exemple, une latence de 250 millisecondes est au format "0,250000000s".

serverInstance InstanceDetails Facultatif Détails de l'instance de VM de backend.
clientLocation GeographicDetails Facultatif Métadonnées d'emplacement disponibles du client.
serverGkeDetails GkeDetails Facultatif Métadonnées GKE pour le backend de serveur. Disponible uniquement si le backend est un point de terminaison GKE.
networkTier NetworkTierDetails Facultatif Niveau de réseau pour les connexions externes, renseigné uniquement lorsque le client ne se trouve pas dans Cloud de Confiance by S3NS.

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

Format de champ InstanceDetails

Champ Type Description
projectId string ID du projet contenant la VM
vm string Nom d'instance de la VM
region chaîne Région de la VM
Zone chaîne Zone de la VM
vmIp chaîne Adresse IPv4 interne principale de l'interface réseau qui a diffusé la connexion

Format de champ GeographicDetails

Champ Type Description
continent string Nom du continent
regionCode string Code de région CLDR au format Unicode, tel que US ou FR. Pour la plupart des pays, ces codes correspondent directement aux codes ISO-3166-2.
subRegion string ID de subdivision CLDR au format Unicode. Par exemple, une province ou un État du pays, tel que USCA ou CAON. Ces codes Unicode sont dérivés des subdivisions définies par la norme ISO-3166-2.
city string Nom de la ville. Par exemple Mountain View pour Mountain View en Californie. Il n'existe pas de liste canonique de valeurs valides pour cette variable. Les noms de villes peuvent contenir des lettres, des chiffres et des espaces au format US-ASCII, ainsi que les caractères suivants : !#$%&'*+-.^_`|~.
asn int32 Numéro ASN (Autonomous System Number) du réseau externe auquel appartient ce point de terminaison.

Format de champ GkeDetails

Champ Type Description
Cluster ClusterDetails Métadonnées du cluster GKE.
pod PodDetails Métadonnées du pod GKE, renseignées lorsque la source ou la destination du trafic est un pod
service ServiceDetails Métadonnées du service GKE, renseignées seulement dans les points de terminaison du service. L'enregistrement contient jusqu'à deux services. S'il existe plus de deux services pertinents, ce champ contient un seul service avec un marqueur MANY_SERVICES spécial.

Format de champ ClusterDetails

Champ Type Description
Cluster string Nom du cluster GKE
clusterLocation string Emplacement du cluster. L'emplacement du cluster peut être une zone ou une région.

Format de champ PodDetails

Champ Type Description
pod string Nom du pod
podNamespace string Espace de noms du pod

Format de champ ServiceDetails

Champ Type Description
service string Nom du service. S'il existe plus de deux services pertinents, le champ est défini sur un marqueur MANY_SERVICES spécial.
serviceNamespace string Espace de noms du service.

Format de champ NetworkTierDetails

Champ Type Description
networkTier string NetworkTier utilisé dans la connexion, parmi les suivants : [PREMIUM, STANDARD, FIXED_STANDARD, UNKNOWN].

Surveillance

Les équilibreurs de charge réseau passthrough externes globaux exportent des métriques clés vers Cloud Monitoring.

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

  • Évaluer la configuration, l'utilisation et les performances d'un équilibreur de charge
  • Dépannage
  • 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 via l'API Monitoring.

Vous ne pouvez pas interroger ni filtrer les métriques de surveillance à l'aide de la règle de transfert globale parente. En effet, chaque règle de transfert enfant de son groupe de disponibilité implémente le trafic à équilibrage de charge, le routage du plan de données et les vérifications de l'état. Par conséquent, vous devez interroger et filtrer les métriques à l'aide des règles de transfert enfants que Cloud de Confiance génère pour chaque groupe de disponibilité. Cloud de Confiancenomme ces règles enfants en concaténant le nom de la règle de transfert parente avec-ag0et-ag1. La surveillance à ce niveau de précision des règles de transfert enfant vous permet d'afficher les métriques par groupe de disponibilité. Pour en savoir plus, consultez la section Règles de transfert.

Afficher les tableaux de bord Monitoring

Console

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

    Accéder à Monitoring

  2. Dans le volet de navigation, sélectionnez Tableaux de bord.

  3. Sélectionnez le tableau de bord Équilibreurs de charge Google Cloud. Tous les équilibreurs de charge sont affichés.

  4. Sélectionnez le nom de l'équilibreur de charge dans la liste des équilibreurs de charge.

Le volet Détails de l'équilibreur de charge réseau passthrough externe mondial affiche diverses informations sur l'équilibreur de charge sélectionné. Ce volet affiche vos configurations actuelles.

Le volet Métriques clés affiche des graphiques pour chaque métrique clé. Cliquez sur le lien Répartitions pour afficher des répartitions spécifiques. Ce volet présente les données basées sur les configurations historiques, tandis que le volet Détails de l'équilibreur de charge réseau passthrough externe global n'affiche que les configurations actuelles. Pour en savoir plus, consultez la page Utiliser des tableaux de bord et des graphiques.

Définir des tableaux de bord Monitoring personnalisés

Vous pouvez créer des tableaux de bord Monitoring personnalisés pour les métriques de l'équilibreur de charge réseau passthrough externe mondial.

Pour obtenir la liste des métriques disponibles, consultez la section Métriques et types de ressources. Pour obtenir la liste des attributs utiles pour filtrer les résultats, reportez-vous à la section Filtres.

Console

  1. Dans la console Cloud de Confiance , 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 rechercher les métriques de l'équilibreur de charge réseau passthrough externe global, recherchez le préfixe loadbalancing.googleapis.com/l3/external.

  6. Cliquez sur Enregistrer.

Définir des alertes de surveillance

Vous pouvez définir des alertes Monitoring concernant différentes métriques de l'équilibreur de charge réseau passthrough externe global :

Console

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

    Accéder à Monitoring

  2. Sélectionnez Alertes > Créer une règle.

  3. Sélectionnez des types de ressources et des métriques.

    Pour trouver les types de ressources et les métriques d'équilibreur de charge réseau passthrough externe global, recherchez loadbalancing.googleapis.com/l3/external dans le champ Rechercher un type de ressource et une métrique.

  4. Créez une configuration pour définir les conditions de déclenchement d'une alerte.

  5. Ajoutez des filtres si nécessaire.

  6. Cliquez sur Enregistrer.

Fréquence et conservation des rapports sur les métriques

Les métriques des équilibreurs de charge réseau passthrough externes mondiaux 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 60 secondes et six semaines.

Métriques et types de ressources

Cette section décrit les métriques et les types de ressources pour les équilibreurs de charge réseau passthrough externes globaux.

Métriques

Les métriques suivantes pour les équilibreurs de charge réseau passthrough externes globaux sont consignées dans Monitoring. Vous pouvez utiliser ces noms de métriques lorsque vous effectuez des requêtes d'API.

metric_name Type Description
loadbalancing.googleapis.com/l3/external/ingress_bytes_count compteur Nombre d'octets envoyés par un client au backend d'un équilibreur de charge réseau passthrough externe mondial. Pour les flux TCP, seuls les octets du flux d'application sont comptabilisés.
loadbalancing.googleapis.com/l3/external/ingress_packets_count compteur Nombre de paquets envoyés par un client au backend d'un équilibreur de charge réseau passthrough externe mondial.
loadbalancing.googleapis.com/l3/external/egress_bytes_count compteur Nombre d'octets envoyés depuis le backend d'un équilibreur de charge réseau passthrough externe global vers un client. Pour les flux TCP, seuls les octets du flux d'application sont comptabilisés.
loadbalancing.googleapis.com/l3/external/egress_packets_count compteur Nombre de paquets envoyés depuis le backend d'un équilibreur de charge réseau passthrough externe global vers un client.
loadbalancing.googleapis.com/l3/external/rtt_latencies distribution

Répartition du délai aller-retour (DAR) calculé à partir des connexions TCP pour les flux de l'équilibreur de charge réseau passthrough externe global.

Disponible uniquement pour le trafic TCP.

Types de ressources

Les équilibreurs de charge réseau passthrough externes globaux utilisent les types de ressources suivants :

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

Un équilibreur de charge réseau passthrough externe mondial peut prendre en charge le trafic TCP, UDP, ESP, GRE, ICMP et ICMPv6.

Vous pouvez spécifier le type de ressource en tant que tcp_lb_rule ou udp_lb_rule pour limiter les données surveillées aux protocoles TCP ou UDP. Vous pouvez spécifier le type de ressource en tant que loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule pour surveiller tous les protocoles acceptés, y compris les protocoles TCP, UDP, ESP, GRE, ICMP et ICMPv6.

Filtres

Les métriques sont agrégées pour chaque équilibreur de charge réseau passthrough externe global. Vous pouvez filtrer les métriques agrégées selon les dimensions suivantes.

Libellés de ressources pour tcp_lb_rule ou udp_lb_rule

Vous pouvez limiter votre requête en fonction des ressources. Vous pouvez également regrouper les résultats en fonction de ces valeurs.

resource.label.<var>LABEL_KEY</var>:
label_key Type Description
project string Identifiant du projet Cloud de Confiance associé à cette ressource.
load_balancer_name string Nom de l'équilibreur de charge.
region string Région où se situe le backend de l'équilibreur de charge (par exemple, us-central1, europe-west1, asia-east1).
network_name string Réseau VPC dans lequel réside le backend de l'équilibreur de charge.
backend_target_type chaîne Type de cible backend ayant géré la connexion. La valeur valide est BACKEND_SERVICE.
backend_target_name string Nom du service de backend.
forwarding_rule_name string

Nom de la règle de transfert.

Il s'agit du nom de l'une des règles de transfert enfants générées par Cloud de Confiance(avec le suffixe -ag0 ou -ag1).

forwarding_rule_network_tier string Niveau de réseau de la règle de transfert.
backend_name chaîne

Nom du backend ayant géré la connexion.

La valeur est le nom du groupe d'instances backend ou du groupe de points de terminaison du réseau (NEG) ayant géré la connexion.

backend_type string

Type de backend ayant géré la connexion.

La valeur peut être INSTANCE_GROUP ou NETWORK_ENDPOINT_GROUP.

backend_scope string

Zone ou région du groupe d'instances backend ou du NEG.

backend_scope_type string

Type de champ d'application du groupe backend ayant géré la connexion. Les valeurs valides sont ZONE ou REGION.

backend_subnetwork_name string Nom du sous-réseau du backend ayant reçu la connexion.
endpoint_zone chaîne Zone de la VM backend ayant géré la connexion.

Libellés de ressources pour loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule

Vous pouvez limiter votre requête en fonction des ressources. Vous pouvez également regrouper les résultats en fonction de ces valeurs.

resource.label.<var>LABEL_KEY</var>:
label_key Type Description
project string Identifiant du projet Cloud de Confiance associé à cette ressource.
region string Région où se situe le backend de l'équilibreur de charge (par exemple, us-central1, europe-west1, asia-east1).
backend_network_name chaîne Réseau VPC dans lequel réside le backend de l'équilibreur de charge.
backend_target_type chaîne Type de cible backend ayant géré la connexion. La valeur valide est BACKEND_SERVICE.
backend_service_name string Nom du service de backend ayant géré la connexion.
forwarding_rule_name string

Nom de la règle de transfert.

Il s'agit du nom de l'une des règles de transfert enfants générées par Cloud de Confiance(avec le suffixe -ag0 ou -ag1).

backend_group_name string Nom du backend ayant géré la connexion.
backend_group_type string

Type de groupe backend ayant géré la connexion.

Si backend_target_type est défini sur BACKEND_SERVICE, la valeur est INSTANCE_GROUP ou NETWORK_ENDPOINT_GROUP.

backend_group_scope string Champ d'application du groupe de backend (nom de la zone ou de la région) ayant géré la connexion.
backend_subnetwork_name string Nom du sous-réseau du backend ayant reçu la connexion.
backend_zone string Zone de la VM backend ayant géré la connexion.

Libellés de métriques

Vous pouvez limiter le nombre de requêtes en fonction des libellés de métriques. Vous pouvez également regrouper les résultats en fonction de ces valeurs.

metric.label.<var>LABEL_KEY</var>:
label_key Type Description
client_country string Pays du client ayant initié la connexion à l'équilibreur de charge réseau passthrough externe global.
client_continent string Continent du client ayant initié la connexion à l'équilibreur de charge réseau passthrough externe global.
protocol string

Protocole de connexion de la ressource loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule.

Ce champ est laissé vide pour les ressources tcp_lb_rule et udp_lb_rule.

Surveiller les requêtes API

Vous pouvez formuler des requêtes arbitraires sur les équilibreurs de charge réseau passthrough externes globaux à l'aide de larequête projects.timeSeries.list de l'API Monitoring v3. La structure exacte des différentes définitions respecte la sémantique générique des filtres de surveillance.

Exemples de requêtes API

  • Obtenir le nombre total d'octets envoyés le 01/07/2019 entre 12:00 et 12:02 UTC par tous les équilibreurs de charge réseau passthrough externes globaux du projet, ventilé par lots d'une minute.

    Paramètres timeSeries.list :

    • nom : projects/PROJECT_ID
    • Filtre : resource.type = "tcp_lb_rule" ET metric.name="loadbalancing.googleapis.com/l3/external/egress_bytes_count"
    • interval.start_time : 2019-07-01T12:00:00Z
    • interval.end_time : 2019-07-01T12:02:00Z
    • aggregation.alignmentPeriod : 60s
    • aggregation.crossSeriesReducer : REDUCE_SUM
    • aggregation.perSeriesAligner : ALIGN_SUM
  • Obtenir un calcul du DAR médian pour tous les équilibreurs de charge réseau passthrough externes globaux du projet le 01/07/2019 entre 12:19 et 12:20 UTC, ventilé par pays du client.

    Paramètres timeSeries.list :

    • nom : projects/PROJECT_ID
    • Filtre : resource.type = "tcp_lb_rule" ET metric.name="loadbalancing.googleapis.com/l3/external/rtt_latencies"
    • interval.start_time : 2019-07-01T12:19:00Z
    • interval.end_time : 2019-07-01T12:20:00Z
    • aggregation.alignmentPeriod : 60s
    • aggregation.crossSeriesReducer : REDUCE_SUM
    • aggregation.groupByFields : metric.label.client_country
    • aggregation.perSeriesAligner : ALIGN_PERCENTILE_50
  • Obtenir le volume total d'octets envoyés le 01/07/2019 entre 12:19 et 12:20 UTC par un équilibreur de charge réseau passthrough externe mondial en particulier, ventilé par zone de point de terminaison et par continent du client.

    Paramètres timeSeries.list :

    • nom : projects/PROJECT_ID
    • Filtre : resource.type = "tcp_lb_rule" ET resource.label.load_balancer_name = "netlb-bs-1" ET metric.name="loadbalancing.googleapis.com/l3/external/ingress_bytes_count"
    • 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_continent
    • aggregation.groupByFields : resource.label.endpoint_zone
    • aggregation.perSeriesAligner : ALIGN_SUM

Étapes suivantes