Tutoriel : Se connecter à un service Prometheus auto-hébergé sur un cluster AKS en utilisant un point de terminaison privé managé
Ce guide décrit les étapes d’installation de Prometheus, un kit de ressources de monitoring et d’alerte open source, sur un cluster Azure Kubernetes Service (AKS). Ensuite, vous utilisez le point de terminaison privé managé d’Azure Managed Grafana pour vous connecter à ce serveur Prometheus et affichez les données Prometheus dans un tableau de bord Grafana.
Dans ce tutoriel, vous allez apprendre à :
- Créer un cluster Azure Kubernetes Service
- Installer Prometheus
- Ajouter un service de liaison privée au serveur Prometheus
- Se connecter avec le point de terminaison privé managé
- Afficher les données Prometheus dans un tableau de bord Grafana
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Créer un cluster Azure Kubernetes Service
Connectez-vous à Azure CLI en exécutant la commande
az login
.az login
Si vous avez plusieurs abonnements Azure, sélectionnez votre abonnement Azure avec la commande
az account set -s <your-azure-subscription-id>
.Installez ou mettez à jour kubectl.
az aks install-cli
Créez deux variables bash/zsh, que nous utilisons dans les commandes ultérieures. Changez la syntaxe ci-dessous si vous utilisez un autre interpréteur de commandes.
RESOURCE_GROUP=myResourceGroup AKS_NAME=myaks
Créez un groupe de ressources. Dans cet exemple, nous créons le groupe de ressources dans la région Azure USA Centre-Ouest.
az group create --name $RESOURCE_GROUP --location westcentralus
Créez un cluster AKS avec la commande az aks create. Ici, nous créons un cluster à trois nœuds avec le type de machine virtuelle Burstable de série B, qui est économique et adapté aux petites charges de travail de test/développement comme celles-ci.
az aks create --resource-group $RESOURCE_GROUP \ --name $AKS_NAME \ --node-count 3 \ --node-vm-size Standard_B2s \ --generate-ssh-keys
Cette opération peut prendre quelques minutes.
Authentifiez-vous sur le cluster que vous avez créé.
az aks get-credentials \ --resource-group $RESOURCE_GROUP \ --name $AKS_NAME
Vous pouvez maintenant accéder à votre cluster Kubernetes avec kubectl.
Utilisez kubectl pour voir les nœuds que vous avez créés.
kubectl get nodes
Installer Prometheus
Un moyen populaire d’installer Prometheus est d’utiliser prometheus-operator, qui fournit le déploiement et la gestion Kubernetes natifs de Prometheus et les composants de monitoring associés. Dans ce tutoriel, nous utilisons des graphiques Helm kube-prometheus-stack pour déployer prometheus-operator.
Ajoutez le dépôt helm-charts, puis mettez à jour votre liste de dépôts.
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update
Installez le graphique Helm dans un espace de noms appelé monitoring. Cet espace de noms est créé automatiquement.
helm install prometheus \ prometheus-community/kube-prometheus-stack \ --namespace monitoring \ --create-namespace
La commande Helm vous invite à vérifier l’état des pods déployés. Exécutez la commande suivante :
kubectl --namespace monitoring get pods
Vérifiez que les pods sont tous « En cours d’exécution » avant de continuer. Dans le cas peu probable où ils ne sont pas tous en cours d’exécution, vous pouvez résoudre les problèmes associés.
Ajouter un service de liaison privée au serveur Prometheus
Le service Azure Private Link permet de consommer votre service Kubernetes sur une liaison privée entre différents réseaux virtuels Azure. AKS a une intégration native au service Azure Private Link et vous aide à annoter un objet de service Kubernetes pour créer un service de liaison privée correspondant dans Azure.
Consultez ci-dessous le contenu du fichier pls-prometheus-svc.yaml :
apiVersion: v1
kind: Service
metadata:
name: prom-pls-svc
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true" # Use an internal LB with PLS
service.beta.kubernetes.io/azure-pls-create: "true"
service.beta.kubernetes.io/azure-pls-name: promManagedPls
service.beta.kubernetes.io/azure-pls-proxy-protocol: "false"
service.beta.kubernetes.io/azure-pls-visibility: "*"
spec:
type: LoadBalancer
selector:
# app: myApp
app.kubernetes.io/name: prometheus
prometheus: prometheus-kube-prometheus-prometheus # note that this is related to the release name
ports:
- name: http-web
protocol: TCP
port: 9090
targetPort: 9090
Exécutez la commande suivante pour ajouter le service de liaison privée au serveur Prometheus.
kubectl --namespace monitoring apply -f pls-prometheus-svc.yaml
Le service de liaison privée nommé
promManagedPls
est créé dans le groupe de ressources managé AKS. Ce processus prend quelques minutes.
Se connecter avec un point de terminaison privé managé
Si vous n’avez pas encore d’espace de travail Azure Managed Grafana, créez-en un en suivant le guide de démarrage rapide d’Azure Managed Grafana.
Ouvrez votre espace de travail Azure Managed Grafana et accédez à Mise en réseau>Point de terminaison privé managé>Ajouter.
Entrez un nom pour votre point de terminaison privé managé et sélectionnez votre abonnement Azure.
Pour Type de ressource, sélectionnez Microsoft.Network/privateLinkServices (services de liaison privée) et, pour Ressource cible, sélectionnez le service de liaison privée
promManagedPls
créé à l’étape ci-dessus. Chaque point de terminaison privé managé obtient une adresse IP privée. Vous pouvez également fournir un nom de domaine pour ce point de terminaison privé managé. Le service Azure Managed Grafana garantit que ce domaine est résolu en IP privée du point de terminaison privé managé dans l’environnement Azure Managed Grafana. Par exemple, définissez le domaine sur*.prom.my-own-domain.com
.Approuvez la connexion de point de terminaison privé en accédant à la ressource promManagedPls. Sous Paramètres, accédez à Connexions de point de terminaison privé, sélectionnez votre connexion en cochant la case et Approuver.
Une fois la connexion de point de terminaison privé approuvée, revenez à votre ressource Azure Managed Grafana et sélectionnez le bouton Actualiser sous l’onglet Point de terminaison privé managé pour synchroniser le
Connection state
. Il doit maintenant s’afficher comme Approuvé .
Afficher les données Prometheus dans un tableau de bord Grafana
Ajoutez la source de données Prometheus à Grafana à partir de votre portail Grafana. Pour plus d’informations, accédez à Ajoutez une source de données. Notre URL Prometheus est
http://prom-service.prom.my-own-domain.com:9090
.Pour tirer profit de votre source de données Prometheus auto-hébergée, essayez d’utiliser le tableau de bord Node Explorer Full, ID
1860
. Pour plus d’instructions, accédez à Importer un tableau de bord à partir de Grafana Labs.
Étape suivante
Découvrez comment Utiliser des comptes de service.