Enviar dados do Prometheus para o Azure Monitor usando a autenticação de identidade gerenciada pelo pod do Microsoft Entra (em versão prévia)
Cuidado
Este artigo foi retirado.
A imagem auxiliar não é mais mantida ou suportada.
Para obter mais informações sobre a gravação remota do Prometheus com o AzureMonitor, consulte Serviço gerenciado do Azure Monitor para gravação remota do Prometheus
Este artigo explica como configurar a gravação remota para o serviço gerenciado do Azure Monitor para Prometheus usando a autenticação de identidade gerenciada pelo pod do Microsoft Entra (em versão prévia).
Observação
O contêiner sidecar de gravação remota mencionado neste artigo deve ser configurado seguindo estritamente os passos aqui apresentados, e somente se o cluster do AKS (Serviço de Kubernetes do Azure) já tiver um pod do Microsoft Entra habilitado. As identidades gerenciadas pelo pod da Microsoft Entra foram preteridas e substituídas pela ID de carga de trabalho do Microsoft Entra. Recomendamos que você use a autenticação da ID de carga de trabalho do Microsoft Entra.
Pré-requisitos
Versões suportadas
Versões do Prometheus superiores à v2.45 são necessárias para autenticação de identidade gerenciada.
Workspace do Azure Monitor
Esse artigo aborda o envio de métricas do Prometheus para um workspace do Azure Monitor. Para criar um workspace do Azure Monitor, confira Gerenciar um workspace do Azure Monitor.
Permissões
São necessárias permissões de administrador para o cluster ou recurso para concluir as etapas desse artigo.
Configurar um aplicativo para identidade gerenciada pelo pod do Microsoft Entra
O processo de configuração da gravação remota do Prometheus para um aplicado usando a autenticação de identidade gerenciada pelo pod do Microsoft Entra inclui as seguintes etapas:
- Registrar uma identidade gerenciada atribuída pelo usuário com o Microsoft Entra ID.
- Atribuir as funções de Operador de Identidade Gerida e Colaborador de Máquina Virtual à identidade gerida.
- Atribuir a função de Publicador de Métricas de Monitoramento à identidade gerenciada atribuída pelo usuário.
- Criar uma associação de identidade do Azure.
- Adicionar um rótulo aadpodidbinding ao pod do Prometheus.
- Implantar um contêiner sidecar para configurar a gravação remota.
As tarefas são descritas nas seções a seguir.
Registrar uma identidade gerenciada com o Microsoft Entra ID
Crie uma identidade gerenciada atribuída pelo usuário ou registre uma identidade gerenciada atribuída pelo usuário já existente.
Para mais informações sobre como criar uma identidade gerenciada, leia o tópico Configurar a gravação remota para o serviço gerenciado do Azure Monitor para o Prometheus usando a autenticação de identidade gerenciada.
Atribuir as funções de Operador de Identidade Gerenciada e Colaborador de Máquina Virtual à identidade gerenciada
az role assignment create --role "Managed Identity Operator" --assignee <managed identity clientID> --scope <NodeResourceGroupResourceId>
az role assignment create --role "Virtual Machine Contributor" --assignee <managed identity clientID> --scope <Node ResourceGroup Id>
O grupo de recursos de nó do cluster do AKS inclui recursos necessários para outras etapas deste processo. Esse grupo de recursos tem o nome MC_<AKS-RESOURCE-GROUP>_<AKS-CLUSTER-NAME>_<REGION>
. Você pode encontrar o nome do grupo de recursos através do menu Grupos de recursos no portal do Azure.
Atribuir a função Publicador de Métricas de Monitoramento à identidade gerenciada
az role assignment create --role "Monitoring Metrics Publisher" --assignee <managed identity clientID> --scope <NodeResourceGroupResourceId>
Criar uma associação de identidade do Azure
A identidade gerenciada atribuída pelo usuário necessita de uma associação de identidade para ser utilizada como uma identidade gerenciada pelo pod.
Copie o YAML a seguir para o arquivo aadpodidentitybinding.yaml:
apiVersion: "aadpodidentity.k8s.io/v1"
kind: AzureIdentityBinding
metadata:
name: demo1-azure-identity-binding
spec:
AzureIdentity: “<AzureIdentityName>”
Selector: “<AzureIdentityBindingSelector>”
Execute o comando a seguir:
kubectl create -f aadpodidentitybinding.yaml
Adicionar o rótulo aadpodidbinding ao pod do Prometheus
O rótulo aadpodidbinding
deve ser adicionado ao pod do Prometheus para que a identidade gerenciada pelo pod entre em vigor. Você pode adicionar o rótulo atualizando o arquivo deployment.yaml ou injetando rótulos ao implantar o contêiner sidecar, conforme descrito na próxima seção.
Implantar um contêiner sidecar para configurar a gravação remota
Copie o YAML a seguir e salve-o em um arquivo. O YAML utiliza a porta 8081 como porta de escuta. Se você estiver usando uma porta diferente, modifique esse valor no YAML.
prometheus: prometheusSpec: podMetadata: labels: aadpodidbinding: <AzureIdentityBindingSelector> externalLabels: cluster: <AKS-CLUSTER-NAME> remoteWrite: - url: 'http://localhost:8081/api/v1/write' 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>
Substitua os valores a seguir no YAML:
Valor Descrição <AKS-CLUSTER-NAME>
O nome do cluster do AKS. <CONTAINER-IMAGE-VERSION>
mcr.microsoft.com/azuremonitor/containerinsights/ciprod/prometheus-remote-write/images:prom-remotewrite-20240617.1
Essa é a versão da imagem de contêiner de gravação remota.<INGESTION-URL>
O valor do Ponto de extremidade de ingestão de métricas na página de Visão geral do workspace do Azure Monitor. <MANAGED-IDENTITY-CLIENT-ID>
O valor da ID do cliente na página de Visão geral da identidade gerenciada. <CLUSTER-NAME>
O nome do cluster onde o Prometheus está em execução. Importante
Para a nuvem do Azure Governamental, adicione as seguintes variáveis de ambiente na seção
env
do arquivo YAML:- name: INGESTION_AAD_AUDIENCE value: https://monitor.azure.us/
Use o Helm para aplicar o arquivo YAML e atualizar a configuração do Prometheus:
# set the 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ção e solução de problemas
Para obter informações sobre verificação e solução de problemas, veja Solução de problemas de gravação remota e Serviço gerenciado do Azure Monitor para gravação remota do Prometheus.
Próximas etapas
- Colete métricas do Prometheus a partir do cluster do AKS
- Saiba mais sobre o serviço gerenciado do Azure Monitor para Prometheus
- Gravação remota no serviço gerenciado do Azure Monitor para Prometheus
- Enviar dados do Prometheus para o Azure Monitor usando a autenticação de Microsoft Entra
- Enviar dados do Prometheus para o Azure Monitor usando a autenticação de identidade gerenciada
- Enviar dados do Prometheus para o Azure Monitor usando a autenticação da ID de carga de trabalho do Microsoft Entra (em versão prévia)