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 en een side carcontainer die wordt geleverd door Azure Monitor. U kunt een bestaande identiteit gebruiken die is gemaakt door AKS of uw eigen identiteit maken. Beide opties worden hier beschreven.
Notitie
Als u de door de gebruiker toegewezen beheerde identiteit gebruikt, raden we u aan Prometheus rechtstreeks te configureren die wordt uitgevoerd op uw Kubernetes-cluster om extern te schrijven naar De Azure Monitor-werkruimte. Zie Prometheus-gegevens verzenden naar Azure Monitor met behulp van door de gebruiker toegewezen beheerde identiteit voor meer informatie. In de onderstaande stappen wordt de container voor auto's van Azure Monitor gebruikt.
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
Beheerdersmachtigingen voor het cluster of de resource zijn vereist om de stappen in dit artikel uit te voeren.
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:
- Haal de naam van de AKS-knooppuntresourcegroep op.
- Haal de client-id op van de door de gebruiker toegewezen beheerde identiteit.
- Wijs de rol Monitoring Metrics Publisher toe aan de regel voor het verzamelen van werkruimtegegevens aan de beheerde identiteit.
- Geef het AKS-cluster toegang tot de beheerde identiteit.
- 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.
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>-agentpool
en bevindt zich in de knooppuntresourcegroep van het AKS-cluster.
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.
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.
Selecteer Overzicht in het resourcemenu voor uw Azure Monitor-werkruimte. Selecteer de koppeling voor de regel voor gegevensverzameling.
Selecteer toegangsbeheer (IAM) in het resourcemenu voor de regel voor gegevensverzameling.
Selecteer Toevoegen en selecteer vervolgens Roltoewijzing toevoegen.
Selecteer de rol Monitoring Metrics Publisher en selecteer Vervolgens.
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.
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.
Identificeer de virtuele-machineschaalsets in de knooppuntresourcegroep voor uw AKS-cluster.
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
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>
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/
Open Azure Cloud Shell en upload het YAML-bestand.
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
- Metrische Prometheus-gegevens verzamelen van een AKS-cluster
- Meer informatie over beheerde Azure Monitor-service voor Prometheus
- Extern schrijven in beheerde Azure Monitor-service voor Prometheus
- Prometheus-gegevens verzenden naar Azure Monitor met behulp van Microsoft Entra-verificatie
- Prometheus-gegevens verzenden naar Azure Monitor met behulp van Microsoft Entra Workload-ID (preview)-verificatie
- Prometheus-gegevens verzenden naar Azure Monitor met behulp van door Microsoft Entra beheerde identiteitsverificatie (preview)