arrow_back

Analyse de journaux sur Google Cloud

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Analyse de journaux sur Google Cloud

Lab 1 heure universal_currency_alt 1 crédit show_chart Débutant
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP1088

Google Cloud – Ateliers adaptés au rythme de chacun

Présentation

Dans cet atelier, vous allez découvrir les fonctionnalités et les outils fournis par Cloud Logging pour l'analyse de vos applications.

Points abordés

  • Utiliser efficacement Cloud Logging et en savoir plus sur les applications qui s'exécutent sur GKE
  • Créer et exécuter efficacement des requêtes à l'aide de l'analyse de journaux

L'application de démonstration utilisée lors de l'atelier

Afin d'utiliser un exemple concret, vous allez travailler sur un scénario basé sur une application exemple de microservices de démonstration déployée sur un cluster GKE. Cette application de démonstration comporte de nombreux microservices associés à des dépendances.

graphique mettant en évidence de nombreux microservices et leurs dépendances

Prérequis

Avant de cliquer sur le bouton "Démarrer l'atelier"

Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.

Cet atelier pratique vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour vous connecter à Google Cloud le temps de l'atelier.

Pour réaliser cet atelier :

  • vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome) ;
Remarque : Ouvrez une fenêtre de navigateur en mode incognito/navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le temporaire étudiant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
  • vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Si vous possédez déjà votre propre compte ou projet Google Cloud, veillez à ne pas l'utiliser pour réaliser cet atelier afin d'éviter que des frais supplémentaires ne vous soient facturés.

Démarrer l'atelier et se connecter à la console Google Cloud

  1. Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up s'affiche pour vous permettre de sélectionner un mode de paiement. Sur la gauche, vous trouverez le panneau Détails concernant l'atelier, qui contient les éléments suivants :

    • Le bouton Ouvrir la console Google
    • Le temps restant
    • Les identifiants temporaires que vous devez utiliser pour cet atelier
    • Des informations complémentaires vous permettant d'effectuer l'atelier
  2. Cliquez sur Ouvrir la console Google. L'atelier lance les ressources, puis ouvre la page Se connecter dans un nouvel onglet.

    Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.

    Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
  3. Si nécessaire, copiez le nom d'utilisateur inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue Se connecter. Cliquez sur Suivant.

  4. Copiez le mot de passe inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue de bienvenue. Cliquez sur Suivant.

    Important : Vous devez utiliser les identifiants fournis dans le panneau de gauche. Ne saisissez pas vos identifiants Google Cloud Skills Boost. Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
  5. Accédez aux pages suivantes :

    • Acceptez les conditions d'utilisation.
    • N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
    • Ne vous inscrivez pas aux essais offerts.

Après quelques instants, la console Cloud s'ouvre dans cet onglet.

Remarque : Vous pouvez afficher le menu qui contient la liste des produits et services Google Cloud en cliquant sur le menu de navigation en haut à gauche. Icône du menu de navigation

Activer Cloud Shell

Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.

  1. Cliquez sur Activer Cloud Shell Icône Activer Cloud Shell en haut de la console Google Cloud.

Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Le résultat contient une ligne qui déclare YOUR_PROJECT_ID (VOTRE_ID_PROJET) pour cette session :

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.

  1. (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
  1. Cliquez sur Autoriser.

  2. Vous devez à présent obtenir le résultat suivant :

Résultat :

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project

Résultat :

[core] project = <ID_Projet>

Exemple de résultat :

[core] project = qwiklabs-gcp-44776a13dea667a6 Remarque : Pour consulter la documentation complète sur gcloud, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.

Tâche 1 : Configurer l'infrastructure

Vérifier le cluster GKE

Connectez-vous à un cluster Google Kubernetes Engine et confirmez qu'il a été créé correctement.

1. Dans Cloud Shell, définissez votre zone dans gcloud :

gcloud config set compute/zone {{{project_0.default_zone|placeholder}}}
  1. Utilisez la commande suivante pour afficher l'état du cluster :
gcloud container clusters list

L'état doit ressembler à ce qui suit :

NAME: day2-ops LOCATION: {{{project_0.default_zone|placeholder}}} MASTER_VERSION: 1.24.3-gke.2100 MASTER_IP: 34.68.183.6 MACHINE_TYPE: e2-standard-2 NODE_VERSION: 1.24.3-gke.2100 NUM_NODES: 4 STATUS: RUNNING

L'état indiqué pour le cluster est "RUNNING" (En cours d'exécution). Si votre cluster indique "PROVISIONING" (En cours de provisionnement), attendez un peu et exécutez une nouvelle fois la commande ci-dessus. Réexécutez la commande jusqu'à ce que l'état "RUNNING" (En cours d'exécution) soit indiqué.

Vous pouvez aussi surveiller la progression de l'opération dans la console Cloud en suivant ce chemin : Menu de navigation > Kubernetes Engine > Clusters.

  1. Une fois que votre cluster indique "RUNNING" (En cours d'exécution), récupérez ses identifiants :
gcloud container clusters get-credentials day2-ops --region {{{project_0.default_region|placeholder}}}

(Résultat)

Fetching cluster endpoint and auth data. kubeconfig entry generated for day2-ops.
  1. Vérifiez que les nœuds ont été créés :
kubectl get nodes

Vous devez normalement obtenir le résultat suivant :

NAME STATUS ROLES AGE VERSION gke-day2-ops-default-pool-b3081059-bskv Ready <none> 3m32s v1.24.3-gke.2100 gke-day2-ops-default-pool-b3081059-dt73 Ready <none> 3m30s v1.24.3-gke.2100 gke-day2-ops-default-pool-b3081059-g1m3 Ready <none> 3m31s v1.24.3-gke.2100 gke-day2-ops-default-pool-b3081059-wq4b Ready <none> 3m31s v1.24.3-gke.2100

Tâche 2 : Déployer l'application

Vous allez maintenant déployer une application de microservices appelée Online Boutique sur votre cluster afin de créer une charge de travail à surveiller.

  1. Exécutez la commande suivante pour cloner le dépôt :
git clone https://github.com/GoogleCloudPlatform/microservices-demo.git
  1. Accédez au répertoire microservices-demo :
cd microservices-demo
  1. Installez l'application à l'aide de la commande kubectl :
kubectl apply -f release/kubernetes-manifests.yaml
  1. Vérifiez que tout fonctionne correctement :
kubectl get pods

Le résultat doit ressembler à l'exemple ci-dessous. Avant de passer à l'étape suivante, réexécutez la commande jusqu'à ce que tous les pods indiquent "Running" (En cours d'exécution).

NAME READY STATUS RESTARTS AGE adservice-55f94cfd9c-4lvml 1/1 Running 0 20m cartservice-6f4946f9b8-6wtff 1/1 Running 2 20m checkoutservice-5688779d8c-l6crl 1/1 Running 0 20m currencyservice-665d6f4569-b4sbm 1/1 Running 0 20m emailservice-684c89bcb8-h48sq 1/1 Running 0 20m frontend-67c8475b7d-vktsn 1/1 Running 0 20m loadgenerator-6d646566db-p422w 1/1 Running 0 20m paymentservice-858d89d64c-hmpkg 1/1 Running 0 20m productcatalogservice-bcd85cb5-d6xp4 1/1 Running 0 20m recommendationservice-685d7d6cd9-pxd9g 1/1 Running 0 20m redis-cart-9b864d47f-c9xc6 1/1 Running 0 20m shippingservice-5948f9fb5c-vndcp 1/1 Running 0 20m
  1. Exécutez la commande suivante pour obtenir l'adresse IP externe de l'application. Cette commande ne renverra une adresse IP qu'une fois le service déployé. Vous devrez donc peut-être la répéter plusieurs fois jusqu'à ce qu'une adresse IP externe lui soit attribuée :
export EXTERNAL_IP=$(kubectl get service frontend-external -o jsonpath="{.status.loadBalancer.ingress[0].ip}") echo $EXTERNAL_IP

(Exemple de résultat)

35.222.235.86
  1. Enfin, vérifiez que l'application est opérationnelle :
curl -o /dev/null -s -w "%{http_code}\n" http://${EXTERNAL_IP}

La confirmation se présentera comme suit :

200

Une fois l'application déployée, vous pouvez aussi accéder à Cloud Console et consulter son état.

  1. Sur la page Kubernetes Engine  > Charges de travail, vous constaterez que tous les pods fonctionnent.
page Charges de travail affichant les pods à l&#39;état OK
  1. Cliquez ensuite sur Services et Ingress, puis vérifiez que tous les services sont corrects.

Ouvrir l'application

Sous Service et Ingress, cliquez sur l'adresse IP de point de terminaison du service frontend-external :

mise en évidence de l&#39;adresse IP externe du service frontend-external

L'application doit s'ouvrir sur une page ressemblant à ceci :

page Web de l&#39;application de démonstration

Cliquez sur Vérifier ma progression pour valider l'objectif. Déployer l'application

Tâche 4 : Gérer les buckets de journaux

Deux options s'offrent à vous pour activer l'analyse de journaux. Vous pouvez mettre à niveau un bucket existant ou créer un bucket de journaux dans lequel l'analyse de journaux est activée.

Mettre à niveau un bucket existant

Suivez ces étapes pour mettre à niveau un bucket de journaux existant :

  1. Dans le menu de gauche, ouvrez Journalisation, puis cliquez sur Stockage des journaux.

  2. Cliquez sur l'option METTRE À NIVEAU d'un bucket existant, par exemple le bucket _Default.

panneau de la page d&#39;informations des buckets avec deux cases cochées
  1. Cliquez sur METTRE À NIVEAU dans la fenêtre pop-up.

  2. Attendez la fin de la mise à niveau. Au début, l'état est Non éligible pour la mise à niveau. Une fois la mise à niveau terminée, l'état est Mis à niveau.

  3. Cliquez sur le bouton déroulant OUVRIR.

  4. Sélectionnez la vue _AllLogs : la page "Analyse de journaux" s'ouvre.

Créer un bucket de journaux

Vous pouvez également configurer Cloud Logging pour créer un bucket de journaux dans lequel l'analyse de journaux est activée.

  1. Dans le menu de gauche, ouvrez Journalisation, puis cliquez sur Stockage des journaux.

  2. Cliquez sur CRÉER UN BUCKET DE JOURNAUX en haut de la page.

  3. Attribuez un nom au bucket, par exemple day2ops-log.

  4. Cochez les cases Effectuer la mise à niveau pour utiliser l'analyse de journaux et Créer un ensemble de données associé dans BigQuery.

  5. Saisissez un nom d'ensemble de données tel que day2ops_log.

panneau de la page d&#39;informations des buckets avec deux cases cochées

Sélectionnez Créer un ensemble de données associé dans BigQuery pour créer un ensemble de données dans BigQuery (s'il n'existe pas déjà). De cette manière, vous pouvez exécuter des requêtes dans BigQuery.

  1. Enfin, cliquez sur Créer un bucket pour créer un bucket de journaux.

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer un bucket de journaux

Écrire dans le nouveau bucket de journaux

Vous pouvez créer un récepteur de journaux pour utiliser le nouveau bucket de journaux. Vous pouvez le faire directement depuis le routeur de journaux ou depuis l'explorateur de journaux. Exécutez des requêtes de journaux pour sélectionner et filtrer les journaux qui vous intéressent et créer un récepteur. L'avantage de cette approche est que la requête du journal est automatiquement copiée dans la configuration du récepteur en tant que filtre.

  1. Dans la partie supérieure droite de l'explorateur de journaux, activez l'option Afficher la requête et exécutez la requête suivante dans le champ de requête :
resource.type="k8s_container"
  1. Cliquez sur Créer un récepteur.
page de l&#39;explorateur de journaux avec le bouton de création d&#39;un récepteur mis en évidence
  1. Nommez le récepteur, par exemple day2ops-sink.

  2. Cliquez sur SUIVANT.

  3. Sélectionnez Bucket Cloud Logging dans la liste déroulante du service du récepteur.

  4. Sélectionnez le bucket de journaux que vous venez de créer.

  5. Cliquez sur SUIVANT.

La requête de type de ressource doit s'afficher dans le filtre.

informations sur le récepteur avec le type de ressource affiché
  1. Cliquez sur CRÉER UN RÉCEPTEUR.

Patientez quelques instants pendant la création du récepteur.

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer le récepteur de journal

Lire des données à partir du nouveau bucket de journaux

Revenez à l'explorateur de journaux. Comme le montre la capture d'écran ci-dessous, il existe un grand nombre de types de ressources différents pour les journaux.

types de ressources et bouton &quot;affiner le champ d&#39;application&quot; mis en évidence
  1. Pour afficher les journaux dans le nouveau bucket de journaux, cliquez sur AFFINER LE CHAMP D'APPLICATION en haut de la page.

  2. Sélectionnez Affiner la recherche par espace de stockage, puis choisissez le bucket de journaux que vous venez de créer.

  3. Cliquez sur APPLIQUER.

Le seul type de ressources affiché correspond aux conteneurs Kubernetes et le nombre d'entrées de journaux affiché est beaucoup plus bas. En effet, seuls les journaux filtrés sont envoyés au bucket.

Tâche 5 : Analyse de journaux

  • À gauche, cliquez sur Analyse de journaux sous Journalisation pour accéder à la fonctionnalité. Ce type de page s'affiche :
a7afa6a91515d206.png

Si votre champ de requête est vide ou que vous avez oublié le nom de la table que vous vouliez utiliser, vous pouvez cliquer sur le bouton Requête pour afficher l'exemple de requête.

Vous pouvez ensuite exécuter vos propres requêtes dans le champ de requête. Voici quelques exemples.

Important : Le nom de la vue de journal dans la clause FROM est différent pour les buckets de journaux. Vous devez vous assurer que vous utilisez le nom de vue correct. Reportez-vous à l'étape précédente pour effectuer la vérification.

Trouver les erreurs les plus récentes

Voici comment identifier les erreurs les plus récentes à partir des conteneurs :

SELECT TIMESTAMP, JSON_VALUE(resource.labels.container_name) AS container, json_payload FROM `logs_day2ops_US._AllLogs` WHERE severity="ERROR" AND json_payload IS NOT NULL ORDER BY 1 DESC LIMIT 50

Une fois la requête exécutée, le résultat qui s'affiche doit ressembler à l'exemple suivant :

résultats de la requête permettant de rechercher les erreurs les plus récentes

Rechercher la latence minimum, maximum et moyenne

Vous pouvez afficher la latence minimum, maximum et moyenne dans un laps de temps donné pour le service frontend :

SELECT hour, MIN(took_ms) AS min, MAX(took_ms) AS max, AVG(took_ms) AS avg FROM ( SELECT FORMAT_TIMESTAMP("%H", timestamp) AS hour, CAST( JSON_VALUE(json_payload, '$."http.resp.took_ms"') AS INT64 ) AS took_ms FROM `logs_day2ops_US._AllLogs` WHERE timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 24 HOUR) AND json_payload IS NOT NULL AND SEARCH(labels, "frontend") AND JSON_VALUE(json_payload.message) = "request complete" ORDER BY took_ms DESC, timestamp ASC ) GROUP BY 1 ORDER BY 1

Une fois la requête exécutée, le résultat qui s'affiche doit ressembler à l'exemple suivant :

résultats de requêtes d&#39;affichage de la latence minimum, maximum et moyenne

Nombre de visites d'une page produit

Si vous souhaitez savoir combien de fois les utilisateurs ont consulté une page de produit spécifique au cours de l'heure écoulée, exécutez la requête suivante :

SELECT count(*) FROM `logs_day2ops_US._AllLogs` WHERE text_payload like "GET %/product/L9ECAV7KIM %" AND timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR)

Une fois la requête exécutée, le résultat qui s'affiche doit ressembler à l'exemple suivant :

résultats de la requête de calcul du nombre de visites d&#39;une page produit

Sessions avec paiement du panier effectué

Exécutez la commande suivante pour afficher le nombre de sessions ayant fait l'objet d'un paiement du panier.

SELECT JSON_VALUE(json_payload.session), COUNT(*) FROM logs_day2ops_US._AllLogs WHERE JSON_VALUE(json_payload['http.req.method']) = "POST" AND JSON_VALUE(json_payload['http.req.path']) = "/cart/checkout" AND timestamp > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 HOUR) GROUP BY JSON_VALUE(json_payload.session)

Une fois la requête exécutée, le résultat qui s'affiche doit ressembler à l'exemple suivant :

résultat de la requête d&#39;affichage du nombre de paiements de paniers

Félicitations !

Vous venez de découvrir comment utiliser Cloud Logging pour obtenir des informations sur les applications qui s'exécutent dans GKE. Vous avez également créé et exécuté des requêtes à l'aide de l'analyse de journaux.

Formations et certifications Google Cloud

Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.

Dernière mise à jour du manuel : 26 septembre 2022

Dernier test de l'atelier : 26 septembre 2022

Copyright 2024 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.