Esercitazione: Connettersi a un servizio Prometheus self-hosted in un cluster del servizio Azure Kubernetes usando un endpoint privato gestito
Questa guida illustra le fasi dell'installazione di Prometheus, un toolkit open source di monitoraggio e generazione di avvisi, in un cluster del servizio Azure Kubernetes. Si userà quindi l'endpoint privato gestito di Grafana con gestione Azure per connettersi al server Prometheus e visualizzarne i dati in un dashboard Grafana.
In questa esercitazione apprenderai a:
- Creare un cluster del servizio Azure Kubernetes
- Installare Prometheus
- Aggiungere un servizio di collegamento privato al server Prometheus
- Connettersi a un endpoint privato gestito
- Visualizzare i dati di Prometheus in un dashboard Grafana
Prerequisiti
Prima di iniziare, verificare di disporre di quanto segue:
Creare un cluster del servizio Azure Kubernetes
Accedere all'interfaccia della riga di comando di Azure eseguendo il comando
az login
.az login
Se sono presenti più sottoscrizioni di Azure, selezionare la propria 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. Se si usa un'altra shell, modificare la sintassi seguente.
RESOURCE_GROUP=myResourceGroup AKS_NAME=myaks
Creare un gruppo di risorse. In questo esempio, il gruppo di risorse viene creato 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 possibilità di burst della serie B, conveniente e adatto per carichi di lavoro di test/sviluppo di piccole dimensioni come 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
Prometheus viene comunemente installato tramite prometheus-operator, che consente di usare la distribuzione e la gestione native di Kubernetes per Prometheus e i relativi componenti di monitoraggio. In questa esercitazione vengono usati 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 monitoring. 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
Prima di continuare, assicurarsi che lo stato di tutti i pod sia "Running". Se non raggiungono lo stato Running, è consigliabile risolvere gli eventuali problemi che lo impediscono.
Aggiungere un servizio di collegamento privato al server Prometheus
Il servizio di collegamento privato di Azure consente l'utilizzo del servizio Kubernetes tramite il collegamento privato tra diverse reti virtuali di Azure. Il servizio Azure Kubernetes ha un'integrazione nativa con il servizio di collegamento privato di Azure e consente di annotare un oggetto servizio Kubernetes per creare un servizio di collegamento privato corrispondente in Azure.
Vedere di seguito 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 di 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.
Connettersi a un endpoint privato gestito
Se non si ha ancora un'area di lavoro gestita di Azure per Grafana, crearne una seguendo le indicazioni di Guida introduttiva: Creare un'area di lavoro Grafana gestita di Azure.
Aprire l'area di lavoro gestita di Azure per Grafana e passare a Rete>Endpoint privato gestito>Aggiungi.
Immettere un nome per l'endpoint privato gestito e selezionare la propria sottoscrizione di Azure.
In Tipo di risorsa selezionare Microsoft.Network/privateLinkServices (servizi di collegamento privato) e in Risorsa di destinazione selezionare il servizio di collegamento privato
promManagedPls
creato nel passaggio precedente. A ogni endpoint privato gestito viene assegnato un indirizzo IP privato. È anche possibile specificare un nome di dominio per l'endpoint privato gestito. Il servizio Grafana con gestione Azure garantisce che questo dominio venga risolto nell'indirizzo IP privato dell'endpoint privato gestito nell'ambiente di Grafana con gestione 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 privato, selezionare la connessione usando la casella di controllo e quindi selezionare Approva.
Dopo aver approvato la connessione all'endpoint privato, tornare alla risorsa Grafana con gestione Azure e selezionare il pulsante Aggiorna nella scheda Endpoint privato gestito per sincronizzare
Connection state
. Lo stato diventerà quindi Approvato.
Visualizzare i dati di Prometheus in un dashboard Grafana
Aggiungere l'origine dati di Prometheus in Grafana dal portale di Grafana. Per altre informazioni, passare a Aggiungere un'origine dati. L'URL di Prometheus in questo caso è
http://prom-service.prom.my-own-domain.com:9090
.Per sfruttare l'origine dati Prometheus self-hosted, provare a usare il dashboard Node Exporter Full con ID
1860
. Per altre linee guida, passare a Importare un dashboard da Grafana Labs.
Passaggio successivo
Informazioni su come usare gli account del servizio.