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:
- Ein Azure-Konto
- Die Azure CLI
- kubectl
- Helm
Erstellen eines Azure Kubernetes Service-Clusters
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.Installieren oder aktualisieren Sie kubectl.
az aks install-cli
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
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
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.
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.
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.
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
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
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
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.
Hinzufügen eines Private Link-Dienst zum Prometheus-Server
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
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
Der Private Link-Dienst mit dem Namen
promManagedPls
wird in der verwalteten AKS-Ressourcengruppe erstellt. Dieser Vorgang dauert einige Minuten.
Herstellen einer Verbindung mit einem verwalteten privaten Endpunkt
Wenn Sie noch keinen Azure Managed Grafana-Arbeitsbereich haben, erstellen Sie einen, indem Sie die Schnellstartanleitung für Azure Managed Grafana durchlaufen.
Öffnen Sie Ihren Azure Managed Grafana-Arbeitsbereich und gehen Sie zu Netzwerk>Verwalteter privater Endpunkt>Hinzufügen.
Geben Sie einen Namen für Ihren verwalteten privaten Endpunkt ein und wählen Sie Ihr Azure-Abonnement aus.
Wählen Sie als Ressourcentyp Microsoft.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.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.
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.
Anzeigen von Prometheus-Daten in einem Grafana-Dashboard
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
.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.
Nächster Schritt
Erfahren Sie, wie Sie Dienstkonten verwenden.