Envío de datos de Prometheus a Azure Monitor mediante la autenticación de identidad administrada
En este artículo se describe cómo configurar la escritura remota para enviar datos desde un servidor Prometheus autoadministrado que se ejecuta en el clúster de Azure Kubernetes Service (AKS) o el clúster de Kubernetes habilitado para Azure Arc mediante la autenticación de identidad administrada y un contenedor de sidecar proporcionado por Azure Monitor. Puede usar una identidad existente creada por AKS o crear la suya propia. Aquí se describen ambas opciones.
Nota:
Si usa la identidad administrada asignada por el usuario, se recomienda configurar directamente Prometheus en ejecución en el clúster de Kubernetes para escribir de forma remota en el área de trabajo de Azure Monitor. Vea Envío de datos de Prometheus a Azure Monitor mediante la identidad administrada asignada por el usuario para más información. En los pasos siguientes se usa el contenedor de sidecar de Azure Monitor.
Configuraciones de clústeres
Este artículo se aplica a las configuraciones de clúster siguientes:
- Clúster de Azure Kubernetes Service
- Clúster de Kubernetes habilitado para Azure Arc
Nota:
Para obtener información sobre cómo configurar la escritura remota para un clúster de Kubernetes que se ejecuta en una nube diferente o local, consulte Envío de datos de Prometheus a Azure Monitor mediante la autenticación de Microsoft Entra.
Requisitos previos
Versiones compatibles
Las versiones de Prometheus mayores que v2.45 son necesarias para la autenticación de identidad administrada.
Área de trabajo de Azure Monitor
En este artículo se describe el envío de métricas de Prometheus a un área de trabajo de Azure Monitor. Para crear un área de trabajo de Azure Monitor, consulte Administrar un área de trabajo de Azure Monitor.
Permisos
Los permisos de administrador para el clúster o recurso son necesarios para completar los pasos descritos en este artículo.
Configuración de una aplicación para la identidad administrada
El proceso para configurar la escritura remota de Prometheus para aplicaciones mediante la autenticación de identidad administrada implica completar las tareas siguientes:
- Obtenga el nombre del grupo de recursos del nodo de AKS.
- Obtenga el identificador de cliente de la identidad administrada asignada por el usuario.
- Asigne el rol Editor de métricas de supervisión en la regla de recopilación de datos del área de trabajo a la identidad administrada.
- Proporcione al clúster de AKS acceso a la identidad administrada.
- Implementar un contenedor sidecar para configurar la escritura remota.
Los formatos se describen en las secciones siguientes.
Obtener el nombre del grupo de recursos del nodo de AKS
El grupo de recursos de nodo del clúster de AKS contiene recursos que usará en otros pasos de este proceso. Este grupo de recursos tiene el nombre MC_<AKS-RESOURCE-GROUP>_<AKS-CLUSTER-NAME>_<REGION>
. Es posible encontrar el nombre del grupo de recursos con el menú Grupo de recursos de Azure Portal.
Obtener el identificador de cliente de la identidad administrada asignada por el usuario
Debe obtener el identificador de cliente de la identidad que va a usar. Copie el identificador de cliente para usarlo más adelante en el proceso.
En lugar de crear su propio identificador de cliente, puede usar una de las identidades creadas por AKS. Para más información sobre las identidades, consulte Uso de una identidad administrada en Azure Kubernetes Service.
En este artículo se usa la identidad de kubelet. El nombre de esta identidad es <AKS-CLUSTER-NAME>-agentpool
y se encuentra en el grupo de recursos de nodo del clúster de AKS.
Seleccione la identidad administrada <AKS-CLUSTER-NAME>-agentpool
. En la página de Información general, copie el valor de Id. de cliente. Para obtener más información, consulte Administración de identidades administradas asignadas por el usuario.
Asignar el rol Editor de métricas de supervisión en la regla de recopilación de datos del área de trabajo a la identidad administrada
La identidad administrada debe tener asignado el rol Editor de métricas de monitorización en la regla de recopilación de datos asociada al área de trabajo de Azure Monitor.
En el menú de recursos del área de trabajo de Azure Monitor, seleccione Información general. Para Regla de recopilación de datos, seleccione el vínculo.
En el menú de recursos de la regla de recopilación de datos, seleccione Control de acceso (IAM).
Seleccione Agregar y, después, Agregar asignación de roles.
Seleccione el rol Publicador de métricas de supervisión y, a continuación, seleccione Siguiente.
Seleccione Identidad administrada y después elija Seleccionar miembros. Seleccione la suscripción que contiene la identidad asignada por el usuario y, después, seleccione Identidad administrada asignada por el usuario. Seleccione la identidad asignada por el usuario que quiera usar y, después, seleccione Seleccionar.
Para completar la asignación de roles, seleccione Revisar y asignar.
Proporcionar al clúster de AKS acceso a la identidad administrada
Este paso no es necesario si usa una identidad de AKS. Una identidad de AKS ya tiene acceso al clúster.
Importante
Para completar los pasos descritos en esta sección, debe tener permisos de administrador de acceso de usuario o propietario para el clúster.
Identifique los conjuntos de escalado de máquinas virtuales en el grupo de recursos de nodo del clúster de AKS.
Para cada conjunto de escalado de máquinas virtuales, ejecute el siguiente comando en la CLI de Azure:
az vmss identity assign -g <AKS-NODE-RESOURCE-GROUP> -n <AKS-VMSS-NAME> --identities <USER-ASSIGNED-IDENTITY-RESOURCE-ID>
Implementación de un contenedor sidecar para configurar la escritura remota
Copie el siguiente código YAML y guárdelo en un archivo. YAML usa el puerto 8081 como puerto de escucha. Si usa un puerto diferente, modifique el puerto en 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>
Reemplace los valores siguientes en YAML:
Value Descripción <AKS-CLUSTER-NAME>
Nombre del clúster de AKS. <CONTAINER-IMAGE-VERSION>
mcr.microsoft.com/azuremonitor/containerinsights/ciprod/prometheus-remote-write/images:prom-remotewrite-20240617.1
La versión de la imagen de contenedor de escritura remota.<INGESTION-URL>
El valor para el punto de conexión de ingesta de datos de la página de información general del área de trabajo de Azure Monitor. <MANAGED-IDENTITY-CLIENT-ID>
El valor de Id. de cliente de la página de Información general de la identidad administrada. <CLUSTER-NAME>
Nombre del clúster en el que se ejecuta Prometheus. Importante
Para la nube de Azure Government, agregue las siguientes variables de entorno en la sección
env
del archivo YAML:- name: INGESTION_AAD_AUDIENCE value: https://monitor.azure.us/
Abra Azure Cloud Shell y cargue el archivo YAML.
Use Helm para aplicar el archivo YAML y actualizar la configuración de 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>
Comprobación y solución de problemas
Para obtener información de comprobación y solución de problemas, vea Solución de problemas de escritura remota y Servicio administrado de Azure Monitor para la escritura remota de Prometheus.
Pasos siguientes
- Recopilación de métricas de Prometheus desde un clúster de AKS
- Más información sobre el servicio administrado de Azure Monitor para Prometheus
- Escritura remota del servicio administrado para Prometheus de Azure Monitor
- Envío de datos de Prometheus a Azure Monitor mediante la autenticación de Microsoft Entra
- Envío de datos de Prometheus a Azure Monitor mediante la autenticación de Id. de carga de trabajo de Microsoft Entra (versión preliminar)
- Envío de datos de Prometheus a Azure Monitor mediante la autenticación de identidad administrada por pods de Microsoft Entra (versión preliminar)