Journalisation et surveillance de l'équilibrage de charge HTTP(S) interne

Ce document fournit les informations dont vous avez besoin pour comprendre les métriques de journalisation et de surveillance de l'équilibrage de charge HTTP(S) interne.

Logging

Vous pouvez activer la journalisation par service de backend. Le mappage d'URL d'un équilibreur de charge HTTP(S) interne unique 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.

Activer la journalisation sur un service de backend existant

Console

  1. Accédez à la page "Équilibrage de charge" dans Google Cloud Console.
    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 une valeur comprise entre 0.0 et 1.0 (valeur par défaut).
  9. Cliquez sur Mettre à jour.

gcloud

Mettez à jour le service de backend pour activer la journalisation avec la commande gcloud compute instance-templates create.

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

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.

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 visionneuse de journaux.

Les journaux de l'équilibreur de charge HTTP(S) interne sont indexés d'abord par réseau, puis par région.

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

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'équilibrage de charge HTTP/S interne (métriques basées sur les journaux)", disponible sous les tableaux de bord Cloud Monitoring :

Accéder à Monitoring

Contenu consigné

Les entrées des journaux d'équilibrage de charge HTTP(S) interne contiennent des informations utiles pour surveiller et déboguer votre trafic HTTP(S). Il s'agit des types d'informations suivants :

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

Champs de journal

Les journaux sont des protos LogEntry.

Champ Type Description
logName chaîne Nom de la ressource du journal à laquelle appartient cette entrée de journal.
Au format "projects/PROJECT_ID/logs/requests".
timestamp Format d'horodatage Heure à laquelle la requête a commencé.
severity Format LogSeverity Gravité de l'entrée de journal. La valeur par défaut est LogSeverity.DEFAULT.
httpRequest Objet HttpRequest Proto HttpRequest qui décrit la requête HTTP(S) en cours de journalisation.
trace chaîne 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

L'équilibrage de charge HTTP(S) interne n'accepte pas ce champ.

spanId chaîne 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.

L'équilibrage de charge HTTP(S) interne n'accepte pas ce champ.

resource Objet MonitoredResource Ressource surveillée associée à cette entrée de journal. Consultez la section Objet MonitoredResource.

MonitoredResource

Champ Type Description
networkName chaîne Nom du réseau VPC de l'équilibreur de charge.
region chaîne Nom de la région Google Cloud de l'équilibreur de charge.
urlMapName chaîne Nom de l'objet de mappage d'URL configuré pour sélectionner un service de backend.
forwardingRuleName chaîne Nom de l'objet de règle de transfert.
targetProxyName chaîne Nom de l'objet de proxy cible référencé par la règle de transfert.
matchedUrlPathRule 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.
backendTargetName 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.
backendTargetType chaîne Type de la cible backend (BACKEND_SERVICE / UNKNOWN).
backendName chaîne Nom du groupe d'instances backend ou groupe de points de terminaison du réseau.
backendType chaîne Type du backend (groupe d'instances ou groupe de points de terminaison du réseau).
backendScope chaîne Champ d'application du backend (nom de la zone ou nom de la région). Peut être UNKNOWN quand backendName est inconnu.
backendScopeType chaîne Champ d'application du backend (REGION/ZONE). Peut être UNKNOWN quand backendName est inconnu.

Monitoring

L'équilibrage de charge HTTP(S) interne exporte 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

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

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

    Accéder à Monitoring

  2. Dans le volet de navigation "Surveillance", cliquez sur  Explorateur de métriques.
  3. Sélectionnez l'onglet Configuration, puis saisissez ou sélectionnez un type de ressource et une métrique. Remplissez les champs à l'aide des informations suivantes :
    1. Pour le champ Ressource, sélectionnez ou saisissez internal_http_lb_rule. Ce paramètre correspond à la ressource Règle d'équilibrage de charge HTTP/S interne.
    2. Sélectionnez la métrique dans le menu.
  4. (Facultatif) Pour configurer le mode d'affichage des données, utilisez les menus Filtre, Grouper par et Agrégateur. Par exemple, vous pouvez grouper les données par libellé de ressource ou de métrique. Pour plus d'informations, consultez la page Sélectionner des métriques.

Définir des règles d'alerte

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.

Pour créer une règle d'alerte qui surveille une ou plusieurs ressources de l'équilibreur de charge HTTP/S interne, procédez comme suit :

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

    Accéder à Monitoring

  2. Dans le volet de navigation "Monitoring", sélectionnez  Alertes, puis Créer une règle.
  3. Si vous souhaitez suivre ces instructions et si le bouton Revenir à l'ancienne interface utilisateur s'affiche, cliquez dessus. Vous pouvez créer une règle d'alerte à l'aide de l'interface bêta. Ces instructions concernent toutefois l'ancienne interface utilisateur.
  4. Cliquez sur Ajouter une condition :
    1. Les paramètres du volet Cible permettent de spécifier la ressource et la métrique à surveiller. Dans le champ Rechercher un type de ressource et une métrique, sélectionnez la ressource Équilibreur de charge HTTP/S interne. Sélectionnez ensuite une métrique dans la liste.
    2. Les paramètres du volet Configuration de la règle d'alerte déterminent le moment où l'alerte se déclenche. La plupart des champs de ce volet sont renseignés avec des valeurs par défaut. Pour en savoir plus sur les champs du volet, consultez la section Configuration dans la documentation sur les règles d'alerte.
    3. Cliquez sur Ajouter.
  5. Pour accéder à la section "Notifications", cliquez sur Suivant.
  6. 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.

    Si un canal de notification que vous souhaitez ajouter n'est pas répertorié, cliquez sur Gérer les canaux de notification. La page Canaux de notification s'affiche dans un nouvel onglet du navigateur. Sur cette page, vous pouvez mettre à jour les canaux de notification configurés. Une fois vos mises à jour effectuées, revenez à l'onglet d'origine, cliquez sur Actualiser, puis sélectionnez les canaux de notification à ajouter à la règle d'alerte.

  7. Pour accéder à la section "Documentation", cliquez sur Suivant.
  8. Cliquez sur Nom et saisissez un nom pour la règle d'alerte.
  9. Facultatif : Cliquez sur Documentation, puis ajoutez les informations à inclure dans le message de notification.
  10. Cliquez sur Enregistrer.
Pour plus d'informations, consultez la page Règles d'alerte.

Définir des tableaux de bord Monitoring personnalisés

Vous pouvez créer des tableaux de bord Monitoring personnalisés pour les métriques d'équilibrage de charge HTTP(S) interne :

  1. Accédez à Monitoring dans Google Cloud Console.
    Accéder à Monitoring
  2. Sélectionnez Tableaux de bord > Créer un tableau de bord.
  3. Cliquez sur 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 sur un intervalle compris entre une minute et six semaines.

Métriques de surveillance pour les équilibreurs de charge HTTP(S) internes

Les métriques concernant les équilibreurs de charge HTTP(S) internes décrites ci-dessous 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 HTTP(S) 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 HTTP(S) 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 HTTP(S) interne

Les métriques sont agrégées pour chaque équilibreur de charge HTTP(S) 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 HTTP(S) 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.

Étape suivante