Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Monitor-hanterad tjänst för Prometheus är avsedd att ersätta självhanterade Prometheus så att du inte behöver hantera en Prometheus-server i dina Kubernetes-kluster. Det kan dock finnas scenarier där du vill fortsätta att använda självhanterad Prometheus i dina Kubernetes-kluster samtidigt som du skickar data till Managed Prometheus för långsiktig datakvarhållning och för att skapa en centraliserad vy över dina kluster. Detta kan vara en tillfällig lösning när du migrerar till Managed Prometheus eller en långsiktig lösning om du har specifika krav för självhanterad Prometheus.
Architecture
Remote_write är en funktion i Prometheus som gör att du kan skicka mått från en lokal Prometheus-instans till fjärrlagring eller till en annan Prometheus-instans. Använd den här funktionen för att skicka mått från självhanterad Prometheus som körs i dina Kubernetes-kluster eller virtuella datorer till en Azure Monitor-arbetsyta som används av Managed Prometheus.
Följande diagram illustrerar den här konfigurationen. En datainsamlingsregel (DCR) i Azure Monitor tillhandahåller en slutpunkt för den självhanterade Prometheus-instansen för att skicka mått och definierar den Azure Monitor-arbetsyta där data skickas.
Autentiseringstyper
Konfigurationskraven för fjärrskrivning beror på vilken autentiseringstyp som används för att ansluta till Azure Monitor-arbetsytan. I följande tabell beskrivs de autentiseringstyper som stöds. Informationen för varje konfiguration beskrivs i följande avsnitt.
| Typ | Kluster som stöds | 
|---|---|
| Systemtilldelad hanterad identitet | Azure Kubernetes-tjänsten (AKS) Virtuell Azure-dator/VMSS | 
| Användartilldelad hanterad identitet | Azure Kubernetes-tjänsten (AKS) Arc-aktiverade Kubernetes Virtuell Azure-dator/VMSS | 
| Microsoft Entra ID | Azure Kubernetes-tjänsten (AKS) Kubernetes-kluster med Arc-stöd Kluster som körs i ett annat moln eller lokalt Virtuell Azure-dator/VMSS Arc-aktiverade servrar Virtuell dator som körs i ett annat moln eller lokalt | 
Anmärkning
Du kan också använda autentisering med Microsoft Entra ID-arbetsbelastningsidentitet, men du måste använda en sidecar-behållare för att tillhandahålla en abstraktion för inmatning av Prometheus remote write-mätdata och för att hjälpa till med autentisering av paket. Se Skicka Prometheus-data till Azure Monitor med Microsoft Entra arbetsbelastnings-ID-autentisering för konfiguration. |
Azure Monitor-arbetsyta
Azure Monitor-arbetsytan måste skapas innan du kan konfigurera fjärrskrivning. Detta aktiverar automatiskt Managed Prometheus. Om du inte redan har en kan du läsa Hantera en Azure Monitor-arbetsyta.
Skapa identitet för autentisering
Innan du kan konfigurera fjärrskrivning måste du skapa den identitet som du ska använda för att autentisera till Azure Monitor-arbetsytan. I följande avsnitt beskrivs hur du skapar varje typ av identitet om du inte återanvänder en befintlig.
Du skapar inte direkt en systemtilldelad hanterad identitet utan aktiverar den i stället på en virtuell dator eller azur-skalningsuppsättning. För en virtuell Azure-dator kan du aktivera identiteten när du skapar den virtuella datorn eller aktivera den senare från dess identitetssida i Azure-portalen. För en VMSS måste du aktivera den när du har skapat den. De olika alternativen för att aktivera systemhanterad identitet finns i Konfigurera hanterade identiteter på virtuella Azure-datorer (VM) och Konfigurera hanterade identiteter för Azure-resurser på en VM-skalningsuppsättning.
För ett AKS-kluster måste den hanterade identiteten tilldelas virtuella maskinskalsuppsättningar för klustret. AKS skapar en resursgrupp som innehåller de virtuella maskinernas skalningsuppsättningar. Öppna den här resursgruppen från sidan Egenskaper på klustrets meny i Azure-portalen. Klicka på Infrastrukturresursgrupp för att visa en lista över resurserna i den här resursgruppen. Du måste aktivera systemhanterad identitet för varje VM-skalningsuppsättning i resursgruppen.
Tilldela roller
När den identitet som du ska använda har skapats måste den ges åtkomst till den datainsamlingsregel (DCR) som är associerad med Azure Monitor-arbetsytan som tar emot fjärrskrivningsdata. Denna DCR skapas automatiskt när du skapar arbetsytan. Du anger den här identiteten i fjärrskrivningskonfigurationen för klustret eller den virtuella datorn.
- I översiktsfönstret för Azure Monitor-arbetsytan väljer du länken Datainsamlingsregel. Då öppnas den datainsamlingsregel (DCR) som är associerad med arbetsytan. 
- På sidan för datainsamlingsregeln väljer du Åtkomstkontroll (IAM). Välj Lägg till och sedan Lägg till rolltilldelning. 
- Välj rollen Publicerare av övervakningsmått och välj sedan Nästa. 
- Välj den identitet som ska tilldelas rollen. - För systemtilldelad hanterad identitet väljer du Hanterad identitet och sedan Välj medlemmar. I listrutan Hanterad identitet väljer du vm/VMSS eller var och en av VMSS i AKS-klustret.
 - För användartilldelad hanterad identitet väljer du avsnittet Användartilldelad hanterad identitet . Välj den identitet som du skapade.
 - För Entra-ID väljer du Användare, grupp eller tjänstens huvudnamn och sedan Välj medlemmar. Välj det program som du skapade och välj sedan Välj.
 
- Välj Välj för att bekräfta ditt val och sedan Granska och tilldela för att slutföra rolltilldelningen. 
Konfigurera fjärrskrivning i konfigurationsfilen
Det sista steget är att lägga till fjärrskrivning i konfigurationsfilen för din självhanterade Prometheus-server. Förutom information om den identitet som du skapade behöver du även slutpunkten för måttinmatning för Azure Monitor-arbetsytan. Hämta det här värdet från sidan Översikt för din Azure Monitor-arbetsyta i Azure-portalen.
Avsnittet remote-write i Prometheus-konfigurationsfilen ser ut ungefär som i följande exempel, beroende på vilken autentiseringstyp du använder.
Hanterad identitet
remote_write:   
  - url: "<metrics ingestion endpoint for your Azure Monitor workspace>"
    azuread:
      cloud: 'AzurePublic'  # Options are 'AzurePublic', 'AzureChina', or 'AzureGovernment'.
      managed_identity:  
        client_id: "<client-id of the managed identity>"
Entra-ID
remote_write:   
  - url: "<metrics ingestion endpoint for your Azure Monitor workspace>"
    azuread:
      cloud: 'AzurePublic'  # Options are 'AzurePublic', 'AzureChina', or 'AzureGovernment'.
      oauth:  
        client_id: "<client-id from the Entra app>"
        client_secret: "<client secret from the Entra app>"
        tenant_id: "<Azure subscription tenant Id>"
Tillämpa konfigurationsfiluppdateringar
Virtuell dator
För en virtuell dator blir konfigurationsfilen promtheus.yml om du inte anger en annan som används prometheus --config.file <path-to-config-file> när du startar Prometheus-servern.
Kubernetes-kluster
För ett Kubernetes-kluster lagras konfigurationsfilen vanligtvis i en ConfigMap. Följande är ett exempel på en ConfigMap som innehåller en fjärrskrivningskonfiguration med hanterad identitet för självhanterad Prometheus som körs i ett Kubernetes-kluster.
  GNU nano 6.4
apiVersion: v1
kind: ConfigMap
metadata:
  name: prometheus-server-conf # must match what your pod mounts
  namespace: monitoring  # adjust to your namespace
data:
  prometheus.yml: |-
   global:
     scrape_interval: 15s
     evaluation_interval: 15s
     external_labels:
       cluster: "aks11"
   scrape_configs:
     - job_name: "prometheus"
       static_configs:
         - targets: ["localhost:9090"]
   remote_write:
     - url: "https://aks-amw-0mi2.eastus-1.metrics.ingest.monitor.azure.com/dataCollectionRules/dcr-00000000000000000000000000000000/streams/Microsoft-PrometheusMetrics/api/v1/write?api-version=2023-04-24"
       azuread:
         cloud: 'AzurePublic'
         managed_identity:
           client_id: "00001111-aaaa-2222-bbbb-3333cccc4444"
Använd följande kommando för att tillämpa konfigurationsfiluppdateringarna.
kubectl apply -f <configmap-file-name>.yaml
Starta om Prometheus för att hämta den nya konfigurationen. Om du använder en distribution kan du starta om poddarna genom att köra följande kommando.
kubectl -n monitoring rollout restart deploy <prometheus-deployment-name>
Versionsinformation
Detaljerade viktig information om bilbilden på fjärrskrivningssidan finns i viktig information om fjärrskrivning.
Felsökning
HTTP 403-fel i Prometheus-loggen
Det tar cirka 30 minuter innan tilldelningen av rollen börjar gälla. Under den här tiden kan du se ett HTTP 403-fel i Prometheus-loggen. Kontrollera att du har konfigurerat den hanterade identiteten eller Microsoft Entra-ID-programmet korrekt med rollen Monitoring Metrics Publisher på arbetsytans DCR. Om konfigurationen är korrekt väntar du 30 minuter innan rolltilldelningen börjar gälla.
Inga Kubernetes-data samlas in
Om data inte samlas in i Managed Prometheus kör du följande kommando för att hitta fel i fjärrskrivningscontainern.
kubectl --namespace <Namespace> describe pod <Prometheus-Pod-Name>
Containern startas om upprepade gånger
En container som startas om regelbundet beror troligen på felkonfiguration av containern. Kör följande kommando för att visa konfigurationsvärdena som angetts för containern. Kontrollera särskilt AZURE_CLIENT_ID konfigurationsvärdena och IDENTITY_TYPE.
kubectl get pod <Prometheus-Pod-Name> -o json | jq -c  '.spec.containers[] | select( .name | contains("<Azure-Monitor-Side-Car-Container-Name>"))'
Utdata från det här kommandot har följande format:
{"env":[{"name":"INGESTION_URL","value":"https://my-azure-monitor-workspace.eastus2-1.metrics.ingest.monitor.azure.com/dataCollectionRules/dcr-00000000000000000/streams/Microsoft-PrometheusMetrics/api/v1/write?api-version=2021-11-01-preview"},{"name":"LISTENING_PORT","value":"8081"},{"name":"IDENTITY_TYPE","value":"userAssigned"},{"name":"AZURE_CLIENT_ID","value":"00000000-0000-0000-0000-00000000000"}],"image":"mcr.microsoft.com/azuremonitor/prometheus/promdev/prom-remotewrite:prom-remotewrite-20221012.2","imagePullPolicy":"Always","name":"prom-remotewrite","ports":[{"containerPort":8081,"name":"rw-port","protocol":"TCP"}],"resources":{},"terminationMessagePath":"/dev/termination-log","terminationMessagePolicy":"File","volumeMounts":[{"mountPath":"/var/run/secrets/kubernetes.io/serviceaccount","name":"kube-api-access-vbr9d","readOnly":true}]}
Data som tappats bort i högvolymmiljöer
Datainsamlingsregeln (DCR) och datainsamlingsslutpunkten (DCE) för Azure Monitor-arbetsytan omfattas av datainmatningsgränser som anges i Azure Monitor-tjänstgränser. Du omfattas mest av dessa gränser när du konfigurerar fjärrskrivning för flera kluster som skickar data till samma slutpunkt.
Överväg fjärrskrivningsjustering för att justera konfigurationsinställningarna för bättre prestanda. Om du fortfarande ser att data försvinner, kan du överväga att skapa ytterligare datainsamlingsregler och datainsamlingsändpunkter för att distribuera inmatningsbelastningen över flera slutpunkter. Den här metoden hjälper till att optimera prestanda och säkerställa effektiv datahantering. Se Instruktioner för hur du skapar en anpassad datainsamlingsslutpunkt (DCE) och en anpassad datainsamlingsregel (DCR) för en befintlig Azure Monitor-arbetsyta (AMW) för att mata in Prometheus-mått.
 
              
               
              
               
              
               
              
               
              
               
              
               
              
               
              
               
              
               
              
               
              
               
              
              