Odeslání dat Prometheus do služby Azure Monitor pomocí ověřování spravované podem Microsoft Entra (Preview)

Tento článek popisuje, jak nastavit vzdálené zápisy pro spravovanou službu Azure Monitor pro Prometheus pomocí ověřování spravované identitou podu Microsoft Entra (Preview).

Poznámka:

Kontejner vzdáleného zápisu sajdkára, který je popsaný v tomto článku, by se měl nastavit jenom pomocí následujících kroků a pouze v případě, že cluster Azure Kubernetes Service (AKS) už má povolený pod Microsoft Entra. Identity spravované pody microsoftu Entra se nahradily ID úloh Microsoft Entra. Doporučujeme používat ověřování ID úloh Microsoft Entra.

Požadavky

Podporované verze

Pro ověřování spravovaných identit se vyžadují verze Prometheus větší než verze 2.45.

Pracovní prostor služby Azure Monitor

Tento článek se zabývá odesíláním metrik Prometheus do pracovního prostoru služby Azure Monitor. Pokud chcete vytvořit pracovní prostor Služby Azure Monitor, přečtěte si téma Správa pracovního prostoru služby Azure Monitor.

Oprávnění

Správa istrator oprávnění ke clusteru nebo prostředku jsou nutná k dokončení kroků v tomto článku.

Nastavení aplikace pro identitu spravovanou podem Microsoft Entra

Proces nastavení vzdáleného zápisu Prometheus pro aplikaci pomocí ověřování identit spravovaných podem Microsoft Entra zahrnuje dokončení následujících úloh:

  1. Zaregistrujte spravovanou identitu přiřazenou uživatelem pomocí ID Microsoft Entra.
  2. Přiřaďte spravované identitě role Operátor spravované identity a Přispěvatel virtuálních počítačů ke spravované identitě.
  3. Přiřaďte roli Vydavatele metrik monitorování spravované identitě přiřazené uživatelem.
  4. Vytvořte vazbu identit Azure.
  5. Přidejte popisek aadpodidbindingu do podu Prometheus.
  6. Nasaďte kontejner sajdkáru pro nastavení vzdáleného zápisu.

Úkoly jsou popsány v následujících částech.

Registrace spravované identity pomocí Microsoft Entra ID

Vytvořte spravovanou identitu přiřazenou uživatelem nebo zaregistrujte existující spravovanou identitu přiřazenou uživatelem.

Informace o vytvoření spravované identity najdete v tématu Nastavení vzdáleného zápisu pro spravovanou službu Azure Monitor pro Prometheus pomocí ověřování spravované identity.

Přiřazení rolí Operátor spravované identity a Přispěvatel virtuálních počítačů ke spravované identitě

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> 

Skupina prostředků uzlu clusteru AKS obsahuje prostředky, které použijete v dalších krocích tohoto procesu. Tato skupina prostředků má název MC_<AKS-RESOURCE-GROUP>_<AKS-CLUSTER-NAME>_<REGION>. Název skupiny prostředků najdete pomocí nabídky Skupiny prostředků na webu Azure Portal.

Přiřazení role Vydavatele metrik monitorování ke spravované identitě

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

Vytvoření vazby identit Azure

Spravovaná identita přiřazená uživatelem vyžaduje, aby se identita používala jako podem spravovaná identita.

Zkopírujte následující YAML do souboru aadpodidentitybinding.yaml :


apiVersion: "aadpodidentity.k8s.io/v1" 

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

Spusťte následující příkaz:

kubectl create -f aadpodidentitybinding.yaml 

Přidání popisku aadpodidbindingu do podu Prometheus

Popisek aadpodidbinding se musí přidat do podu Prometheus, aby se identita spravovaná podem projevila. Popisek můžete přidat aktualizací souboru deployment.yaml nebo vložením popisků při nasazení kontejneru sidecar, jak je popsáno v další části.

Nasazení kontejneru sajdkáru pro nastavení vzdáleného zápisu

  1. Zkopírujte následující YAML a uložte ho do souboru. YAML používá jako naslouchající port port 8081. Pokud používáte jiný port, upravte tuto hodnotu v 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. Použijte Helm k instalaci souboru YAML a aktualizaci konfigurace 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>
    

Ověření a řešení potíží

Informace o ověřování a řešení potíží najdete v tématu Řešení potíží se vzdáleným zápisem a spravovanou službou Azure Monitor pro vzdálený zápis pro Prometheus.

Další kroky