Delen via


Prometheus-gegevens verzenden naar Azure Monitor met behulp van door Microsoft Entra beheerde identiteitsverificatie (preview)

In dit artikel wordt beschreven hoe u externe schrijfbewerkingen instelt voor de beheerde Azure Monitor-service voor Prometheus met behulp van verificatie van door Microsoft Entra pod beheerde identiteiten (preview).

Notitie

De sidecarcontainer voor extern schrijven die in dit artikel wordt beschreven, moet alleen worden ingesteld met behulp van de volgende stappen en alleen als voor het AKS-cluster (Azure Kubernetes Service) al een Microsoft Entra-pod is ingeschakeld. Door Microsoft Entra beheerde identiteiten zijn afgeschaft om te worden vervangen door Microsoft Entra Workload-ID. U wordt aangeraden Microsoft Entra Workload-ID verificatie te gebruiken.

Vereisten

Ondersteunde versies

Prometheus-versies die groter zijn dan v2.45 zijn vereist voor verificatie van beheerde identiteiten.

Azure Monitor-werkruimte

Dit artikel bevat informatie over het verzenden van metrische Prometheus-gegevens naar een Azure Monitor-werkruimte. Zie Een Azure Monitor-werkruimte beheren om een Azure Monitor-werkruimte te maken.

Machtigingen

Beheerdersmachtigingen voor het cluster of de resource zijn vereist om de stappen in dit artikel uit te voeren.

Een toepassing instellen voor door Microsoft Entra beheerde identiteit

Het proces voor het instellen van extern schrijven van Prometheus voor een toepassing met behulp van door Microsoft Entra beheerde identiteitsverificatie omvat het voltooien van de volgende taken:

  1. Registreer een door de gebruiker toegewezen beheerde identiteit met Microsoft Entra-id.
  2. Wijs de rollen Managed Identity Operator en Virtual Machine Contributor toe aan de beheerde identiteit.
  3. Wijs de rol Monitoring Metrics Publisher toe aan de door de gebruiker toegewezen beheerde identiteit.
  4. Maak een Azure-identiteitsbinding.
  5. Voeg het label aadpodidbinding toe aan de Prometheus-pod.
  6. Implementeer een sidecar-container om externe schrijfbewerkingen in te stellen.

De taken worden beschreven in de volgende secties.

Een beheerde identiteit registreren bij Microsoft Entra-id

Maak een door de gebruiker toegewezen beheerde identiteit of registreer een bestaande door de gebruiker toegewezen beheerde identiteit.

Zie Schrijf op afstand instellen voor een beheerde service voor Prometheus met behulp van verificatie van beheerde identiteiten voor Azure Monitor voor meer informatie over het maken van een beheerde identiteit.

De rollen Managed Identity Operator en Inzender voor virtuele machines toewijzen aan de beheerde identiteit

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> 

De knooppuntresourcegroep van het AKS-cluster bevat resources die u in andere stappen in dit proces gebruikt. Deze resourcegroep heeft de naam MC_<AKS-RESOURCE-GROUP>_<AKS-CLUSTER-NAME>_<REGION>. U vindt de naam van de resourcegroep met behulp van het menu Resourcegroepen in Azure Portal.

De rol Monitoring Metrics Publisher toewijzen aan de beheerde identiteit

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

Een Azure-identiteitsbinding maken

De door de gebruiker toegewezen beheerde identiteit vereist een identiteitsbinding voor de identiteit die moet worden gebruikt als een door pod beheerde identiteit.

Kopieer de volgende YAML naar het bestand aadpodidentitybinding.yaml :


apiVersion: "aadpodidentity.k8s.io/v1" 

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

Voer de volgende opdracht uit:

kubectl create -f aadpodidentitybinding.yaml 

Voeg het label aadpodidbinding toe aan de Prometheus-pod

Het aadpodidbinding label moet worden toegevoegd aan de Prometheus-pod om de door pod beheerde identiteit van kracht te laten worden. U kunt het label toevoegen door het bestand deployment.yaml bij te werken of door labels in te voegen wanneer u de sidecarcontainer implementeert, zoals beschreven in de volgende sectie.

Een sidecar-container implementeren om externe schrijfbewerkingen in te stellen

  1. Kopieer de volgende YAML en sla deze op in een bestand. De YAML gebruikt poort 8081 als de luisterpoort. Als u een andere poort gebruikt, wijzigt u die waarde in de 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. Vervang de volgende waarden in de YAML:

    Weergegeven als Beschrijving
    <AKS-CLUSTER-NAME> De naam van uw AKS-cluster.
    <CONTAINER-IMAGE-VERSION> mcr.microsoft.com/azuremonitor/containerinsights/ciprod/prometheus-remote-write/images:prom-remotewrite-20240617.1
    De versie van de externe schrijfcontainerinstallatiekopieën.
    <INGESTION-URL> De waarde voor het opname-eindpunt voor metrische gegevens op de overzichtspagina voor de Azure Monitor-werkruimte.
    <MANAGED-IDENTITY-CLIENT-ID> De waarde voor client-id op de pagina Overzicht voor de beheerde identiteit.
    <CLUSTER-NAME> De naam van het cluster waarop Prometheus wordt uitgevoerd.

    Belangrijk

    Voeg voor de Azure Government-cloud de volgende omgevingsvariabelen toe in de env sectie van het YAML-bestand:

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

  3. Gebruik Helm om het YAML-bestand toe te passen en uw Prometheus-configuratie bij te werken:

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

Verificatie en probleemoplossing

Zie Problemen met externe schrijfbewerkingen en beheerde Azure Monitor-service voor externe schrijfbewerkingen voor Prometheus voor informatie over verificatie en probleemoplossing.

Volgende stappen