
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Use Terraform to set up the necessary infrastructure
/ 50
View Logs in BigQuery
/ 50
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 :
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 !
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é :
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 :
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 :
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.
Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.
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.
Vous trouverez également le mot de passe dans le panneau Détails concernant l'atelier.
Cliquez sur Suivant.
Accédez aux pages suivantes :
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
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.
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.
Cliquez sur Autoriser.
Vous devez à présent obtenir le résultat suivant :
Résultat :
Résultat :
Exemple de résultat :
gcloud
, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.
<YOUR_PROJECT_ID>
par votre ID de projet Qwiklabs :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) :
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.
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 script provider.tf
doit se présenter comme suit :
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 :
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.
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.
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 :
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 :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 :
Resource type
, sélectionnez Conteneur Kubernetes et sous cluster_name
, choisissez stackdriver-logging.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.
La configuration Terraform a créé deux récepteurs d'exportation de journaux. Suivez les étapes ci-dessous pour afficher les récepteurs :
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 :
stackdriver-gke-logging-<random-Id>
, puis cliquez sur son nom.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.
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 :
Welcome to BigQuery in the Cloud Console
s'affiche. Cliquez sur OK.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.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.
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.
Comme Terraform effectue le suivi de toutes les ressources qu'il a créées, il est en mesure de toutes les supprimer.
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 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.
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.
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.
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.
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.
Ce contenu n'est pas disponible pour le moment
Nous vous préviendrons par e-mail lorsqu'il sera disponible
Parfait !
Nous vous contacterons par e-mail s'il devient disponible
One lab at a time
Confirm to end all existing labs and start this one