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

  1. 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>.

  2. Installare o aggiornare kubectl.

    az aks install-cli
    
  3. 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
    
  4. 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
    
  5. 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.

  6. 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.

  7. 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.

  1. 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
    
  2. 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
    
  3. Il comando helm richiede di controllare lo stato dei pod distribuiti. Esegui il comando seguente:

    kubectl --namespace monitoring get pods
    
  4. Assicurarsi che tutti i pod siano in esecuzione prima di continuare. Se nella circostanza improbabile non raggiungono lo stato di esecuzione, è consigliabile risolverli.

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
  1. Eseguire il comando seguente per aggiungere il servizio collegamento privato al server Prometheus.

    kubectl --namespace monitoring apply -f pls-prometheus-svc.yaml
    
  2. Il servizio di collegamento privato con nome promManagedPls viene creato nel gruppo di risorse gestite del servizio Azure Kubernetes. Questo processo richiede qualche minuto.

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

Connessione con un endpoint privato gestito

  1. Se non si ha ancora un'area di lavoro Grafana gestita di Azure, crearne una seguendo la guida introduttiva di Grafana gestita di Azure.

  2. Aprire l'area di lavoro Grafana gestita di Azure e passare a Rete>gestita endpoint privato>Creare.

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

  3. Immettere un nome per l'endpoint privato gestito e selezionare la sottoscrizione di Azure.

  4. 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.

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

  5. 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.

    Screenshot of the Azure platform showing the Approve connection action.

  6. 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.

    Screenshot of the Azure platform showing the Refresh button.

Visualizzare i dati di Prometheus in un dashboard di Grafana

  1. 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.

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

  2. 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.

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

Passaggio successivo

Informazioni su come usare gli account del servizio.