Esercitazione: Connettersi a un servizio Prometheus self-hosted in un cluster del servizio Azure Kubernetes usando un endpoint privato gestito
Questa guida illustra i passaggi dell'installazione di Prometheus, un toolkit di monitoraggio e avvisi open source, in un cluster servizio Azure Kubernetes (AKS). Usare quindi l'endpoint privato gestito di Grafana gestito di Azure per connettersi a questo server Prometheus e visualizzare i dati di Prometheus in un dashboard di Grafana.
In questa esercitazione apprenderai a:
- Creare un cluster servizio Azure Kubernetes
- Installare Prometheus
- Aggiungere un servizio di collegamento privato al server Prometheus
- Connessione con endpoint privato gestito
- Visualizzare i dati di Prometheus in un dashboard di Grafana
Prerequisiti
Prima di iniziare, assicurarsi di disporre dei seguenti elementi:
Creare un cluster servizio Azure Kubernetes
Accedere all'interfaccia della riga di comando di Azure eseguendo il
az login
comando .az login
Se sono presenti più sottoscrizioni di Azure, selezionare la sottoscrizione di Azure con il comando
az account set -s <your-azure-subscription-id>
.Installare o aggiornare kubectl.
az aks install-cli
Creare due variabili bash/zsh, che verranno usate nei comandi successivi. Modificare la sintassi seguente se si usa un'altra shell.
RESOURCE_GROUP=myResourceGroup AKS_NAME=myaks
Crea un gruppo di risorse. In questo esempio viene creato il gruppo di risorse nell'area di Azure Stati Uniti centro-occidentali.
az group create --name $RESOURCE_GROUP --location westcentralus
Creare un nuovo cluster del servizio Azure Kubernetes usando il comando az aks create . In questo caso viene creato un cluster a tre nodi usando il tipo di macchina virtuale con burst della serie B, conveniente e adatto per carichi di lavoro di test/sviluppo di piccole dimensioni, ad esempio questo.
az aks create --resource-group $RESOURCE_GROUP \ --name $AKS_NAME \ --node-count 3 \ --node-vm-size Standard_B2s \ --generate-ssh-keys
Il completamento di questa operazione potrebbe richiedere alcuni minuti.
Eseguire l'autenticazione nel cluster creato.
az aks get-credentials \ --resource-group $RESOURCE_GROUP \ --name $AKS_NAME
È ora possibile accedere al cluster Kubernetes con kubectl.
Usare kubectl per visualizzare i nodi creati.
kubectl get nodes
Installare Prometheus
Un modo comune per installare Prometheus consiste nell'operatore prometheus, che fornisce la distribuzione e la gestione nativa di Kubernetes di Prometheus e dei componenti di monitoraggio correlati. In questa esercitazione si usano i grafici Helm kube-prometheus-stack per distribuire prometheus-operator.
Aggiungere il repository helm-charts e quindi aggiornare l'elenco dei repository.
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update
Installare il grafico Helm in uno spazio dei nomi denominato monitoraggio. Questo spazio dei nomi viene creato automaticamente.
helm install prometheus \ prometheus-community/kube-prometheus-stack \ --namespace monitoring \ --create-namespace
Il comando helm richiede di controllare lo stato dei pod distribuiti. Esegui il comando seguente:
kubectl --namespace monitoring get pods
Assicurarsi che tutti i pod siano in esecuzione prima di continuare. Se nella circostanza improbabile non raggiungono lo stato di esecuzione, è consigliabile risolverli.
Aggiungere un servizio di collegamento privato al server Prometheus
Il servizio Azure collegamento privato consente l'utilizzo del servizio Kubernetes tramite collegamento privato tra reti virtuali di Azure diverse. Il servizio Azure Kubernetes ha un'integrazione nativa con collegamento privato di Azure Service e consente di annotare un oggetto servizio Kubernetes per creare un servizio di collegamento privato corrispondente in Azure.
Vedere sotto il contenuto del file 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
Eseguire il comando seguente per aggiungere il servizio collegamento privato al server Prometheus.
kubectl --namespace monitoring apply -f pls-prometheus-svc.yaml
Il servizio di collegamento privato con nome
promManagedPls
viene creato nel gruppo di risorse gestite del servizio Azure Kubernetes. Questo processo richiede qualche minuto.
Connessione con un endpoint privato gestito
Se non si ha ancora un'area di lavoro Grafana gestita di Azure, crearne una seguendo la guida introduttiva di Grafana gestita di Azure.
Aprire l'area di lavoro Grafana gestita di Azure e passare a Rete>gestita endpoint privato>Creare.
Immettere un nome per l'endpoint privato gestito e selezionare la sottoscrizione di Azure.
In Tipo di risorsa selezionare Microsoft.Network/privateLinkServices (servizi collegamento privato) e per Risorsa di destinazione selezionare il
promManagedPls
servizio collegamento privato creato nel passaggio precedente. Ogni endpoint privato gestito ottiene un indirizzo IP privato. È anche possibile specificare un nome di dominio per questo endpoint privato gestito. Il servizio Grafana gestito di Azure garantisce che questo dominio venga risolto nell'indirizzo IP privato dell'endpoint privato gestito all'interno dell'ambiente Grafana gestito di Azure. Ad esempio, impostare il dominio su*.prom.my-own-domain.com
.Approvare la connessione all'endpoint privato passando alla risorsa promManagedPls. In Impostazioni passare a Connessioni endpoint privati, selezionare la connessione usando la casella di controllo e Approva.
Dopo aver approvato la connessione all'endpoint privato, tornare alla risorsa Grafana gestita di Azure e selezionare il pulsante Aggiorna nella scheda Endpoint privato gestito per sincronizzare
Connection state
. Dovrebbe ora essere visualizzato come Approvato.
Visualizzare i dati di Prometheus in un dashboard di Grafana
Aggiungere l'origine dati Prometheus a Grafana dal portale di Grafana. Per altre informazioni, vedere Aggiungere un'origine dati. L'URL di Prometheus è
http://prom-service.prom.my-own-domain.com:9090
.Per sfruttare l'origine dati Prometheus self-hosted, provare a usare il dashboard completo dell'utilità di esportazione dei nodi, ID
1860
. Per altre linee guida, vedere Importare un dashboard da Grafana Labs.
Passaggio successivo
Informazioni su come usare gli account del servizio.