Отправка данных Prometheus в Azure Monitor с помощью проверки подлинности управляемого удостоверения
В этой статье описывается, как настроить удаленную запись для отправки данных с локально управляемого сервера Prometheus, работающего в кластере Служба Azure Kubernetes (AKS) или кластере Kubernetes с поддержкой Azure Arc, с помощью проверки подлинности управляемого удостоверения и бокового контейнера автомобиля, предоставленного Azure Monitor. Вы можете использовать существующее удостоверение, созданное AKS, или создать собственное. В этой статье описываются оба варианта.
Примечание.
Если вы используете управляемое удостоверение, назначаемое пользователем, рекомендуется напрямую настроить Prometheus, запущенный в кластере Kubernetes, для удаленной записи в рабочую область Azure Monitor. Дополнительные сведения см. в статье "Отправка данных Prometheus в Azure Monitor с помощью управляемого удостоверения , назначаемого пользователем". Приведенные ниже действия используют контейнер бокового автомобиля Azure Monitor.
Конфигурации кластера
Эта статья относится к следующим конфигурациям кластера:
- Кластер Службы Azure Kubernetes
- Кластер Kubernetes с поддержкой Azure Arc
Примечание.
Сведения о настройке удаленной записи для кластера Kubernetes, работающего в другом облаке или локальной среде, см. в статье "Отправка данных Prometheus в Azure Monitor с помощью проверки подлинности Microsoft Entra".
Необходимые компоненты
Поддерживаемые версии
Версии Prometheus, превышающие версию 2.45, требуются для проверки подлинности управляемого удостоверения.
Рабочая область Azure Monitor
В этой статье описывается отправка метрик Prometheus в рабочую область Azure Monitor. Сведения о создании рабочей области Azure Monitor см. в статье "Управление рабочей областью Azure Monitor".
Разрешения
Разрешения администратора для кластера или ресурса необходимы для выполнения действий, описанных в этой статье.
Настройка приложения для управляемого удостоверения
Процесс настройки удаленной записи Prometheus для приложения с помощью проверки подлинности управляемого удостоверения включает выполнение следующих задач:
- Получите имя группы ресурсов узла AKS.
- Получите идентификатор клиента управляемого удостоверения, назначаемого пользователем.
- Назначьте роль издателя метрик мониторинга в правиле сбора данных рабочей области управляемому удостоверению.
- Предоставьте кластеру AKS доступ к управляемому удостоверению.
- Разверните контейнер бокового контейнера для настройки удаленной записи.
Задачи описаны в следующих разделах.
Получение имени группы ресурсов узла AKS
Группа ресурсов узла кластера AKS содержит ресурсы, которые вы используете в других шагах этого процесса. Эта группа ресурсов имеет имя MC_<AKS-RESOURCE-GROUP>_<AKS-CLUSTER-NAME>_<REGION>
. Имя группы ресурсов можно найти с помощью меню "Группы ресурсов" в портал Azure.
Получение идентификатора клиента управляемого удостоверения, назначаемого пользователем
Необходимо получить идентификатор клиента удостоверения, который вы собираетесь использовать. Скопируйте идентификатор клиента, который будет использоваться позже в процессе.
Вместо создания собственного идентификатора клиента можно использовать одно из удостоверений, созданных AKS. Дополнительные сведения об удостоверениях см. в разделе "Использование управляемого удостоверения" в Служба Azure Kubernetes.
В этой статье используется удостоверение kubelet. Имя этого удостоверения — <AKS-CLUSTER-NAME>-agentpool
и находится в группе ресурсов узла кластера AKS.
Выберите управляемое <AKS-CLUSTER-NAME>-agentpool
удостоверение. На странице обзора скопируйте значение идентификатора клиента. Дополнительные сведения см. в статье "Управление управляемыми удостоверениями, назначаемыми пользователем".
Назначение роли издателя метрик мониторинга в правиле сбора данных рабочей области управляемому удостоверению
Управляемое удостоверение должно быть назначено роли издателя метрик мониторинга в правиле сбора данных, связанном с рабочей областью Azure Monitor.
В меню ресурсов для рабочей области Azure Monitor выберите "Обзор". Для правила сбора данных выберите ссылку.
В меню ресурсов для правила сбора данных выберите элемент управления доступом (IAM).
Выберите Добавить, затем выберите Добавить назначение ролей.
Выберите роль издателя метрик мониторинга и нажмите кнопку "Далее".
Выберите управляемое удостоверение и выберите " Выбрать участников". Выберите подписку, содержащую удостоверение, назначаемое пользователем, и выберите управляемое удостоверение, назначаемое пользователем. Выберите удостоверение, назначаемое пользователем, и нажмите кнопку "Выбрать".
Чтобы завершить назначение роли, нажмите кнопку "Проверить и назначить".
Предоставление кластеру AKS доступа к управляемому удостоверению
Этот шаг не требуется, если вы используете удостоверение AKS. Удостоверение AKS уже имеет доступ к кластеру.
Внимание
Чтобы выполнить действия, описанные в этом разделе, необходимо иметь разрешения администратора доступа владельца или пользователя для кластера.
Определите масштабируемые наборы виртуальных машин в группе ресурсов узла для кластера AKS.
Для каждого масштабируемого набора виртуальных машин выполните следующую команду в Azure CLI:
az vmss identity assign -g <AKS-NODE-RESOURCE-GROUP> -n <AKS-VMSS-NAME> --identities <USER-ASSIGNED-IDENTITY-RESOURCE-ID>
Развертывание контейнера на стороне для настройки удаленной записи
Скопируйте следующий YAML и сохраните его в файл. YAML использует порт 8081 в качестве порта прослушивания. При использовании другого порта измените порт в 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>
Замените следующие значения в YAML:
значение Описание <AKS-CLUSTER-NAME>
Имя кластера AKS. <CONTAINER-IMAGE-VERSION>
mcr.microsoft.com/azuremonitor/containerinsights/ciprod/prometheus-remote-write/images:prom-remotewrite-20240617.1
Версия образа контейнера удаленной записи.<INGESTION-URL>
Значение конечной точки приема метрик на странице обзора рабочей области Azure Monitor. <MANAGED-IDENTITY-CLIENT-ID>
Значение идентификатора клиента на странице обзора управляемого удостоверения. <CLUSTER-NAME>
Имя кластера, на котором запущен Prometheus. Внимание
Для Azure для государственных организаций облака добавьте следующие переменные среды в
env
разделе ФАЙЛА YAML:- name: INGESTION_AAD_AUDIENCE value: https://monitor.azure.us/
Откройте Azure Cloud Shell и отправьте ФАЙЛ YAML.
Используйте Helm, чтобы применить YAML-файл и обновить конфигурацию 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>
Проверка и устранение неполадок
Сведения о проверке и устранении неполадок см. в статье "Устранение неполадок удаленной записи и управляемой службы Azure Monitor для удаленной записи Prometheus".
Следующие шаги
- Сбор метрик Prometheus из кластера AKS
- Дополнительные сведения об управляемой службе Azure Monitor для Prometheus
- Удаленная запись в управляемой службе Azure Monitor для Prometheus
- Отправка данных Prometheus в Azure Monitor с помощью проверки подлинности Microsoft Entra
- Отправка данных Prometheus в Azure Monitor с помощью проверки подлинности Идентификация рабочей нагрузки Microsoft Entra (предварительная версия)
- Отправка данных Prometheus в Azure Monitor с помощью проверки подлинности microsoft Entra pod(предварительная версия)