Tutorial: Herstellen einer Verbindung mit einem selbst gehosteten Prometheus-Dienst auf einem AKS-Cluster mithilfe eines verwalteten privaten Endpunkts

Dieser Leitfaden führt Sie durch die Schritte zum Installieren von Prometheus, einem Open-Source Überwachungs- and Warnungs-Toolkit, auf einem Azure Kubernetes Service (AKS)-Cluster. Anschließend verwenden Sie den verwalteten privaten Endpunkt von Azure Managed Grafana, um eine Verbindung mit diesem Prometheus-Server herzustellen und die Prometheus-Daten in einem Grafana-Dashboard anzuzeigen.

In diesem Tutorial lernen Sie Folgendes:

  • Erstellen eines Azure Kubernetes Service-Clusters
  • Installieren von Prometheus
  • Hinzufügen eines Private Link-Dienst zum Prometheus-Server
  • Herstellen einer Verbindung mit einem verwalteten privaten Endpunkt
  • Anzeigen von Prometheus-Daten in einem Grafana-Dashboard

Voraussetzungen

Bevor Sie beginnen, sollten Sie sicherstellen, dass Folgendes vorhanden ist:

Erstellen eines Azure Kubernetes Service-Clusters

  1. Melden Sie sich bei der Azure CLI an, indem Sie den az login-Befehl ausführen.

    az login
    

    Wenn Sie über mehrere Azure-Abonnements verfügen, wählen Sie Ihr Azure-Abonnement mit dem Befehl az account set -s <your-azure-subscription-id> aus.

  2. Installieren oder aktualisieren Sie kubectl.

    az aks install-cli
    
  3. Erstellen Sie zwei bash/zsh-Variablen, die in nachfolgenden Befehlen verwendet werden. Ändern Sie die folgende Syntax, wenn Sie eine andere Shell verwenden.

    RESOURCE_GROUP=myResourceGroup 
    AKS_NAME=myaks
    
  4. Erstellen Sie eine Ressourcengruppe. In diesem Beispiel erstellen wir die Ressourcengruppe in der Azure-Region USA, Westen-Mitte.

    az group create --name $RESOURCE_GROUP --location westcentralus
    
  5. Erstellen Sie mit dem Befehl az aks create ein AKS-Cluster. Hier erstellen wir ein Drei-Knoten-Cluster mithilfe des Typs „Burstable VM“ der B-Serie, das kosteneffizient und für kleine Test-/Entwicklungsworkloads wie diese geeignet ist.

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

    Dieser Vorgang kann einige Minuten in Anspruch nehmen.

  6. Authentifizieren Sie sich beim von Ihnen erstellten Cluster.

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

    Sie können jetzt mit kubectl auf Ihr Kubernetes-Cluster zugreifen.

  7. Verwenden Sie kubectl, um die Knoten anzuzeigen, die Sie erstellt haben.

    kubectl get nodes
    

Installieren von Prometheus

Eine beliebte Möglichkeit zur Installation von Prometheus ist prometheus-operator, der Kubernetes native Bereitstellung und Verwaltung von Prometheus und zugehörigen Überwachungskomponenten bereitstellt. In diesem Tutorial verwenden wir Helm-Diagramme von kube-prometheus-stack um prometheus-operator bereitzustellen.

  1. Fügen Sie das Repository helm-charts hinzu, und aktualisieren Sie dann Ihre Repositoryliste.

    helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
    helm repo update
    
  2. Installieren Sie das Helm-Diagramm in einem Namespace namens Überwachung. Dieser Namespace wird automatisch erstellt.

    helm install prometheus \
      prometheus-community/kube-prometheus-stack \
      --namespace monitoring \
      --create-namespace
    
  3. Der Steuerbefehl fordert Sie auf, den Status der bereitgestellten Pods zu überprüfen. Führen Sie den folgenden Befehl aus.

    kubectl --namespace monitoring get pods
    
  4. Stellen Sie bevor Sie fortfahren sicher, dass die Pods alle im Zustand „Ausführen“ sind. Es ist unwahrscheinlich, aber falls sie den Zustand „Ausführung“ nicht erreichen, sollten Sie eine Problembehandlung durchführen.

Der Azure Private Link-Dienst ermöglicht die Nutzung Ihres Kubernetes-Dienstes über eine private Verbindung in verschiedenen virtuellen Azure-Netzwerken. AKS verfügt über eine native Integration in Azure Private Link Service und hilft Ihnen, ein Kubernetes-Dienstobjekt zu erstellen, um einen entsprechenden Private Link-Dienst in Azure zu erstellen.

Sehen Sie unterhalb den Inhalt der Datei 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. Führen Sie den folgenden Befehl aus, um den Private Link-Dienst zum Prometheus-Server hinzuzufügen.

    kubectl --namespace monitoring apply -f pls-prometheus-svc.yaml
    
  2. Der Private Link-Dienst mit dem Namen promManagedPls wird in der verwalteten AKS-Ressourcengruppe erstellt. Dieser Vorgang dauert einige Minuten.

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

Herstellen einer Verbindung mit einem verwalteten privaten Endpunkt

  1. Wenn Sie noch keinen Azure Managed Grafana-Arbeitsbereich haben, erstellen Sie einen, indem Sie die Schnellstartanleitung für Azure Managed Grafana durchlaufen.

  2. Öffnen Sie Ihren Azure Managed Grafana-Arbeitsbereich und gehen Sie zu Netzwerk>Verwalteter Privater Endpunkt>Erstellen.

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

  3. Geben Sie einen Namen für Ihren verwalteten privaten Endpunkt ein und wählen Sie Ihr Azure-Abonnement aus.

  4. Wählen Sie als RessourcentypMicrosoft.Network/privateLinkServices (Private Link-Dienste) aus und wählen Sie als Zielressource den im vorherigen Schritt erstellten promManagedPls Private Link-Dienst aus. Jeder verwaltete private Endpunkt erhält eine private IP-Adresse. Sie können auch einen Domänennamen für diesen verwalteten privaten Endpunkt angeben. Der Azure Managed Grafana-Dienst stellt sicher, dass diese Domäne in der Azure Managed Grafana-Umgebung in der privaten IP des verwalteten privaten Endpunkts behandelt wird. Legen Sie z. B. die Domäne auf *.prom.my-own-domain.com fest.

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

  5. Genehmigen Sie die private Endpunktverbindung, indem Sie zur Ressource promManagedPls wechseln. Wechseln Sie unter Einstellungen zu private Endpunktverbindungen, wählen Sie Ihre Verbindung mithilfe des Kontrollkästchens aus und genehmigen Sie sie.

    Screenshot of the Azure platform showing the Approve connection action.

  6. Nachdem die private Endpunktverbindung genehmigt wurde, wechseln Sie zurück zu Ihrer Azure Managed Grafana-Ressource und wählen Sie die Schaltfläche Aktualisieren auf der Registerkarte „Verwalteter Privater Endpunkt“ aus, um Connection state zu synchronisieren. Sie sollte jetzt als Genehmigt angezeigt werden.

    Screenshot of the Azure platform showing the Refresh button.

Anzeigen von Prometheus-Daten in einem Grafana-Dashboard

  1. Fügen Sie die Prometheus-Datenquelle aus Ihrem Grafana-Portal zu Grafana hinzu. Weitere Informationen hierzu finden Sie unter Datenquelle hinzufügen. Unsere Prometheus-URL ist http://prom-service.prom.my-own-domain.com:9090.

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

  2. Um Ihre selbst gehostete Prometheus-Datenquelle zu nutzen, sollten Sie versuchen, das Dashboard Node Exporter Full, ID 1860, zu verwenden. Weitere Richtlinien finden Sie unter Importieren eines Dashboards aus Grafana Labs.

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

Nächster Schritt

Erfahren Sie, wie Sie Dienstkonten verwenden.