Inviare dati Prometheus a Monitoraggio di Azure usando l'autenticazione dell'identità gestita
Questo articolo descrive come configurare la scrittura remota per inviare dati da un server Prometheus autogestito in esecuzione nel cluster servizio Azure Kubernetes (AKS) o nel cluster Kubernetes abilitato per Azure Arc usando l'autenticazione dell'identità gestita. È possibile usare un'identità esistente creata dal servizio Azure Kubernetes o crearne una personalizzata. Entrambe le opzioni sono descritte di seguito.
Configurazioni dei cluster
Questo articolo si applica alle configurazioni del cluster seguenti:
- Cluster del servizio Azure Kubernetes
- Cluster Kubernetes abilitato per Azure Arc
Nota
Per informazioni sulla configurazione della scrittura remota per un cluster Kubernetes in esecuzione in un cloud diverso o in locale, vedere Inviare dati Prometheus a Monitoraggio di Azure usando l'autenticazione di Microsoft Entra.
Prerequisiti
Versioni supportate
Le versioni prometheus successive alla versione 2.45 sono necessarie per l'autenticazione dell'identità gestita.
Area di lavoro di Monitoraggio di Azure
Questo articolo illustra l'invio di metriche prometheus a un'area di lavoro di Monitoraggio di Azure. Per creare un'area di lavoro di Monitoraggio di Azure, vedere Gestire un'area di lavoro di Monitoraggio di Azure.
Autorizzazioni
Amministrazione istrator sono necessarie autorizzazioni per il cluster o la risorsa per completare i passaggi descritti in questo articolo.
Configurare un'applicazione per l'identità gestita
Il processo per configurare la scrittura remota di Prometheus per un'applicazione tramite l'autenticazione dell'identità gestita comporta il completamento delle attività seguenti:
- Ottenere il nome del gruppo di risorse del nodo del servizio Azure Kubernetes.
- Ottenere l'ID client dell'identità gestita assegnata dall'utente.
- Assegnare il ruolo Di pubblicazione metriche di monitoraggio nella regola di raccolta dati dell'area di lavoro all'identità gestita.
- Concedere al cluster del servizio Azure Kubernetes l'accesso all'identità gestita.
- Distribuire un contenitore sidecar per configurare la scrittura remota.
Le attività sono descritte nelle sezioni seguenti.
Ottenere il nome del gruppo di risorse del nodo del servizio Azure Kubernetes
Il gruppo di risorse del nodo del cluster del servizio Azure Kubernetes contiene risorse usate in altri passaggi di questo processo. Questo gruppo di risorse ha il nome MC_<AKS-RESOURCE-GROUP>_<AKS-CLUSTER-NAME>_<REGION>
. È possibile trovare il nome del gruppo di risorse usando il menu Gruppi di risorse nel portale di Azure.
Ottenere l'ID client dell'identità gestita assegnata dall'utente
È necessario ottenere l'ID client dell'identità che si intende usare. Copiare l'ID client da usare più avanti nel processo.
Anziché creare un ID client personalizzato, è possibile usare una delle identità create dal servizio Azure Kubernetes. Per altre informazioni sulle identità, vedere Usare un'identità gestita in servizio Azure Kubernetes.
Questo articolo usa l'identità kubelet. Il nome di questa identità è <AKS-CLUSTER-NAME>-agentpool
e si trova nel gruppo di risorse del nodo del cluster del servizio Azure Kubernetes.
Selezionare l'identità <AKS-CLUSTER-NAME>-agentpool
gestita. Nella pagina Panoramica copiare il valore per ID client. Per altre informazioni, vedere Gestire le identità gestite assegnate dall'utente.
Assegnare il ruolo di server di pubblicazione delle metriche di monitoraggio nella regola di raccolta dati dell'area di lavoro all'identità gestita
All'identità gestita deve essere assegnato il ruolo Server di pubblicazione metriche di monitoraggio nella regola di raccolta dati associata all'area di lavoro di Monitoraggio di Azure.
Nel menu delle risorse per l'area di lavoro di Monitoraggio di Azure selezionare Panoramica. Per Regola di raccolta dati selezionare il collegamento.
Nel menu delle risorse per la regola di raccolta dati selezionare Controllo di accesso (IAM).
Selezionare Aggiungi e quindi selezionare Aggiungi assegnazione di ruolo.
Selezionare il ruolo Server di pubblicazione metriche di monitoraggio e quindi selezionare Avanti.
Selezionare Identità gestita e quindi selezionare Seleziona membri. Selezionare la sottoscrizione che contiene l'identità assegnata dall'utente e quindi selezionare Identità gestita assegnata dall'utente. Selezionare l'identità assegnata dall'utente che si vuole usare e quindi scegliere Seleziona.
Per completare l'assegnazione di ruolo, selezionare Rivedi e assegna.
Concedere al cluster del servizio Azure Kubernetes l'accesso all'identità gestita
Questo passaggio non è obbligatorio se si usa un'identità del servizio Azure Kubernetes. Un'identità del servizio Azure Kubernetes ha già accesso al cluster.
Importante
Per completare i passaggi descritti in questa sezione, è necessario disporre delle autorizzazioni di amministratore di accesso utente o proprietario per il cluster.
Identificare i set di scalabilità di macchine virtuali nel gruppo di risorse del nodo per il cluster del servizio Azure Kubernetes.
Per ogni set di scalabilità di macchine virtuali, eseguire il comando seguente nell'interfaccia della riga di comando di Azure:
az vmss identity assign -g <AKS-NODE-RESOURCE-GROUP> -n <AKS-VMSS-NAME> --identities <USER-ASSIGNED-IDENTITY-RESOURCE-ID>
Distribuire un contenitore sidecar per configurare la scrittura remota
Copiare il codice YAML seguente e salvarlo in un file. YAML usa la porta 8081 come porta di ascolto. Se si usa una porta diversa, modificare la porta in 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>
Sostituire i valori seguenti in YAML:
Valore Descrizione <AKS-CLUSTER-NAME>
Nome del cluster del servizio Azure Kubernetes. <CONTAINER-IMAGE-VERSION>
mcr.microsoft.com/azuremonitor/containerinsights/ciprod/prometheus-remote-write/images:prom-remotewrite-20240507.1
Versione dell'immagine del contenitore di scrittura remota.<INGESTION-URL>
Valore per Endpoint di inserimento metriche dalla pagina Panoramica per l'area di lavoro monitoraggio di Azure. <MANAGED-IDENTITY-CLIENT-ID>
Valore per ID client dalla pagina Panoramica per l'identità gestita. <CLUSTER-NAME>
Nome del cluster su cui è in esecuzione Prometheus. Importante
Per Azure per enti pubblici cloud, aggiungere le variabili di ambiente seguenti nella
env
sezione del file YAML:- name: INGESTION_AAD_AUDIENCE value: https://monitor.azure.us/
Aprire Azure Cloud Shell e caricare il file YAML.
Usare Helm per applicare il file YAML e aggiornare la configurazione di 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>
Verifica e risoluzione dei problemi
Per informazioni sulla verifica e sulla risoluzione dei problemi, vedere Risoluzione dei problemi relativi alla scrittura remota e al servizio gestito di Monitoraggio di Azure per la scrittura remota di Prometheus.
Passaggi successivi
- Raccogliere le metriche Prometheus da un cluster del servizio Azure Kubernetes
- Altre informazioni sul servizio gestito di Monitoraggio di Azure per Prometheus
- Scrittura remota nel servizio gestito di Monitoraggio di Azure per Prometheus
- Inviare dati Prometheus a Monitoraggio di Azure usando l'autenticazione Microsoft Entra
- Inviare dati Prometheus a Monitoraggio di Azure usando l'autenticazione ID dei carichi di lavoro di Microsoft Entra (anteprima)
- Inviare dati Prometheus a Monitoraggio di Azure usando l'autenticazione dell'identità gestita dal pod di Microsoft Entra (anteprima)