Skicka Prometheus-data till Azure Monitor med hjälp av hanterad identitetsautentisering
Den här artikeln beskriver hur du konfigurerar fjärrskrivning för att skicka data från en självhanterad Prometheus-server som körs i ditt AKS-kluster (Azure Kubernetes Service) eller Azure Arc-aktiverade Kubernetes-kluster med hjälp av hanterad identitetsautentisering och en sidobilscontainer som tillhandahålls av Azure Monitor. Du kan antingen använda en befintlig identitet som skapas av AKS eller skapa en egen. Båda alternativen beskrivs här.
Kommentar
Om du använder den användartilldelade hanterade identiteten rekommenderar vi att du konfigurerar Prometheus som körs direkt i kubernetes-klustret för fjärrskrivning till Azure Monitor-arbetsytan. Mer information finns i Skicka Prometheus-data till Azure Monitor med hjälp av användartilldelad hanterad identitet . Stegen nedan använder azure monitor-sidobilcontainern.
Klusterkonfigurationer
Den här artikeln gäller för följande klusterkonfigurationer:
- Azure Kubernetes Service-kluster
- Azure Arc-aktiverat Kubernetes-kluster
Kommentar
Information om hur du konfigurerar fjärrskrivning för ett Kubernetes-kluster som körs i ett annat moln eller lokalt finns i Skicka Prometheus-data till Azure Monitor med hjälp av Microsoft Entra-autentisering.
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 hanterad identitet
Processen för att konfigurera Prometheus fjärrskrivning för ett program med hjälp av hanterad identitetsautentisering innebär att du utför följande uppgifter:
- Hämta namnet på resursgruppen för AKS-noden.
- Hämta klient-ID för den användartilldelade hanterade identiteten.
- Tilldela rollen Monitoring Metrics Publisher på arbetsytans datainsamlingsregel till den hanterade identiteten.
- Ge AKS-klustret åtkomst till den hanterade identiteten.
- Distribuera en sidovagnscontainer för att konfigurera fjärrskrivning.
Uppgifterna beskrivs i följande avsnitt.
Hämta namnet på resursgruppen för AKS-noden
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.
Hämta klient-ID för den användartilldelade hanterade identiteten
Du måste hämta klient-ID:t för den identitet som du ska använda. Kopiera klient-ID:t som ska användas senare i processen.
I stället för att skapa ett eget klient-ID kan du använda en av de identiteter som skapas av AKS. Mer information om identiteterna finns i Använda en hanterad identitet i Azure Kubernetes Service.
Den här artikeln använder kubelet-identiteten. Namnet på den här identiteten är <AKS-CLUSTER-NAME>-agentpool
, och det finns i nodresursgruppen i AKS-klustret.
Välj den hanterade identiteten <AKS-CLUSTER-NAME>-agentpool
. På sidan Översikt kopierar du värdet för klient-ID. Mer information finns i Hantera användartilldelade hanterade identiteter.
Tilldela rollen Monitoring Metrics Publisher på datainsamlingsregeln för arbetsytan till den hanterade identiteten
Den hanterade identiteten måste tilldelas rollen Monitoring Metrics Publisher för datainsamlingsregeln som är associerad med din Azure Monitor-arbetsyta.
På resursmenyn för din Azure Monitor-arbetsyta väljer du Översikt. För Datainsamlingsregel väljer du länken.
På resursmenyn för datainsamlingsregeln väljer du Åtkomstkontroll (IAM).
Välj Lägg till och sedan Lägg till rolltilldelning.
Välj utgivarrollen Övervakningsmått och välj sedan Nästa.
Välj Hanterad identitet och välj sedan Välj medlemmar. Välj den prenumeration som innehåller den användartilldelade identiteten och välj sedan Användartilldelad hanterad identitet. Välj den användartilldelade identitet som du vill använda och välj sedan Välj.
Slutför rolltilldelningen genom att välja Granska + tilldela.
Ge AKS-klustret åtkomst till den hanterade identiteten
Det här steget krävs inte om du använder en AKS-identitet. En AKS-identitet har redan åtkomst till klustret.
Viktigt!
Om du vill slutföra stegen i det här avsnittet måste du ha behörighet som ägare eller administratör för användaråtkomst för klustret.
Identifiera vm-skalningsuppsättningarna i nodresursgruppen för ditt AKS-kluster.
Kör följande kommando i Azure CLI för varje VM-skalningsuppsättning:
az vmss identity assign -g <AKS-NODE-RESOURCE-GROUP> -n <AKS-VMSS-NAME> --identities <USER-ASSIGNED-IDENTITY-RESOURCE-ID>
Distribuera en sidovagnscontainer för att konfigurera fjärrskrivning
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 porten i 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>
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/
Öppna Azure Cloud Shell och ladda upp YAML-filen.
Använd Helm för att tillämpa YAML-filen och uppdatera Prometheus-konfigurationen:
# 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>
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
- Samla in Prometheus-mått från ett AKS-kluster
- Läs mer om azure monitor-hanterad tjänst för Prometheus
- Fjärrskrivning i Azure Monitor-hanterad tjänst för Prometheus
- Skicka Prometheus-data till Azure Monitor med hjälp av Microsoft Entra-autentisering
- Skicka Prometheus-data till Azure Monitor med hjälp av Microsoft Entra-arbetsbelastnings-ID (förhandsversion)
- Skicka Prometheus-data till Azure Monitor med hjälp av Microsoft Entra-poddhanterad identitetsautentisering (förhandsversion)