Share via


Zelfstudie: verbinding maken met een zelf-hostende Prometheus-service op een AKS-cluster met behulp van een beheerd privé-eindpunt

In deze handleiding wordt u begeleid bij de stappen voor het installeren van Prometheus, een opensource-bewakings- en waarschuwingstoolkit, op een AKS-cluster (Azure Kubernetes Service). Vervolgens gebruikt u het beheerde privé-eindpunt van Azure Managed Grafana om verbinding te maken met deze Prometheus-server en de Prometheus-gegevens weer te geven in een Grafana-dashboard.

In deze zelfstudie leert u het volgende:

  • Een Azure Kubernetes Service-cluster maken
  • Prometheus installeren
  • Een Private Link-service toevoegen aan de Prometheus-server
  • Verbinding maken met beheerd privé-eindpunt
  • Prometheus-gegevens weergeven in een Grafana-dashboard

Vereisten

Voordat u begint, controleert u of u het volgende hebt:

Een Azure Kubernetes Service-cluster maken

  1. Meld u aan bij de Azure CLI door de opdracht uit te az login voeren.

    az login
    

    Als u meerdere Azure-abonnementen hebt, selecteert u uw Azure-abonnement met de opdracht az account set -s <your-azure-subscription-id>.

  2. Installeer of werk kubectl bij.

    az aks install-cli
    
  3. Maak twee bash-/zsh-variabelen, die we in de volgende opdrachten gaan gebruiken. Wijzig de onderstaande syntaxis als u een andere shell gebruikt.

    RESOURCE_GROUP=myResourceGroup 
    AKS_NAME=myaks
    
  4. Maak een resourcegroep. In dit voorbeeld maken we de resourcegroep in de Azure-regio VS - west-centraal.

    az group create --name $RESOURCE_GROUP --location westcentralus
    
  5. Maak een nieuw AKS-cluster met behulp van de opdracht az aks create . Hier maken we een cluster met drie knooppunten met behulp van het type virtuele machine van de B-serie Burstable. Dit is rendabel en geschikt voor kleine test-/ontwikkelworkloads, zoals deze.

    az aks create --resource-group $RESOURCE_GROUP \
      --name $AKS_NAME \
      --node-count 3 \
      --node-vm-size Standard_B2s \
      --generate-ssh-keys
    

    Deze bewerking kan enkele minuten duren.

  6. Verifieer bij het cluster dat u hebt gemaakt.

    az aks get-credentials \
      --resource-group $RESOURCE_GROUP \
      --name $AKS_NAME
    

    U hebt nu toegang tot uw Kubernetes-cluster met kubectl.

  7. Gebruik kubectl om de knooppunten te zien die u hebt gemaakt.

    kubectl get nodes
    

Prometheus installeren

Een populaire manier om Prometheus te installeren is via de prometheus-operator, die kubernetes systeemeigen implementatie en beheer van Prometheus en gerelateerde bewakingsonderdelen biedt. In deze zelfstudie gebruiken we kube-prometheus-stack Helm-grafieken om de prometheus-operator te implementeren.

  1. Voeg de helm-charts-opslagplaats toe en werk vervolgens de lijst met opslagplaatsen bij.

    helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
    helm repo update
    
  2. Installeer de Helm-grafiek in een naamruimte met de naam Bewaking. Deze naamruimte wordt automatisch gemaakt.

    helm install prometheus \
      prometheus-community/kube-prometheus-stack \
      --namespace monitoring \
      --create-namespace
    
  3. Met de Helm-opdracht wordt u gevraagd om de status van de geïmplementeerde pods te controleren. Voer de volgende opdracht uit.

    kubectl --namespace monitoring get pods
    
  4. Zorg ervoor dat de pods worden uitgevoerd voordat u doorgaat. Als ze in de onwaarschijnlijke omstandigheden niet de status Actief bereiken, kunt u deze problemen oplossen.

De Azure Private Link-service maakt het verbruik van uw Kubernetes-service mogelijk via private link in verschillende virtuele Azure-netwerken. AKS heeft een systeemeigen integratie met Azure Private Link Service en helpt u aantekeningen te maken bij een Kubernetes-serviceobject om een bijbehorende Private Link-service in Azure te maken.

Zie hieronder de inhoud van het bestand 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. Voer de volgende opdracht uit om de private link-service toe te voegen aan de Prometheus-server.

    kubectl --namespace monitoring apply -f pls-prometheus-svc.yaml
    
  2. De private link-service met de naam promManagedPls wordt gemaakt in de beheerde AKS-resourcegroep. Dit duurt enkele minuten.

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

Verbinding maken met een beheerd privé-eindpunt

  1. Als u nog geen Azure Managed Grafana-werkruimte hebt, maakt u er een door de quickstart voor Azure Managed Grafana te volgen.

  2. Open uw Azure Managed Grafana-werkruimte en ga naar Netwerken>beheerd privé-eindpunt>maken.

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

  3. Voer een naam in voor uw beheerde privé-eindpunt en selecteer uw Azure-abonnement.

  4. Selecteer voor resourcetype Microsoft.Network/privateLinkServices (Private Link-services) en selecteer voor doelresource de promManagedPls private link-service die u in de bovenstaande stap hebt gemaakt. Elk beheerd privé-eindpunt krijgt een privé-IP-adres. U kunt ook een domeinnaam opgeven voor dit beheerde privé-eindpunt. De Azure Managed Grafana-service zorgt ervoor dat dit domein wordt omgezet in het privé-IP-adres van het beheerde privé-eindpunt in de Azure Managed Grafana-omgeving. Stel bijvoorbeeld het domein in op *.prom.my-own-domain.com.

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

  5. Keur de privé-eindpuntverbinding goed door naar de promManagedPls-resource te gaan. Schakel onder Instellingen privé-eindpuntverbindingen uw verbinding in met behulp van het selectievakje en Goedkeuren.

    Screenshot of the Azure platform showing the Approve connection action.

  6. Nadat de privé-eindpuntverbinding is goedgekeurd, gaat u terug naar uw Azure Managed Grafana-resource en selecteert u de knop Vernieuwen op het tabblad Beheerd privé-eindpunt om het Connection statete synchroniseren. Deze moet nu worden weergegeven als Goedgekeurd.

    Screenshot of the Azure platform showing the Refresh button.

Prometheus-gegevens weergeven in een Grafana-dashboard

  1. Voeg de Prometheus-gegevensbron toe aan Grafana vanuit uw Grafana-portal. Ga naar Een gegevensbron toevoegen voor meer informatie. Onze Prometheus-URL is http://prom-service.prom.my-own-domain.com:9090.

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

  2. Als u gebruik wilt maken van uw zelf-hostende Prometheus-gegevensbron, gebruikt u het dashboard Volledig knooppuntexporteur, id 1860. Ga voor meer richtlijnen naar Een dashboard importeren vanuit Grafana Labs.

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

Volgende stap

Meer informatie over het gebruik van serviceaccounts.