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

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

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. Dans Google Cloud Console, 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 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 backend-services update.

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. La valeur par défaut est 1.0.

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 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, sélectionnez dans le premier menu déroulant 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 consulter les journaux d'une seule région du réseau, sélectionnez Règle d'équilibrage de charge HTTP/S 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'é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

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, le descripteur de la ressource surveillée pour l'équilibrage de charge HTTP(S) interne est associé au type de ressource internal_http_lb_rule et spécifie l'utilisation de libellés identifiant 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".

Libellés 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 : soit un groupe d'instances, soit un groupe de points de terminaison du réseau.
backend_scope chaîne Champ d'application du backend (nom de la zone ou nom de la région). Peut être UNKNOWN quand backend_name est inconnu.
backend_scope_type chaîne Champ d'application du backend (REGION/ZONE). Peut être UNKNOWN quand backend_name est inconnu.

Surveillance

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

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 Google Cloud Console, accédez à la page Explorateur de métriques de Monitoring.
  2. Accéder à l'explorateur de métriques

  3. Dans la barre d'outils, sélectionnez l'onglet Explorateur.
  4. Accédez à l'onglet Configuration.
  5. Développez le menu Sélectionner une métrique, saisissez Internal HTTP/S Load Balancing Rule dans la barre de filtre, puis utilisez les sous-menus pour sélectionner un type de ressource et une métrique spécifiques :
    1. Dans le menu Ressources actives, sélectionnez Règle d'équilibrage de charge HTTP/S 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.
  6. Facultatif : pour configurer l'affichage des données, ajoutez des filtres et utilisez les menus Grouper par, Agrégateur et type de graphique. Par exemple, vous pouvez grouper les données par libellé de ressource ou de métrique. Pour plus d'informations, consultez la section Sélectionner des métriques lors de l'utilisation de l'explorateur de métriques.
  7. Facultatif : modifiez les paramètres du graphique :
    • Pour le quota et les autres métriques qui indiquent un échantillon par jour, définissez la période sur au moins une semaine et définissez le type de tracé sur Graphique à barres empilées.
    • Pour les métriques à valeur de distribution, définissez le type de tracé sur Graphique de carte de densité.

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 Google Cloud Console, accédez à la page Monitoring.

    Accéder à Monitoring

  2. Dans le volet de navigation Monitoring, sélectionnez  Alertes :
  3. 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.
  4. Sur la page Alertes, cliquez sur Créer une règle.
  5. Pour sélectionner la métrique, développez le menu Select a metric (Sélectionner une métrique), puis procédez comme suit :
    1. Pour limiter le menu aux entrées pertinentes, saisissez Internal HTTP/S Load Balancing 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. Dans le champ Type de ressource, sélectionnez Règle d'équilibrage de charge HTTP/S interne.
    3. Sélectionnez une Catégorie de métrique et une Métrique, puis cliquez sur Appliquer.
  6. Cliquez sur Suivant.
  7. 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 en savoir plus, consultez la section Déclencheur de condition.
  8. Cliquez sur Suivant.
  9. 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.
  10. (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.
  11. Facultatif : Cliquez sur Documentation, puis ajoutez les informations à inclure dans le message de notification.
  12. Cliquez sur Nom de l'alerte et saisissez un nom pour la règle d'alerte.
  13. 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 Monitoring personnalisés pour les métriques d'équilibrage de charge HTTP(S) interne :

  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 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