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 deGoogle Cloudpour 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.
Préparer l'environnement
Dans ce tutoriel, vous utilisez Cloud Shell pour gérer les ressources hébergées surGoogle Cloud.
Définissez les variables d'environnement par défaut :
gcloud config set project PROJECT_ID gcloud config set compute/region CONTROL_PLANE_LOCATION
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet Google Cloud.CONTROL_PLANE_LOCATION
: région Compute Engine du plan de contrôle de votre 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 \ --location=CONTROL_PLANE_LOCATION
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.