Odesílání dat Prometheus do služby Azure Monitor pomocí ověřování spravované identity

Tento článek popisuje, jak nastavit vzdálené zápisy pro odesílání dat ze serveru Prometheus spravovaného v clusteru Azure Kubernetes Service (AKS) nebo clusteru Kubernetes s podporou Azure Arc pomocí ověřování spravovaných identit. Můžete použít existující identitu vytvořenou službou AKS nebo vytvořit vlastní. Obě možnosti jsou zde popsány.

Konfigurace clusterů

Tento článek se týká následujících konfigurací clusteru:

  • Cluster Azure Kubernetes Service
  • Cluster Kubernetes s podporou Azure Arc

Poznámka:

Informace o nastavení vzdáleného zápisu pro cluster Kubernetes běžící v jiném cloudu nebo místním prostředí najdete v tématu Odesílání dat Prometheus do služby Azure Monitor pomocí ověřování 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 spravovanou identitu

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

  1. Získejte název skupiny prostředků uzlu AKS.
  2. Získejte ID klienta spravované identity přiřazené uživatelem.
  3. Přiřaďte ke spravované identitě roli Vydavatele metrik monitorování v pravidle shromažďování dat pracovního prostoru.
  4. Udělte clusteru AKS přístup ke spravované identitě.
  5. Nasaďte kontejner sajdkáru pro nastavení vzdáleného zápisu.

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

Získání názvu skupiny prostředků uzlu AKS

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.

Snímek obrazovky se seznamem skupin prostředků

Získání ID klienta spravované identity přiřazené uživatelem

Musíte získat ID klienta identity, kterou budete používat. Zkopírujte ID klienta, které se použije později v procesu.

Místo vytváření vlastního ID klienta můžete použít jednu z identit, které vytváří AKS. Další informace o identitách najdete v tématu Použití spravované identity ve službě Azure Kubernetes Service.

Tento článek používá identitu kubeletu. Název této identity je <AKS-CLUSTER-NAME>-agentpoola je ve skupině prostředků uzlu clusteru AKS.

Snímek obrazovky znázorňující seznam prostředků, které jsou ve skupině prostředků uzlu

Vyberte spravovanou <AKS-CLUSTER-NAME>-agentpool identitu. Na stránce Přehled zkopírujte hodnotu ID klienta. Další informace najdete v tématu Správa spravovaných identit přiřazených uživatelem.

Snímek obrazovky znázorňující ID klienta na stránce přehledu spravované identity

Přiřazení role Vydavatele metrik monitorování v pravidle shromažďování dat pracovního prostoru ke spravované identitě

Spravovaná identita musí mít přiřazenou roli Vydavatele metrik monitorování v pravidle shromažďování dat, které je přidružené k vašemu pracovnímu prostoru služby Azure Monitor.

  1. V nabídce prostředků pro váš pracovní prostor Azure Monitoru vyberte Přehled. V případě pravidla shromažďování dat vyberte odkaz.

    Snímek obrazovky znázorňující pravidlo shromažďování dat přidružené k pracovnímu prostoru služby Azure Monitor

  2. V nabídce prostředků pravidla shromažďování dat vyberte Řízení přístupu (IAM).

  3. Vyberte Přidat a pak vyberte Přidat přiřazení role.

    Snímek obrazovky znázorňující přidání přiřazení role na stránkách řízení přístupu

  4. Vyberte roli Vydavatel metrik monitorování a pak vyberte Další.

    Snímek obrazovky se seznamem přiřazení rolí

  5. Vyberte Spravovanou identitu a pak zvolte Vybrat členy. Vyberte předplatné, které obsahuje identitu přiřazenou uživatelem, a pak vyberte spravovanou identitu přiřazenou uživatelem. Vyberte identitu přiřazenou uživatelem, kterou chcete použít, a pak zvolte Vybrat.

    Snímek obrazovky znázorňující výběr spravované identity přiřazené uživatelem

  6. Pokud chcete přiřazení role dokončit, vyberte Zkontrolovat a přiřadit.

Udělení přístupu ke spravované identitě clusteru AKS

Tento krok se nevyžaduje, pokud používáte identitu AKS. Identita AKS už má přístup ke clusteru.

Důležité

Abyste mohli dokončit kroky v této části, musíte mít oprávnění vlastníka nebo správce uživatelských přístupů ke clusteru.

  1. Identifikujte škálovací sady virtuálních počítačů ve skupině prostředků uzlu pro váš cluster AKS.

    Snímek obrazovky znázorňující škálovací sady virtuálních počítačů ve skupině prostředků uzlu

  2. Pro každou škálovací sadu virtuálních počítačů spusťte v Azure CLI následující příkaz:

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

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 port v 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. Nahraďte v YAML následující hodnoty:

    Hodnota Popis
    <AKS-CLUSTER-NAME> Název clusteru AKS
    <CONTAINER-IMAGE-VERSION> mcr.microsoft.com/azuremonitor/prometheus/promdev/prom-remotewrite:prom-remotewrite-20230906.1
    Verze image vzdáleného zápisu kontejneru pro zápis
    <INGESTION-URL> Hodnota koncového bodu příjmu metrik ze stránky Přehled pracovního prostoru služby Azure Monitor.
    <MANAGED-IDENTITY-CLIENT-ID> Hodnota ID klienta ze stránky Přehled spravované identity.
    <CLUSTER-NAME> Název clusteru, na kterém běží Systém Prometheus.

    Důležité

    V případě cloudu Azure Government přidejte do části souboru YAML následující proměnné env prostředí:

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

  3. Otevřete Azure Cloud Shell a nahrajte soubor YAML.

  4. Použijte Helm k instalaci souboru YAML a aktualizaci konfigurace Prometheus:

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

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