Inviare dati di Prometheus a Monitoraggio di Azure usando l'autenticazione con identità gestita da pod (anteprima) di Microsoft Entra

Questo articolo illustra come configurare la scrittura remota per il servizio gestito per Prometheus di Monitoraggio di Azure usando l'autenticazione con identità gestita da pod (anteprima) di Microsoft Entra.

Nota

Il contenitore sidecar di scrittura remota descritto in questo articolo deve essere configurato solo seguendo questa procedura e solo se il cluster del servizio Azure Kubernetes ha già un pod di Microsoft Entra abilitato. Le identità gestite da pod di Microsoft Entra sono state deprecate per essere sostituite dall'ID dei carichi di lavoro di Microsoft Entra. È consigliabile usare l'autenticazione con ID dei carichi di lavoro 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 da pod di Microsoft Entra

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

  1. Registrare un'identità gestita assegnata dall'utente con Microsoft Entra ID.
  2. Assegnare i ruoli Operatore di identità gestite e Collaboratore Macchina virtuale all'identità gestita.
  3. Assegnare il ruolo Autore delle metriche di monitoraggio all'identità gestita assegnata dall'utente.
  4. Creare un'associazione di identità di Azure.
  5. Aggiungere l'etichetta aadpodidbinding al pod Prometheus.
  6. Distribuire un contenitore sidecar per configurare la scrittura remota.

Le attività sono descritte nelle sezioni seguenti.

Registrare un'identità gestita con Microsoft Entra ID

Creare un'identità gestita assegnata dall'utente o registrare un'identità gestita assegnata dall'utente esistente.

Per informazioni sulla creazione di un'identità gestita, vedere Configurare la scrittura remota per il servizio gestito per Prometheus di Monitoraggio di Azure usando l'autenticazione con identità gestita.

Assegnare i ruoli Operatore di identità gestite e Collaboratore Macchina virtuale all'identità gestita

az role assignment create --role "Managed Identity Operator" --assignee <managed identity clientID> --scope <NodeResourceGroupResourceId> 
          
az role assignment create --role "Virtual Machine Contributor" --assignee <managed identity clientID> --scope <Node ResourceGroup Id> 

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.

Assegnare il ruolo Autore delle metriche di monitoraggio all'identità gestita

az role assignment create --role "Monitoring Metrics Publisher" --assignee <managed identity clientID> --scope <NodeResourceGroupResourceId> 

Creare un'associazione di identità di Azure

L'identità gestita assegnata dall'utente richiede un'associazione di identità per l'identità da usare come identità gestita da pod.

Copiare il file YAML seguente nel file aadpodidentitybinding.yaml:


apiVersion: "aadpodidentity.k8s.io/v1" 

kind: AzureIdentityBinding 
metadata: 
name: demo1-azure-identity-binding 
spec: 
AzureIdentity: “<AzureIdentityName>” 
Selector: “<AzureIdentityBindingSelector>” 

Esegui questo comando:

kubectl create -f aadpodidentitybinding.yaml 

Aggiungere l'etichetta aadpodidbinding al pod Prometheus

L'etichetta aadpodidbinding deve essere aggiunta al pod Prometheus per rendere effettiva l'identità gestita da pod. È possibile aggiungere l'etichetta aggiornando il file deployment.yaml o inserendo etichette quando si distribuisce il contenitore sidecar come descritto nella sezione successiva.

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 tale valore in YAML.

    prometheus: 
      prometheusSpec: 
        podMetadata: 
          labels: 
            aadpodidbinding: <AzureIdentityBindingSelector> 
        externalLabels: 
          cluster: <AKS-CLUSTER-NAME> 
        remoteWrite: 
        - url: 'http://localhost:8081/api/v1/write' 
        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. Usare Helm per applicare il file YAML e aggiornare la configurazione di Prometheus:

    # set the 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