Dela via


Skicka Prometheus-data till Azure Monitor med hjälp av Microsoft Entra-poddhanterad identitetsautentisering (förhandsversion)

Den här artikeln beskriver hur du konfigurerar fjärrskrivning för Azure Monitor-hanterad tjänst för Prometheus med hjälp av Microsoft Entra-poddhanterad identitetsautentisering (förhandsversion).

Kommentar

Den sidovagnscontainer för fjärrskrivning som beskrivs i den här artikeln bör endast konfigureras med hjälp av följande steg, och endast om AkS-klustret (Azure Kubernetes Service) redan har en Microsoft Entra-podd aktiverad. Microsoft Entra-poddhanterade identiteter har blivit inaktuella för att ersättas av Microsoft Entra-arbetsbelastnings-ID. Vi rekommenderar att du använder autentisering med Microsoft Entra-arbetsbelastnings-ID.

Förutsättningar

Versioner som stöds

Prometheus-versioner som är större än v2.45 krävs för hanterad identitetsautentisering.

Azure Monitor-arbetsyta

Den här artikeln beskriver hur du skickar Prometheus-mått till en Azure Monitor-arbetsyta. Information om hur du skapar en Azure Monitor-arbetsyta finns i Hantera en Azure Monitor-arbetsyta.

Behörigheter

Administratörsbehörigheter för klustret eller resursen krävs för att slutföra stegen i den här artikeln.

Konfigurera ett program för Microsoft Entra-poddhanterad identitet

Processen för att konfigurera Prometheus fjärrskrivning för ett program med hjälp av Microsoft Entra poddhanterad identitetsautentisering innebär att du utför följande uppgifter:

  1. Registrera en användartilldelad hanterad identitet med Microsoft Entra-ID.
  2. Tilldela rollerna Hanterad identitetsoperator och Virtuell datordeltagare till den hanterade identiteten.
  3. Tilldela rollen Monitoring Metrics Publisher till den användartilldelade hanterade identiteten.
  4. Skapa en Azure-identitetsbindning.
  5. Lägg till etiketten aadpodidbinding i Prometheus-podden.
  6. Distribuera en sidovagnscontainer för att konfigurera fjärrskrivning.

Uppgifterna beskrivs i följande avsnitt.

Registrera en hanterad identitet med Microsoft Entra-ID

Skapa en användartilldelad hanterad identitet eller registrera en befintlig användartilldelad hanterad identitet.

Information om hur du skapar en hanterad identitet finns i Konfigurera fjärrskrivning för Azure Monitor-hanterad tjänst för Prometheus med hjälp av hanterad identitetsautentisering.

Tilldela rollerna Hanterad identitetsoperator och Virtuell datordeltagare till den hanterade identiteten

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> 

Nodresursgruppen i AKS-klustret innehåller resurser som du använder i andra steg i den här processen. Den här resursgruppen har namnet MC_<AKS-RESOURCE-GROUP>_<AKS-CLUSTER-NAME>_<REGION>. Du hittar resursgruppens namn med hjälp av menyn Resursgrupper i Azure Portal.

Tilldela rollen Monitoring Metrics Publisher till den hanterade identiteten

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

Skapa en Azure-identitetsbindning

Den användartilldelade hanterade identiteten kräver en identitetsbindning för att identiteten ska användas som en poddhanterad identitet.

Kopiera följande YAML till filen aadpodidentitybinding.yaml :


apiVersion: "aadpodidentity.k8s.io/v1" 

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

Kör följande kommando:

kubectl create -f aadpodidentitybinding.yaml 

Lägg till etiketten aadpodidbinding i Prometheus-podden

Etiketten aadpodidbinding måste läggas till i Prometheus-podden för att den poddhanterade identiteten ska börja gälla. Du kan lägga till etiketten genom att uppdatera filen deployment.yaml eller genom att mata in etiketter när du distribuerar sidovagnscontainern enligt beskrivningen i nästa avsnitt.

Distribuera en sidovagnscontainer för att konfigurera fjärrskrivning

  1. Kopiera följande YAML och spara den i en fil. YAML använder port 8081 som lyssnarport. Om du använder en annan port ändrar du det värdet i 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. Ersätt följande värden i YAML:

    Värde beskrivning
    <AKS-CLUSTER-NAME> Namnet på ditt AKS-kluster.
    <CONTAINER-IMAGE-VERSION> mcr.microsoft.com/azuremonitor/containerinsights/ciprod/prometheus-remote-write/images:prom-remotewrite-20240617.1
    Containeravbildningsversionen för fjärrskrivning.
    <INGESTION-URL> Värdet för slutpunkten för måttinmatning från sidan Översikt för Azure Monitor-arbetsytan.
    <MANAGED-IDENTITY-CLIENT-ID> Värdet för klient-ID från sidan Översikt för den hanterade identiteten.
    <CLUSTER-NAME> Namnet på klustret som Prometheus körs på.

    Viktigt!

    För Azure Government-molnet lägger du till följande miljövariabler i env avsnittet i YAML-filen:

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

  3. Använd Helm för att tillämpa YAML-filen och uppdatera Prometheus-konfigurationen:

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

Verifiering och felsökning

Information om verifiering och felsökning finns i Felsöka fjärrskrivning och Azure Monitor-hanterad tjänst för Prometheus fjärrskrivning.

Nästa steg