Condividi tramite


Inviare dati di Prometheus a Monitoraggio di Azure usando l'autenticazione con identità gestita

Questo articolo descrive come configurare la scrittura remota per inviare dati da un server Prometheus autogestito in esecuzione nel cluster del servizio Azure Kubernetes o nel cluster Kubernetes abilitato per Azure Arc usando l'autenticazione con identità gestita e un contenitore sidecar fornito da Monitoraggio di Azure. È possibile usare un'identità esistente creata dal servizio Azure Kubernetes o creare una propria. Entrambe le opzioni sono descritte di seguito.

Nota

Se si sta utilizzando l’identità gestita assegnata dall'utente, è consigliabile configurare direttamente Prometheus in esecuzione nel cluster Kubernetes per la scrittura remota nell'area di lavoro di Monitoraggio di Azure. Per altre informazioni, vedere Inviare dati Prometheus a Monitoraggio di Azure usando l'identità gestita assegnata dall'utente. La procedura seguente usa il contenitore di auto sul lato Monitoraggio di Azure.

Configurazioni dei cluster

Questo articolo si applica alle seguenti configurazioni cluster:

  • Cluster del servizio Azure Kubernetes
  • Cluster Kubernetes con abilitazione di Azure Arc

Nota

Per informazioni sulla configurazione della scrittura remota per un cluster Kubernetes in esecuzione in un cloud diverso o in locale, vedere Inviare dati Prometheus a Monitoraggio di Azure usando l'autenticazione di Microsoft Entra.

Prerequisiti

Versioni supportate

È necessario disporre di Prometheus versione 2.45 o successive per poter eseguire l'autenticazione dell'identità gestita.

Area di lavoro di Monitoraggio di Azure

Questo articolo illustra l'invio di metriche Prometheus a un'area di lavoro di Monitoraggio di Azure. Per creare un'area di lavoro di Monitoraggio di Azure, vedere Gestire un'area di lavoro di Monitoraggio di Azure.

Autorizzazioni

Per completare i passaggi descritti in questo articolo, sono necessarie autorizzazioni di amministratore per il cluster o la risorsa.

Configurare un’applicazione per l'identità gestita

Il processo di configurazione della scrittura remota Prometheus per un'applicazione tramite l'autenticazione con identità gestita comporta il completamento delle attività seguenti:

  1. Ottenere il nome del gruppo di risorse del nodo del servizio Azure Kubernetes.
  2. Ottenere l’ID client dell'identità gestita assegnata dall'utente.
  3. Assegnare il ruolo Autore metriche di monitoraggio nella regola di raccolta dati dell'area di lavoro all'identità gestita.
  4. Concedere al cluster del servizio Azure Kubernetes l'accesso all'identità gestita.
  5. Distribuire un contenitore sidecar per configurare la scrittura remota.

Le attività sono descritte nelle sezioni seguenti.

Ottenere il nome del gruppo di risorse del nodo del servizio Azure Kubernetes

Il gruppo di risorse del nodo del cluster del servizio Azure Kubernetes contiene risorse usate in altri passaggi di questo processo. Questo gruppo di risorse è denominato MC_<AKS-RESOURCE-GROUP>_<AKS-CLUSTER-NAME>_<REGION>. È possibile trovare il nome del gruppo di risorse usando il menu Gruppi di risorse nel portale di Azure.

Screenshot che mostra un elenco di membri del gruppo.

Ottenere l’ID client dell'identità gestita assegnata dall'utente

È necessario ottenere l'ID client dell'identità che si intende usare. Copiare l'ID client da usare più avanti nel processo.

Anziché creare un ID client personalizzato, è possibile usare una delle identità create dal servizio Azure Kubernetes. Per altre informazioni sulle identità, vedere Usare un'identità gestita nel servizio Azure Kubernetes.

Questo articolo utilizza l’identità kubelet. Il nome di questa identità è <AKS-CLUSTER-NAME>-agentpool e si trova nel gruppo di risorse del nodo del cluster del servizio Azure Kubernetes.

Screenshot che mostra un elenco di risorse presenti nel gruppo di risorse del nodo.

Selezionare l'identità gestita <AKS-CLUSTER-NAME>-agentpool. Nella pagina Panoramica, copiare il valore per ID client. Per altre informazioni, vedere Gestire le identità gestite assegnate dall'utente.

Screenshot che mostra un ID client in una pagina di panoramica per un'identità gestita.

Assegnare il ruolo Autore metriche di monitoraggio nella regola di raccolta dati dell'area di lavoro all'identità gestita

All’identità gestita deve essere assegnato il ruolo Autore metriche di monitoraggio nella regola di raccolta dati associata all'area di lavoro di Monitoraggio di Azure.

  1. Nel menu delle risorse per l'area di lavoro di Monitoraggio di Azure, selezionare Panoramica. Per regola di raccolta dati, selezionare il collegamento.

    Screenshot che mostra la regola di raccolta dati associata all'area di lavoro di Monitoraggio di Azure.

  2. Nella menu delle risorse per la regola di raccolta dati, selezionare Controllo di accesso (IAM).

  3. Selezionare Aggiungi e quindi selezionare Aggiungi assegnazione di ruolo.

    Screenshot che mostra l'aggiunta di un'assegnazione di ruolo sulle pagine di Controllo di accesso.

  4. Selezionare il ruolo Editore metriche di monitoraggio, quindi selezionare Avanti.

    Screenshot che mostra un elenco di assegnazioni di ruolo

  5. Selezionare Identità gestita, quindi scegliere Seleziona membri. Selezionare la sottoscrizione che contiene l’identità gestita assegnata dall'utente, quindi selezionare l'Identità gestita assegnata dall'utente. Selezionare l'identità assegnata dall'utente che si vuole usare, quindi scegliere Seleziona.

    Screenshot che mostra la selezione di un’identità gestita assegnata dall'utente.

  6. Per completare l'assegnazione di ruolo, selezionare Rivedi e assegna.

Concedere al cluster del servizio Azure Kubernetes l'accesso all'identità gestita

Questo passaggio non è obbligatorio se si usa un'identità del servizio Azure Kubernetes. Un'identità del servizio Azure Kubernetes ha già accesso al cluster.

Importante

Per completare i passaggi descritti in questa sezione, è necessario disporre delle autorizzazioni di accesso utente di amministratore o proprietario per il cluster.

  1. Identificare i set di scalabilità di macchine virtuali nel gruppo di risorse del nodo per il cluster del servizio Azure Kubernetes.

    Screenshot che mostra i set di scalabilità di macchine virtuali nel gruppo di risorse del nodo.

  2. Per ciascun set di scalabilità di macchine virtuali, eseguire il seguente comando nell’’interfaccia della riga di comando di Azure:

    az vmss identity assign -g <AKS-NODE-RESOURCE-GROUP> -n <AKS-VMSS-NAME> --identities <USER-ASSIGNED-IDENTITY-RESOURCE-ID>
    

Distribuire un contenitore sidecar per configurare la scrittura remota

  1. Copiare il seguente YAML e salvarlo in un file. YAML usa la porta 8081 come porta di ascolto. Se si usa una porta diversa, modificare la porta in YAML.

    prometheus:
      prometheusSpec:
        externalLabels:
              cluster: <AKS-CLUSTER-NAME>
    
        ## https://prometheus.io/docs/prometheus/latest/configuration/configuration/#remote_write    
        remoteWrite:
        - url: 'http://localhost:8081/api/v1/write'
      ## Azure Managed Prometheus currently exports some default mixins in Grafana. 
      ## These mixins are compatible with Azure Monitor agent on your Azure Kubernetes Service cluster. 
      ## However, these mixins aren't compatible with Prometheus metrics scraped by the Kube Prometheus stack. 
      ## In order to make these mixins compatible, uncomment remote write relabel configuration below:
    
      ## writeRelabelConfigs:
      ##   - sourceLabels: [metrics_path]
      ##     regex: /metrics/cadvisor
      ##     targetLabel: job
      ##     replacement: cadvisor
      ##     action: replace
      ##   - sourceLabels: [job]
      ##     regex: 'node-exporter'
      ##     targetLabel: job
      ##     replacement: node
      ##     action: replace
        containers:
        - name: prom-remotewrite
          image: <CONTAINER-IMAGE-VERSION>
          imagePullPolicy: Always
          ports:
            - name: rw-port
              containerPort: 8081
          livenessProbe:
            httpGet:
              path: /health
              port: rw-port
            initialDelaySeconds: 10
            timeoutSeconds: 10
          readinessProbe:
            httpGet:
              path: /ready
              port: rw-port
            initialDelaySeconds: 10
            timeoutSeconds: 10
          env:
          - name: INGESTION_URL
            value: <INGESTION_URL>
          - name: LISTENING_PORT
            value: '8081'
          - name: IDENTITY_TYPE
            value: userAssigned
          - name: AZURE_CLIENT_ID
            value: <MANAGED-IDENTITY-CLIENT-ID>
          # Optional parameter
          - name: CLUSTER
            value: <CLUSTER-NAME>
    
  2. Sostituire i valori seguenti in YAML:

    valore Descrizione
    <AKS-CLUSTER-NAME> Il nome del cluster del servizio Azure Kubernetes.
    <CONTAINER-IMAGE-VERSION> mcr.microsoft.com/azuremonitor/containerinsights/ciprod/prometheus-remote-write/images:prom-remotewrite-20240617.1
    La versione dell’immagine della scrittura remota.
    <INGESTION-URL> Valore per endpoint di inserimento delle metriche dalla pagina Panoramica per l'area di lavoro Monitoraggio di Azure.
    <MANAGED-IDENTITY-CLIENT-ID> Valore per ID client dalla pagina Panoramica per l'identità gestita.
    <CLUSTER-NAME> Nome del cluster in cui è in esecuzione Prometheus.

    Importante

    Per il cloud di Azure per enti pubblici, aggiungere le variabili di ambiente seguenti nella sezione env del file YAML:

    - name: INGESTION_AAD_AUDIENCE value: https://monitor.azure.us/

  3. Aprire Azure Cloud Shell e caricare il file YAML.

  4. Usare Helm per applicare il file YAML e aggiornare la configurazione di Prometheus:

    # set context to your cluster 
    az aks get-credentials -g <aks-rg-name> -n <aks-cluster-name> 
    
    # use Helm to update your remote write config 
    helm upgrade -f <YAML-FILENAME>.yml prometheus prometheus-community/kube-prometheus-stack --namespace <namespace where Prometheus pod resides> 
    

Verifica e risoluzione dei problemi

Per informazioni sulla verifica e sulla risoluzione dei problemi, vedere Risoluzione dei problemi relativi alla scrittura remota e Servizio gestito di Monitoraggio di Azure per scrittura remota del servizio gestito per Prometheus.

Passaggi successivi