Ce tutoriel explique comment utiliser la version Open Source de Prometheus afin de configurer des vérifications d'activité pour des microservices d'application déployés sur Google Kubernetes Engine (GKE).
Ce tutoriel utilise Prometheus Open Source. Cependant, chaque cluster GKE Autopilot déploie automatiquement Managed Service pour Prometheus, la solution multicloud et multiprojets entièrement gérée de Google Cloud pour les métriques Prometheus. Managed Service pour Prometheus vous permet de surveiller vos charges de travail et d'envoyer des alertes à l'échelle mondiale à l'aide de Prometheus, sans avoir à gérer et exploiter manuellement Prometheus à grande échelle.
Vous pouvez également utiliser des outils Open Source tels que Grafana pour visualiser les métriques collectées par Prometheus.
Objectifs
- créer un cluster ;
- déployer Prometheus ;
- déployer l'exemple d'application Bank of Anthos ;
- configurer des vérifications d'activité Prometheus ;
- configurer des alertes Prometheus ;
- configurer Alertmanager pour recevoir une notification dans un canal Slack ;
- simuler une interruption pour tester Prometheus.
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :
Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.
Une fois que vous avez terminé les tâches décrites dans ce document, vous pouvez éviter de continuer à payer des frais en supprimant les ressources que vous avez créées. Pour en savoir plus, consultez la section Effectuer un nettoyage.
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, click Create project to begin creating a new Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the GKE API.
-
In the Google Cloud console, on the project selector page, click Create project to begin creating a new Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the GKE API.
- Installez l'API Helm
Préparer l'environnement
Dans ce tutoriel, vous utilisez Cloud Shell pour gérer les ressources hébergées sur Google Cloud.
Définissez les variables d'environnement par défaut :
gcloud config set project PROJECT_ID gcloud config set compute/region COMPUTE_REGION
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet Google Cloud.PROJECT_ID
: région Compute Engine du cluster. Pour ce tutoriel, la région estus-central1
. En règle générale, vous définissez une région proche de vous.
Clonez l'exemple de dépôt utilisé dans ce tutoriel :
git clone https://github.com/GoogleCloudPlatform/bank-of-anthos.git cd bank-of-anthos/
Créez un cluster :
gcloud container clusters create-auto CLUSTER_NAME \ --release-channel=CHANNEL_NAME \ --region=COMPUTE_REGION
Remplacez les éléments suivants :
CLUSTER_NAME
: nom du nouveau cluster.CHANNEL_NAME
: nom d'une version disponible.
Déployer Prometheus
Installez Prometheus à l'aide de l'exemple de chart Helm :
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install tutorial bitnami/kube-prometheus \
--version 8.2.2 \
--values extras/prometheus/oss/values.yaml \
--wait
Cette commande installe Prometheus avec les composants suivants :
- Opérateur Prometheus : une méthode populaire pour déployer et configurer Prometheus Open Source.
- Alertmanager : gère les alertes envoyées par le serveur Prometheus et les achemine vers des applications, telles que Slack.
- Exportateur par boîte noire : permet aux points de terminaison de vérification de Prometheus d'utiliser HTTP, HTTPS, DNS, TCP, ICMP et gRPC.
Déployer Bank of Anthos
Déployez l'exemple d'application Bank of Anthos :
kubectl apply -f extras/jwt/jwt-secret.yaml
kubectl apply -f kubernetes-manifests
Notifications Slack
Pour configurer des notifications Slack, vous devez créer une application Slack, activer les webhooks entrants pour l'application et installer l'application dans un espace de travail Slack.
Créer l'application Slack
Rejoignez un espace de travail Slack en vous inscrivant avec votre adresse e-mail ou en utilisant une invitation envoyée par un administrateur de l'espace de travail.
Connectez-vous à Slack à l'aide du nom de votre espace de travail et des identifiants de votre compte Slack.
-
- Dans la boîte de dialogue Créer une application, cliquez sur À partir de zéro.
- Spécifiez un Nom d'application et choisissez votre espace de travail Slack.
- Cliquez sur Create App (Créer l'application).
- Sous Ajouter des fonctionnalités, cliquez sur Webhooks entrants.
- Cliquez sur le bouton Activer les webhooks entrants.
- Dans la section URL de webhook pour votre espace de travail, cliquez sur Ajouter un webhook à l'espace de travail.
- Sur la page qui s'ouvre, sélectionnez un canal pour recevoir les notifications.
- Cliquez sur Autoriser.
- Un webhook pour votre application Slack s'affiche dans la section URL de webhook pour votre espace de travail. Enregistrez l'URL pour plus tard.
Configurer Alertmanager
Créez un secret Kubernetes pour stocker l'URL du webhook :
kubectl create secret generic alertmanager-slack-webhook --from-literal webhookURL=SLACK_WEBHOOK_URL
kubectl apply -f extras/prometheus/oss/alertmanagerconfig.yaml
Remplacez SLACK_WEBHOOK_URL
par l'URL du webhook obtenue à la section précédente.
Configurer Prometheus
Examinez le fichier manifeste suivant :
Ce fichier manifeste décrit les vérifications d'activité Prometheus et inclut les champs suivants :
spec.jobName
: nom du job attribué aux métriques scrapées.spec.prober.url
: URL de service de l'exportateur par boîte noire. Cet élément inclut le port par défaut de l'exportateur par boîte noire, qui est défini dans le chart Helm.spec.prober.path
: chemin de collecte des métriques.spec.targets.staticConfig.labels
: libellés attribués à toutes les métriques scrapées sur les cibles.spec.targets.staticConfig.static
: liste des hôtes à vérifier.
Appliquez le fichier manifeste à votre cluster :
kubectl apply -f extras/prometheus/oss/probes.yaml
Examinez le fichier manifeste suivant :
Ce fichier manifeste décrit une règle
PrometheusRule
et inclut les champs suivants :spec.groups.[*].name
: nom du groupe de règles.spec.groups.[*].interval
: fréquence à laquelle les règles du groupe sont évaluées.spec.groups.[*].rules[*].alert
: nom de l'alerte.spec.groups.[*].rules[*].expr
: expression PromQL à évaluer.spec.groups.[*].rules[*].for
: durée pendant laquelle les alertes doivent être renvoyées pour être considérées comme déclenchées.spec.groups.[*].rules[*].annotations
: liste d'annotations à ajouter à chaque alerte. Cela n'est valide que pour les règles d'alerte.spec.groups.[*].rules[*].labels
: libellés à ajouter ou à écraser.
Appliquez le fichier manifeste à votre cluster :
kubectl apply -f extras/prometheus/oss/rules.yaml
Simuler une interruption
Simulez une interruption en procédant à un scaling à zéro du déploiement
contacts
:kubectl scale deployment contacts --replicas 0
Un message de notification doit s'afficher dans la chaîne de votre espace de travail Slack. GKE peut prendre jusqu'à cinq minutes pour effectuer le scaling du déploiement.
Restaurez le déploiement de
contacts
:kubectl scale deployment contacts --replicas 1
Un message de notification indiquant la résolution de l'alerte doit s'afficher dans la chaîne de votre espace de travail Slack. GKE peut prendre jusqu'à cinq minutes pour effectuer le scaling du déploiement.
Effectuer un nettoyage
Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.
Supprimer le projet
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Supprimer des ressources individuelles
Supprimez les ressources Kubernetes :
kubectl delete -f kubernetes-manifests
Désinstallez Prometheus :
helm uninstall tutorial
Supprimez le cluster GKE :
gcloud container clusters delete CLUSTER_NAME --quiet
Étapes suivantes
- Découvrez Google Cloud Managed Service pour Prometheus, une solution de métriques mondiale, entièrement gérée et basée sur Prometheus, qui est déployée par défaut dans tous les clusters Autopilot.
- Découvrez des architectures de référence, des schémas et des bonnes pratiques concernant Google Cloud. Consultez notre Centre d'architecture cloud.