Delen via


Prometheus-gegevens verzenden naar Azure Monitor met behulp van verificatie van beheerde identiteiten

In dit artikel wordt beschreven hoe u externe schrijfbewerking instelt om gegevens te verzenden vanaf een zelfbeheerde Prometheus-server die wordt uitgevoerd in uw AKS-cluster (Azure Kubernetes Service) of kubernetes-cluster met Azure Arc met behulp van verificatie van beheerde identiteiten. U kunt een bestaande identiteit gebruiken die is gemaakt door AKS of uw eigen identiteit maken. Beide opties worden hier beschreven.

Clusterconfiguraties

Dit artikel is van toepassing op de volgende clusterconfiguraties:

  • Azure Kubernetes Service-cluster
  • Kubernetes-cluster met Azure Arc

Notitie

Zie Prometheus-gegevens verzenden naar Azure Monitor met behulp van Microsoft Entra-verificatie voor informatie over het instellen van externe schrijfbewerkingen voor een Kubernetes-cluster dat wordt uitgevoerd in een andere cloud of on-premises.

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

Beheer machtigingen voor het cluster of de resource zijn vereist om de stappen in dit artikel te voltooien.

Een toepassing instellen voor beheerde identiteit

Het proces voor het instellen van externe schrijfbewerkingen van Prometheus voor een toepassing met behulp van verificatie van beheerde identiteiten omvat het voltooien van de volgende taken:

  1. Haal de naam van de AKS-knooppuntresourcegroep op.
  2. Haal de client-id op van de door de gebruiker toegewezen beheerde identiteit.
  3. Wijs de rol Monitoring Metrics Publisher toe aan de regel voor het verzamelen van werkruimtegegevens aan de beheerde identiteit.
  4. Geef het AKS-cluster toegang tot de beheerde identiteit.
  5. Implementeer een sidecar-container om externe schrijfbewerkingen in te stellen.

De taken worden beschreven in de volgende secties.

De naam van de AKS-knooppuntresourcegroep ophalen

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.

Schermopname van een lijst met resourcegroepen.

De client-id ophalen van de door de gebruiker toegewezen beheerde identiteit

U moet de client-id ophalen van de identiteit die u gaat gebruiken. Kopieer de client-id die u later in het proces wilt gebruiken.

In plaats van uw eigen client-id te maken, kunt u een van de identiteiten gebruiken die door AKS worden gemaakt. Zie Een beheerde identiteit gebruiken in Azure Kubernetes Service voor meer informatie over de identiteiten.

In dit artikel wordt de kubelet-identiteit gebruikt. De naam van deze identiteit is <AKS-CLUSTER-NAME>-agentpoolen bevindt zich in de knooppuntresourcegroep van het AKS-cluster.

Schermopname van een lijst met resources die zich in de resourcegroep van het knooppunt bevinden.

Selecteer de <AKS-CLUSTER-NAME>-agentpool beheerde identiteit. Kopieer op de pagina Overzicht de waarde voor client-id. Zie Manage user-assigned managed identities (Door de gebruiker toegewezen beheerde identiteiten beheren) voor meer informatie.

Schermopname van een client-id op een overzichtspagina voor een beheerde identiteit.

De rol Monitoring Metrics Publisher toewijzen aan de regel voor het verzamelen van werkruimtegegevens aan de beheerde identiteit

Aan de beheerde identiteit moet de rol Monitoring Metrics Publisher worden toegewezen voor de regel voor gegevensverzameling die is gekoppeld aan uw Azure Monitor-werkruimte.

  1. Selecteer Overzicht in het resourcemenu voor uw Azure Monitor-werkruimte. Selecteer de koppeling voor de regel voor gegevensverzameling.

    Schermopname van de regel voor gegevensverzameling die is gekoppeld aan een Azure Monitor-werkruimte.

  2. Selecteer toegangsbeheer (IAM) in het resourcemenu voor de regel voor gegevensverzameling.

  3. Selecteer Toevoegen en selecteer vervolgens Roltoewijzing toevoegen.

    Schermopname van het toevoegen van een roltoewijzing op de pagina's voor toegangsbeheer.

  4. Selecteer de rol Monitoring Metrics Publisher en selecteer Vervolgens.

    Schermopname van een lijst met roltoewijzingen.

  5. Selecteer Beheerde identiteit en kies Leden selecteren. Selecteer het abonnement dat de door de gebruiker toegewezen identiteit bevat en selecteer vervolgens door de gebruiker toegewezen beheerde identiteit. Selecteer de door de gebruiker toegewezen identiteit die u wilt gebruiken en kies vervolgens Selecteren.

    Schermopname van het selecteren van een door de gebruiker toegewezen beheerde identiteit.

  6. Als u de roltoewijzing wilt voltooien, selecteert u Beoordelen en toewijzen.

Het AKS-cluster toegang geven tot de beheerde identiteit

Deze stap is niet vereist als u een AKS-identiteit gebruikt. Een AKS-identiteit heeft al toegang tot het cluster.

Belangrijk

Als u de stappen in deze sectie wilt voltooien, moet u beschikken over beheerdersmachtigingen voor eigenaar of gebruikertoegang voor het cluster.

  1. Identificeer de virtuele-machineschaalsets in de knooppuntresourcegroep voor uw AKS-cluster.

    Schermopname van virtuele-machineschaalsets in de knooppuntresourcegroep.

  2. Voer voor elke virtuele-machineschaalset de volgende opdracht uit in de Azure CLI:

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

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 de poort in de 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. 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. Open Azure Cloud Shell en upload het YAML-bestand.

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

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

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