Partage via


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

  1. Connectez-vous à Azure CLI en exécutant la commandeaz 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>.

  2. Installez ou mettez à jour kubectl.

    az aks install-cli
    
  3. 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
    
  4. 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
    
  5. 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.

  6. 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.

  7. 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.

  1. 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
    
  2. 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
    
  3. La commande Helm vous invite à vérifier l’état des pods déployés. Exécutez la commande suivante :

    kubectl --namespace monitoring get pods
    
  4. 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.

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
  1. 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
    
  2. Le service de liaison privée nommé promManagedPls est créé dans le groupe de ressources managé AKS. Ce processus prend quelques minutes.

    Screenshot of the Azure platform: showing the created Private Link Service resource.

Se connecter avec un point de terminaison privé managé

  1. 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.

  2. Ouvrez votre espace de travail Azure Managed Grafana et accédez à Réseau>Point de terminaison privé managé>Créer.

    Screenshot of the Azure platform showing the managed private endpoints page within an Azure Managed Grafana resource.

  3. Entrez un nom pour votre point de terminaison privé managé et sélectionnez votre abonnement Azure.

  4. 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.

    Screenshot of the Azure platform showing Prometheus information entered for the new managed private endpoint.

  5. 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.

    Screenshot of the Azure platform showing the Approve connection action.

  6. 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é .

    Screenshot of the Azure platform showing the Refresh button.

Afficher les données Prometheus dans un tableau de bord Grafana

  1. 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.

    Screenshot of the Grafana platform showing adding Prometheus as a data source.

  2. 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.

    Screenshot of the Azure Grafana platform showing the sample Prometheus dashboard.

Étape suivante

Découvrez comment Utiliser des comptes de service.