arrow_back

Cloud Logging sur Kubernetes Engine

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

Cloud Logging sur Kubernetes Engine

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

GSP483

Google Cloud – Ateliers adaptés au rythme de chacun

Présentation

Cloud Logging permet d'agréger les journaux provenant de toutes les ressources Google Cloud et ceux des ressources personnalisées situées sur d'autres plates-formes, faisant office d'espace de stockage centralisé pour l'ensemble des journaux et des métriques. Une fois agrégés, les journaux sont visibles dans l'UI de Cloud Logging. Ils peuvent également être exportés vers des récepteurs si nécessaire pour des cas d'utilisation plus spécifiques. À l'heure actuelle, Cloud Logging permet l'exportation vers les récepteurs suivants :

  • Cloud Storage
  • Pub/Sub
  • BigQuery

Dans cet atelier, vous allez déployer sur Kubernetes Engine un exemple d'application qui transférera les événements de journaux à Cloud Logging à l'aide de Terraform, un outil Infrastructure as Code déclaratif qui permet d'utiliser des fichiers de configuration pour automatiser le déploiement et l'évolution de l'infrastructure dans le cloud. La configuration va également créer un bucket Cloud Storage et un ensemble de données BigQuery vers lesquels exporter les données des journaux.

Cet atelier a été conçu par les ingénieurs de GKE Helmsman pour vous aider à mieux comprendre Cloud Logging. Pour regarder cette démonstration, exécutez les commandes gsutil cp -r gs://spls/gke-binary-auth/* . et cd gke-binary-auth-demo dans Cloud Shell. Nous vous invitons tous à enrichir nos ressources !

Architecture

Les configurations Terraform vont créer un cluster Kubernetes Engine qui va générer des journaux et des métriques pouvant être ingérés par Stackdriver. Les scripts vont également engendrer des récepteurs d'exportation de journaux pour Cloud Storage, BigQuery et Cloud Pub/Sub.

Le graphique ci-dessous vous donne un aperçu de l'architecture et du flux de données associé :

Schéma de l'architecture de Cloud Logging

Préparation

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 : Cloner la démonstration

  1. Dans le ruban supérieur de Cloud Shell, cliquez sur Ouvrir dans une nouvelle fenêtre :

Ruban de Cloud Shell sur lequel l&#39;icône &quot;Ouvrir dans une nouvelle fenêtre&quot; est encadrée

  1. Exécutez la commande suivante pour définir l'ID de votre projet Google Cloud. Remplacez <YOUR_PROJECT_ID> par votre ID de projet Qwiklabs :
gcloud config set project <YOUR_PROJECT_ID>
  1. À présent, clonez les ressources nécessaires pour réaliser cet atelier :
git clone https://github.com/GoogleCloudPlatform/gke-logging-sinks-demo
  1. Modifiez ensuite le répertoire de destination de la démonstration :
cd gke-logging-sinks-demo

Définir votre région et votre zone

Certaines ressources Compute Engine sont hébergées dans des régions et des zones. Une région est un emplacement géographique spécifique où vous pouvez exécuter vos ressources. Chaque région se compose d'une ou plusieurs zones.

Pour en savoir plus et accéder à une liste complète des régions et zones disponibles, accédez à l'article Régions et zones.

Exécutez la commande suivante pour définir la région et la zone associées à votre atelier (vous pouvez utiliser la région/zone qui vous convient le mieux) :

gcloud config set compute/region {{{ project_0.default_region | REGION }}} gcloud config set compute/zone {{{ project_0.default_zone | ZONE }}}

Tâche 2 : Déploiement

Comme Terraform applique les principes de l'Infrastructure as Code et de l'infrastructure immuable, il permet d'écrire des descriptions déclaratives de l'état souhaité de l'infrastructure. Lorsque le descripteur est appliqué, Terraform utilise les API Google Cloud pour provisionner et mettre à jour les ressources à mettre en correspondance.

Il compare l'état souhaité à l'état actuel, ce qui permet d'apporter des modifications incrémentielles sans avoir besoin de tout effacer et recommencer. Par exemple, Terraform est capable de créer des projets Google Cloud, des instances de calcul, etc., et même de configurer un cluster Kubernetes Engine pour y déployer des applications. Lorsque les exigences changent, le descripteur peut être mis à jour et Terraform ajuste alors l'infrastructure cloud en conséquence.

Dans cet atelier, nous allons démarrer un cluster Kubernetes Engine pour y déployer un exemple d'application simple. Par défaut, les clusters Kubernetes Engine de Google Cloud sont provisionnés avec un collecteur préconfiguré basé sur Fluentd qui transfère les journaux à Cloud Logging. Les interactions avec l'exemple d'application vont produire des journaux qui seront visibles dans Cloud Logging et d'autres récepteurs d'événements de journaux.

Mettre à jour le fichier provider.tf

  1. Supprimez la version du fournisseur Terraform du fichier de script provider.tf.

  2. Dans l'onglet "Éditeur" de Cloud Shell, sélectionnez File > Open (Fichier > Ouvrir), puis cliquez sur Open (Ouvrir). Dans le menu de gauche, ouvrez le fichier /gke-logging-sinks-demo/terraform/provider.tf.

  3. Définissez ~> 2.19.0 comme numéro de version. Après modification, votre fichier de script provider.tf doit se présenter comme suit :

.... provider "google" { project = var.project version = "~> 2.19.0" }
  1. Enregistrez et fermez le fichier.

Déployer le cluster

Dans le cadre de cet atelier, trois fichiers Terraform sont fournis en exemple.

Le premier, main.tf, est le point de départ de Terraform. Il décrit les fonctionnalités qui seront utilisées, les ressources qui seront manipulées et les résultats qui en découleront.

Le deuxième fichier, provider.tf, spécifie le fournisseur de services cloud et la version du cloud qui seront la cible des commandes Terraform ; dans le cas présent, Google Cloud.

Le dernier fichier, variables.tf, contient une liste de variables qui seront utilisées comme entrées dans Terraform. Pour toutes les variables référencées dans le fichier main.tf dont les valeurs par défaut ne sont pas configurées dans variables.tf, l'utilisateur verra s'afficher des invites au moment de l'exécution.

  1. Vous allez apporter une petite modification au fichier main.tf. Dans le menu de gauche, ouvrez le fichier /gke-logging-sinks-demo/terraform/main.tf.

  2. Faites-le défiler jusqu'à la ligne 110 et localisez la section "Create the Stackdriver Export Sink for Cloud Storage GKE Notifications" (Créer le récepteur d'exportations Stackdriver pour les notifications GKE Cloud Storage).

  3. Passez le filtre du type de ressource resource.type de container à k8s_container.

  4. Répétez cette opération pour "bigquery-sink" ligne 119. Vérifiez que ces deux sections servant à la création des récepteurs d'exportations se présentent comme ceci avant de passer à la suite :

Exemple d&#39;extrait de code dans lequel &quot;k8s_container&quot; est encadré

  1. Enregistrez et fermez le fichier.

  2. Maintenant, exécutez la commande make pour créer l'environnement exécutable :

make create Remarque : Si vous voyez s'afficher des avertissements d'abandon concernant la variable "zone", veuillez les ignorer et poursuivre l'atelier.

Tester la tâche terminée

Cliquez sur Vérifier ma progression pour valider la tâche exécutée. Si vous avez réussi à mettre en place l'infrastructure nécessaire à l'aide de Terraform, vous verrez une note d'évaluation s'afficher.

Configurer l'infrastructure nécessaire à l'aide de Terraform

Tâche 3 : Validation

Si aucune erreur ne s'affiche lors du déploiement, votre cluster Kubernetes Engine devrait apparaître dans la console Cloud après quelques minutes.

  1. Accédez au menu de navigation > Kubernetes Engine > Clusters pour visualiser le cluster sur lequel l'exemple d'application est déployé.

  2. Pour confirmer le bon déploiement de la démonstration, exécutez la commande suivante :

make validate

Votre résultat ressemblera à ceci :

Écran affichant le résultat de la validation

Maintenant que l'application est déployée sur Kubernetes Engine, vous pouvez générer des données de journaux et utiliser Cloud Logging et d'autres outils pour les visualiser.

Tâche 4 : Générer des journaux

L'exemple d'application déployé avec Terraform affiche une page Web simple.

À chaque fois que vous ouvrez cette application dans votre navigateur, elle publie des événements de journaux dans Cloud Logging. Lorsque vous actualisez la page plusieurs fois, elle produit plusieurs événements de journaux.

Suivez les étapes ci-dessous pour obtenir l'URL de la page d'application :

  1. Dans le menu de navigation de la console Cloud, accédez à la section "Mise en réseau" et cliquez sur Services réseau.
  2. Sur la page Équilibrage de charge par défaut, cliquez sur le nom de l'équilibreur de charge TCP déjà configuré.
  3. Repérez la section nommée Interface située en haut de la page Détails de l'équilibreur de charge.
  4. Dans "Interface", copiez la valeur de l'URL IP:Port. Ouvrez une nouvelle fenêtre de navigation et collez l'URL. Le navigateur devrait afficher un écran semblable à celui que vous voyez ci-dessous :

Écran de l&#39;exemple d&#39;application qui affiche un message &quot;Hello, world!&quot;, le numéro de version et le nom de l&#39;hôte

Remarque : Pensez à actualiser la page plusieurs fois afin de créer plusieurs événements de journaux.

Tâche 5 : Journaux dans Cloud Logging

Cloud Logging fournit une UI qui permet de visualiser les événements de journaux. Elle comporte des fonctions de filtre et de recherche élémentaires, qui peuvent être utiles pour déboguer des problèmes système.

Cloud Logging convient mieux à l'exploration des événements de journaux les plus récents. Les utilisateurs ayant besoin d'une solution de stockage des événements de journaux à long terme pourront envisager d'avoir recours aux outils présentés dans les sections suivantes.

Procédez comme suit pour accéder à la console Cloud Logging :

  1. Dans le menu de navigation de la console Cloud, sous "Opérations", cliquez sur Journalisation.
  2. Sur cette page, sous Resource type, sélectionnez Conteneur Kubernetes et sous cluster_name, choisissez stackdriver-logging.

Page &quot;Champs de journal&quot; sur laquelle le type de ressource, le nom du cluster et le nom de l&#39;espace de noms sont sélectionnés

  1. À présent, cliquez sur Exécuter la requête.

Onglet du générateur de requêtes

  1. Dans les résultats de la requête, vous pouvez développer les éléments de journaux listés pour obtenir plus de détails sur chaque entrée de journal.

La console Logging vous permet de créer des requêtes à l'aide du générateur de requêtes, ou d'essayer différentes fonctionnalités comme les champs de journal, le fuseau horaire, etc.

Tâche 6 : Afficher les exportations de journaux

La configuration Terraform a créé deux récepteurs d'exportation de journaux. Suivez les étapes ci-dessous pour afficher les récepteurs :

  1. Vous devez toujours vous trouver sur la page Journalisation.
  2. Dans le menu de navigation de gauche, cliquez sur Routeur de journaux.
  3. Quatre récepteurs devraient figurer dans la liste des exportations de journaux.
  4. Vous pouvez modifier ou visualiser ces récepteurs en cliquant sur le menu contextuel (représenté par trois points), que vous trouverez à droite de chaque récepteur, puis en sélectionnant l'option Modifier le récepteur.
  5. Vous pouvez également créer des récepteurs d'exportation personnalisés supplémentaires en cliquant sur l'option Créer un récepteur située en haut de la fenêtre de navigation.

Tâche 7 : Journaux dans Cloud Storage

Les événements de journaux peuvent être stockés dans Cloud Storage, un système de stockage d'objets adapté à l'archivage des données.

Il est possible de configurer des règles pour les buckets Cloud Storage. Cela permet, par exemple, d'attribuer une date d'expiration aux données les plus anciennes afin de procéder à leur suppression, ou d'assigner différentes classes de stockage aux données les plus récentes, en fonction des tarifs et des disponibilités.

La configuration Terraform a créé un bucket Cloud Storage nommé stackdriver-gke-logging-, vers lequel les journaux seront exportés pour être archivés à moyen ou long terme.

Dans cet exemple, la classe de stockage du bucket est définie sur Nearline, car dans un environnement de production standard, l'accès aux journaux n'est pas fréquent (cela permettra de mieux gérer les coûts relatifs au stockage à moyen terme). Dans un scénario de production, ce bucket pourra également intégrer une règle relative au cycle de vie, qui aura pour effet de déplacer le contenu vers un stockage Coldline pour réduire les coûts du stockage à long terme des journaux.

Pour accéder aux journaux stockés dans Cloud Storage, suivez les étapes ci-dessous :

  1. Dans le menu de navigation de la console Cloud, cliquez sur Cloud Storage.
  2. Trouvez le bucket nommé stackdriver-gke-logging-<random-Id>, puis cliquez sur son nom.
  3. Malheureusement, les récepteurs mettent un peu de temps à propager les journaux à Cloud Storage. Par conséquent, vous ne verrez probablement aucun détail de journaux dans votre bucket.

Si vous revenez dans le bucket vers la fin de l'atelier, vous y verrez peut-être des dossiers correspondant aux pods en cours d'exécution sur le cluster (autoscaler, dnsmasq, etc.).

Fenêtre des informations sur le bucket affichant une liste de dossiers sur la page à onglets &quot;Objets&quot;

Cliquez sur un dossier pour consulter des informations relatives à un journal spécifique, tel que heapster, kubedns ou sidecar.

Tâche 8 : Journaux dans BigQuery

Il est possible de configurer les événements de journaux de manière à les publier dans BigQuery, un outil d'entreposage de données capable d'envoyer rapidement des requêtes complexes à des ensembles de données volumineux.

La configuration Terraform va créer un ensemble de données BigQuery nommé gke_logs_dataset. Cet ensemble de données sera configuré de sorte à intégrer tous les journaux Kubernetes Engine générés dans l'heure qui précède (via la définition d'une valeur d'expiration de la table par défaut pour l'ensemble de données). Les journaux des conteneurs Kubernetes Engine seront transférés vers l'ensemble de données.

Pour accéder aux journaux dans BigQuery, procédez comme suit :

Remarque : L'exportation vers BigQuery n'est pas immédiate. Les journaux peuvent mettre quelques instants à apparaître.
  1. Dans la section "Big data" du menu de navigation, cliquez sur BigQuery si le message Welcome to BigQuery in the Cloud Console s'affiche. Cliquez sur OK.
  2. Cliquez sur le nom de votre projet dans le menu de gauche. Vous devriez voir un ensemble de données nommé gke_logs_dataset. Développez cet ensemble de données pour afficher les tables existantes (Remarque : La création de l'ensemble de données est immédiate, mais les tables sont générées lors de l'écriture des journaux, et lorsque de nouvelles tables sont requises).
  3. Cliquez sur l'une des tables pour afficher les informations la concernant.
  4. Reportez-vous au schéma de la table pour noter les noms des colonnes et les types de données correspondants. Vous pourrez utiliser ces informations dans l'étape suivante, qui consiste à interroger les tables pour visualiser les données.

Page à onglets &quot;Schéma&quot; de la table &quot;stderr&quot; dans &quot;gke_logs_dataset&quot;

  1. Cliquez sur Requête > Dans un nouvel onglet en haut à droite pour envoyer une requête personnalisée à la table.
  2. Cette action ajoute une requête à l'éditeur de requête. Cependant, elle contient une erreur.
  3. Modifiez la requête en ajoutant un astérisque (*) après Select (Sélectionner) pour récupérer toutes les informations de la table actuelle. Remarque : La requête Select * ayant généralement un coût élevé, son utilisation n'est pas recommandée. Dans le cadre de cet atelier, l'ensemble de données est limité aux journaux générés dans l'heure qui précède, sa taille est donc relativement restreinte.
  4. Cliquez sur Exécuter pour exécuter la requête et renvoyer certains résultats de la table.

La fenêtre de résultats devrait afficher plusieurs lignes et colonnes, que vous pouvez faire défiler. Si vous le souhaitez, vous pouvez exécuter des requêtes personnalisées permettant de filtrer des données spécifiques d'après les résultats renvoyés par la requête initiale.

Tester la tâche terminée

Cliquez sur Vérifier ma progression pour valider la tâche exécutée. Si le récepteur BigQuery a écrit des journaux dans l'ensemble de données BigQuery, vous verrez une note d'évaluation s'afficher.

Afficher les journaux dans BigQuery

Tâche 9 : Suppression

  • Qwiklabs supprimera toutes les ressources utilisées dans le cadre de cet atelier. Toutefois, en conditions réelles, afin de nettoyer votre environnement pour limiter vos dépenses et utiliser le cloud de manière raisonnée, vous devrez saisir la commande suivante :
make teardown

Comme Terraform effectue le suivi de toutes les ressources qu'il a créées, il est en mesure de toutes les supprimer.

Tâche 10 : Dépannage de votre environnement de production

Le script d'installation échoue, affichant le message Permission denied (Autorisation refusée) lors de l'exécution de Terraform.

Les identifiants utilisés par Terraform ne fournissent pas les autorisations nécessaires pour créer des ressources dans les projets sélectionnés.

  1. Vérifiez que le compte répertorié dans gcloud config list possède les autorisations nécessaires pour créer des ressources.

  2. Si c'est le cas, générez à nouveau les informations d'identification par défaut de l'application à l'aide de gcloud auth application-default login.

Le bucket Cloud Storage n'est pas rempli

Le bucket Cloud Storage est créé une fois la configuration Terraform terminée. Cependant, il arrive qu'il faille patienter avant de voir apparaître les données de journaux du cluster Kubernetes Engine.

Soyez patients : il peut se passer deux à trois heures avant que les premières entrées s'affichent. Pour en savoir plus sur Cloud Storage, consultez la documentation Afficher les journaux dans les destinations de récepteurs.

Aucune table n'est créée dans l'ensemble de données BigQuery

Une fois la configuration Terraform terminée, l'ensemble de données BigQuery est créé. Toutefois, les tables n'auront pas forcément été créées au moment où vous irez consulter les résultats.
Il est rare que les tables soient remplies immédiatement.

Patientez au moins cinq minutes pour laisser le temps au processus de s'achever avant d'envisager la possibilité d'un dysfonctionnement.

Félicitations

Terminer votre quête

Cet atelier d'auto-formation fait partie des quêtes Google Cloud's Operations Suite on GKE et Google Cloud Logging. Une quête est une série d'ateliers associés qui constituent un parcours de formation. Si vous terminez une quête, vous obtenez un badge attestant de votre réussite. Vous pouvez rendre publics les badges que vous recevez et ajouter leur lien dans votre CV en ligne ou sur vos comptes de réseaux sociaux. Inscrivez-vous à l'une de ces deux quêtes pour obtenir immédiatement les crédits associés à cet atelier si vous l'avez suivi. Découvrez toutes les quêtes disponibles dans le catalogue Google Cloud Skills Boost.

Étapes suivantes et informations supplémentaires

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 : 18 octobre 2023
Dernier test de l'atelier : 20 octobre 2023

Copyright 2024 Google LLC. Ce logiciel est distribué tel quel, sans garantie ni représentation pour quelque utilisation ou fin que ce soit. Votre utilisation de ce logiciel est sujette à l'accord conclu avec Google.