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

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

Journalisation

Les journaux fournissent des informations utiles pour dépanner et surveiller votre équilibreur de charge réseau passthrough externe. 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. 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 à des fins de résolution des problèmes. Pour en savoir plus, consultez la page Résoudre les problèmes liés aux équilibreurs de charge réseau passthrough externes.

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), un équilibreur de charge réseau passthrough externe (198.51.100.99) et une instance backend (10.240.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 pour les connexions du client à l'instance backend sont formatés comme suit :

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

Échantillonnage et collecte des journaux

Google Cloud é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. 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 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 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.

Activer la journalisation sur un nouveau service de backend

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, puis sur Configuration du backend.
  4. Sélectionnez Créer un service de backend, puis renseignez les champs obligatoires du service de backend.
  5. Dans la section Journalisation, cochez la case Activer la journalisation.
  6. Définissez un taux d'échantillonnage. Vous pouvez définir un taux de 0.0 à 1.0 (par défaut).
  7. Facultatif : pour inclure tous les champs facultatifs dans les journaux, dans la section Champs facultatifs, cliquez sur Inclure tous les champs facultatifs.
  8. Pour terminer la modification du service de backend, cliquez sur Mettre à jour.
  9. Pour terminer la modification de l'équilibreur de charge, cliquez sur Mettre à jour.

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 \
      --region=REGION \
      --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.
  • 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 généré et 1.0 signifie qu'ils sont générés pour tous les Exemples de paquets. 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 regionBackendServices.insert.

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

Exclure tous les champs facultatifs

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

Inclure tous les champs facultatifs

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

Inclure une liste personnalisée de champs facultatifs

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

Activer la journalisation sur un service de backend existant

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, puis sur Configuration du backend.
  4. À côté de votre service de backend, cliquez sur Modifier.
  5. Dans la section Journalisation, cochez la case Activer la journalisation.
  6. Définissez un taux d'échantillonnage. Vous pouvez définir un taux de 0.0 à 1.0 (par défaut).
  7. Facultatif : pour inclure tous les champs facultatifs dans les journaux, dans la section Champs facultatifs, cliquez sur Inclure tous les champs facultatifs.
  8. Pour terminer la modification du service de backend, cliquez sur Mettre à jour.
  9. Pour terminer la modification de l'équilibreur de charge, cliquez sur Mettre à jour.

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 \
      --region=REGION \
      --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.
  • 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é et 1.0 signifie que tous les journaux sont générés pour tous les Exemples de paquets. 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 regionBackendServices/patch.

      PATCH https://compute.googleapis.com/compute/v1/projects/`PROJECT_ID`/regions/`REGION`/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",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "INCLUDE_ALL_OPTIONAL"
      }
    }
    

Inclure une liste personnalisée de champs facultatifs

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

Activer la journalisation sur un service de backend existant

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, puis sur Configuration du backend.

  4. Pour désactiver complètement la journalisation, décochez la case Activer la journalisation dans la section Journalisation.

  5. Si vous laissez la journalisation activée, vous pouvez définir un autre taux d'échantillonnage. Vous pouvez définir une valeur de 0.0 à 1.0 (valeur par défaut). Pour ne générer des journaux que pour 20% des paquets échantillonnés, définissez la valeur sur 0.2.

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

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

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 \
  --region=REGION \
  --no-enable-logging

Remplacez les éléments suivants :

  • BACKEND_SERVICE : nom du service de backend.
  • REGION : région du service de backend.

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

 {
 "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, 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. 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 Google Cloud Console, 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 pour un service de backend spécifique, procédez comme suit :

Requête de la console

  1. Dans Google Cloud Console, 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 pour un groupe d'instances backend spécifique, procédez comme suit :

Requête de la console

  1. Dans Google Cloud Console, 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 Requis 5-tuple décrivant cette connexion.
startTime string Requis Horodatage (format de chaîne de date RFC 3339) du premier paquet observé pendant l'intervalle de temps cumulé.
endTime string Requis Horodatage (format de chaîne de date RFC 3339) du dernier paquet observé pendant l'intervalle de temps cumulé.
bytesSent int64 Requis Nombre d'octets envoyés par le serveur au client.
bytesReceived int64 Requis Nombre d'octets reçus par le serveur en provenance du client.
packetsSent int64 Requis Nombre de paquets envoyés par le serveur au client.
packetsReceived int64 Requis Nombre de paquets reçus par le serveur en provenance du client.
rtt string Requis

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 Google Cloud.

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 string 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 string Région de la VM
Zone string 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 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.

Afficher les tableaux de bord Monitoring

Console

  1. Dans Google Cloud Console, 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 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 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.

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 Google Cloud Console, 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, recherchez le préfixe loadbalancing.googleapis.com/l3/external.

  6. Cliquez sur Enregistrer.

Définir des alertes Monitoring

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

Console

  1. Dans Google Cloud Console, 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, 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 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

Métriques

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

Nom de la métrique 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. 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.
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 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 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.

Disponible uniquement pour le trafic TCP.

Types de ressources

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

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

Un équilibreur de charge réseau passthrough externe 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. 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 chaîne Identifiant du projet Google Cloud associé à cette ressource.
load_balancer_name chaîne Nom de l'équilibreur de charge.
region chaîne Région où se situe le backend de l'équilibreur de charge (par exemple, us-central1, europe-west1, asia-east1).
network_name chaîne Réseau VPC dans lequel réside le backend de l'équilibreur de charge.
backend_target_type chaîne Indique si l'équilibreur de charge réseau passthrough externe est basé sur un pool cible ou sur un service de backend. Les valeurs valides sont BACKEND_SERVICE ou TARGET_POOL.
backend_target_name chaîne Pour les équilibreurs de charge réseau passthrough externes basés sur un pool cible, nom du pool cible. Pour les équilibreurs de charge réseau passthrough externes basés sur un service de backend, le nom du service de backend.
forwarding_rule_name chaîne Nom de la règle de transfert.
forwarding_rule_network_tier chaîne Niveau de réseau de la règle de transfert.
backend_name chaîne

Nom du backend ayant géré la connexion.

Pour un équilibreur de charge réseau passthrough externe basé sur un service de backend, 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.

Pour un équilibreur de charge réseau passthrough externe basé sur un pool cible, la valeur est le nom du pool cible.

backend_type chaîne

Type de backend ayant géré la connexion.

Pour un équilibreur de charge réseau passthrough externe basé sur un service de backend, la valeur peut être INSTANCE_GROUP ou NETWORK_ENDPOINT_GROUP.

Pour un équilibreur de charge réseau passthrough externe basé sur un pool cible, la valeur est TARGET_POOL.

backend_scope chaîne

Pour un équilibreur de charge réseau passthrough externe basé sur un service de backend, la zone ou la région du groupe d'instances backend (ou NEG).

Pour un équilibreur de charge réseau basé sur un pool cible, la valeur est UNSUPPORTED_FOR_TARGET_POOL.

backend_scope_type chaîne

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

Pour un équilibreur de charge réseau basé sur un pool cible, la valeur est UNSUPPORTED_FOR_TARGET_POOL.

backend_failover_configuration chaîne Configuration du basculement du groupe backend ayant géré la connexion. Les valeurs valides sont PRIMARY, BACKUP ou UNKNOWN.
backend_subnetwork_name chaîne 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 chaîne Identifiant du projet Google Cloud associé à cette ressource.
region chaîne 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. Les valeurs valides sont BACKEND_SERVICE ou TARGET_POOL.
backend_service_name chaîne Nom du service de backend ayant géré la connexion. Si backend_target_type est défini sur TARGET_POOL, la valeur est UNSUPPORTED_FOR_TARGET_POOL.
primary_target_pool chaîne Nom du pool cible principal. Si backend_target_type est défini sur BACKEND_SERVICE, la valeur est UNSUPPORTED_FOR_BACKEND_SERVICE.
target_pool chaîne Nom du pool cible Si backend_target_type est défini sur BACKEND_SERVICE, la valeur est UNSUPPORTED_FOR_BACKEND_SERVICE.
forwarding_rule_name chaîne Nom de la règle de transfert de l'équilibreur de charge réseau passthrough externe
backend_group_name string Nom du backend ayant géré la connexion. Si backend_target_type est défini sur TARGET_POOL, la valeur est UNSUPPORTED_FOR_TARGET_POOL.
backend_group_type chaîne

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.

Si backend_target_type est défini sur TARGET_POOL, la valeur est UNSUPPORTED_FOR_TARGET_POOL.

backend_group_scope chaîne Champ d'application du groupe de backend (nom de la zone ou de la région) ayant géré la connexion. Si backend_target_type est défini sur TARGET_POOL, la valeur est UNSUPPORTED_FOR_TARGET_POOL.
backend_subnetwork_name chaîne Nom du sous-réseau du backend ayant reçu la connexion.
backend_zone chaîne 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 chaîne Pays du client ayant initié la connexion à l'équilibreur de charge réseau passthrough externe.
client_continent chaîne Continent du client ayant initié la connexion à l'équilibreur de charge réseau passthrough externe.
protocol chaîne

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 métriques d'équilibreur de charge réseau passthrough externe à 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 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 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 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 : 2017-07-01T12:20:00Z
    • aggregation.alignmentPeriod : 60s
    • aggregation.crossSeriesReducer : REDUCE_SUM
    • aggregation.groupByFields : metric.label.client_continent
    • aggregation.groupByFields : resource.label.endpoint_zone
    • aggregation.perSeriesAligner : ALIGN_SUM

Étapes suivantes