Points de contrôle
Use Terraform to set up the necessary infrastructure
/ 50
View Logs in BigQuery
/ 50
Cloud Logging sur Kubernetes Engine
- GSP483
- Présentation
- Architecture
- Préparation
- Tâche 1 : Cloner la démonstration
- Tâche 2 : Déploiement
- Tâche 3 : Validation
- Tâche 4 : Générer des journaux
- Tâche 5 : Journaux dans Cloud Logging
- Tâche 6 : Afficher les exportations de journaux
- Tâche 7 : Journaux dans Cloud Storage
- Tâche 8 : Journaux dans BigQuery
- Tâche 9 : Suppression
- Tâche 10 : Dépannage de votre environnement de production
- Félicitations
GSP483
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é :
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) ;
- vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Démarrer l'atelier et se connecter à la console Google Cloud
-
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 Cloud
- Le temps restant
- Les identifiants temporaires que vous devez utiliser pour cet atelier
- Des informations complémentaires vous permettant d'effectuer l'atelier
-
Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans la fenêtre de navigation privée si vous utilisez le navigateur Chrome).
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. -
Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.
{{{user_0.username | "Username"}}} Vous trouverez également le nom d'utilisateur dans le panneau Détails concernant l'atelier.
-
Cliquez sur Suivant.
-
Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.
{{{user_0.password | "Password"}}} Vous trouverez également le mot de passe dans le panneau Détails concernant l'atelier.
-
Cliquez sur Suivant.
Important : Vous devez utiliser les identifiants fournis pour l'atelier. Ne saisissez pas ceux de votre compte Google Cloud. Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés. -
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 à des essais gratuits.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
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.
- Cliquez sur 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 :
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.
- (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
-
Cliquez sur Autoriser.
-
Vous devez à présent obtenir le résultat suivant :
Résultat :
- (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
Résultat :
Exemple de résultat :
gcloud
, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.
Tâche 1 : Cloner la démonstration
- Dans le ruban supérieur de Cloud Shell, cliquez sur Ouvrir dans une nouvelle fenêtre :
- 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 :
- À présent, clonez les ressources nécessaires pour réaliser cet atelier :
- Modifiez ensuite le répertoire de destination de la démonstration :
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.
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) :
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
-
Supprimez la version du fournisseur Terraform du fichier de script
provider.tf
. -
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
. -
Définissez
~> 2.19.0
comme numéro de version. Après modification, votre fichier de scriptprovider.tf
doit se présenter comme suit :
- 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.
-
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
. -
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).
-
Passez le filtre du type de ressource
resource.type
de container à k8s_container. -
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 :
-
Enregistrez et fermez le fichier.
-
Maintenant, exécutez la commande
make
pour créer l'environnement exécutable :
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.
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.
-
Accédez au menu de navigation > Kubernetes Engine > Clusters pour visualiser le cluster sur lequel l'exemple d'application est déployé.
-
Pour confirmer le bon déploiement de la démonstration, exécutez la commande suivante :
Votre résultat ressemblera à ceci :
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 :
- Dans le menu de navigation de la console Cloud, accédez à la section "Mise en réseau" et cliquez sur Services réseau.
- Sur la page Équilibrage de charge par défaut, cliquez sur le nom de l'équilibreur de charge TCP déjà configuré.
- Repérez la section nommée Interface située en haut de la page Détails de l'équilibreur de charge.
- 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 :
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 :
- Dans le menu de navigation de la console Cloud, sous "Opérations", cliquez sur Journalisation.
- Sur cette page, sous
Resource type
, sélectionnez Conteneur Kubernetes et souscluster_name
, choisissez stackdriver-logging.
- À présent, cliquez sur Exécuter la requête.
- 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 :
- Vous devez toujours vous trouver sur la page Journalisation.
- Dans le menu de navigation de gauche, cliquez sur Routeur de journaux.
- Quatre récepteurs devraient figurer dans la liste des exportations de journaux.
- 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.
- 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 :
- Dans le menu de navigation de la console Cloud, cliquez sur Cloud Storage.
- Trouvez le bucket nommé
stackdriver-gke-logging-<random-Id>
, puis cliquez sur son nom. - 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.).
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 :
- 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. - 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).
- Cliquez sur l'une des tables pour afficher les informations la concernant.
- 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.
- Cliquez sur Requête > Dans un nouvel onglet en haut à droite pour envoyer une requête personnalisée à la table.
- Cette action ajoute une requête à l'éditeur de requête. Cependant, elle contient une erreur.
- 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. - 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.
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 :
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.
-
Vérifiez que le compte répertorié dans
gcloud config list
possède les autorisations nécessaires pour créer des ressources. -
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
- Journalisation de Kubernetes Engine
- Afficher les journaux
- Filtres de journaux avancés
- Présentation des exportations de journaux
- Traiter des journaux à grande échelle à l'aide de Cloud Dataflow
- Fournisseur Terraform pour Google Cloud
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.