Enviar dados do Prometheus para o Azure Monitor usando a autenticação de identidade gerenciada por pod (visualização) do Microsoft Entra
Atenção
Este artigo foi retirado.
A imagem do sidecar 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 descreve como configurar a escrita remota para o serviço gerenciado do Azure Monitor para Prometheus usando a autenticação de identidade gerenciada por pod (visualização) do Microsoft Entra.
Nota
O contêiner de sidecar de gravação remota descrito neste artigo deve ser configurado somente usando as etapas a seguir e somente se o cluster do Serviço Kubernetes do Azure (AKS) já tiver um pod do Microsoft Entra habilitado. As identidades gerenciadas por pod do Microsoft Entra foram preteridas para serem substituídas pela ID de carga de trabalho do Microsoft Entra. Recomendamos que você use a autenticação de ID de carga de trabalho do Microsoft Entra.
Pré-requisitos
Versões suportadas
São necessárias versões do Prometheus superiores à v2.45 para a autenticação de identidade gerida.
Espaço de trabalho do Azure Monitor
Este artigo aborda o envio de métricas do Prometheus para um espaço de trabalho do Azure Monitor. Para criar um espaço de trabalho de monitor do Azure, consulte Gerenciar um espaço de trabalho do Azure Monitor.
Permissões
As permissões de administrador para o cluster ou recurso são necessárias para concluir as etapas neste artigo.
Configurar um aplicativo para a identidade gerenciada pelo pod do Microsoft Entra
O processo para configurar a gravação remota do Prometheus para um aplicativo usando a autenticação de identidade gerenciada por pod do Microsoft Entra envolve a conclusão das seguintes tarefas:
- Registre uma identidade gerenciada atribuída pelo usuário com o Microsoft Entra ID.
- Atribua as funções de Operador de Identidade Gerenciada e Colaborador de Máquina Virtual à identidade gerenciada.
- Atribua a função Publicador de Métricas de Monitoramento à identidade gerenciada atribuída pelo usuário.
- Crie uma associação de identidade do Azure.
- Adicione o rótulo de aadpodidbinding à cápsula de Prometheus.
- Implante 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 existente.
Para obter informações sobre como criar uma identidade gerenciada, consulte Configurar a gravação remota para o serviço gerenciado do Azure Monitor para Prometheus usando a autenticação de identidade gerenciada.
Atribua 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 AKS contém recursos que você usa em outras etapas desse processo. Este grupo de recursos tem o nome MC_<AKS-RESOURCE-GROUP>_<AKS-CLUSTER-NAME>_<REGION>
. Você pode encontrar o nome do grupo de recursos usando o menu Grupos de recursos no portal do Azure.
Atribua a função de Editor 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 requer uma associação de identidade para que a identidade seja usada como uma identidade gerenciada por pod.
Copie o seguinte YAML 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 seguinte comando:
kubectl create -f aadpodidentitybinding.yaml
Adicionar o rótulo de aadpodidbinding à cápsula de Prometheus
O aadpodidbinding
rótulo deve ser adicionado ao pod 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 do sidecar, conforme descrito na próxima seção.
Implantar um contêiner sidecar para configurar a gravação remota
Copie o seguinte YAML e salve-o em um arquivo. O YAML usa a porta 8081 como porta de escuta. Se você usar 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 seguintes valores no YAML:
valor Description <AKS-CLUSTER-NAME>
O nome do seu cluster AKS. <CONTAINER-IMAGE-VERSION>
mcr.microsoft.com/azuremonitor/containerinsights/ciprod/prometheus-remote-write/images:prom-remotewrite-20240617.1
A versão da imagem do contêiner de gravação remota.<INGESTION-URL>
O valor do ponto de extremidade de ingestão de métricas na página Visão geral do espaço de trabalho do Azure Monitor. <MANAGED-IDENTITY-CLIENT-ID>
O valor para ID do Cliente na página Visão geral da identidade gerenciada. <CLUSTER-NAME>
Nome do cluster em que o Prometheus está sendo executado. Importante
Para a nuvem do Azure Government, adicione as
env
seguintes variáveis de ambiente na seção do arquivo YAML:- name: INGESTION_AAD_AUDIENCE value: https://monitor.azure.us/
Use o Helm para aplicar o arquivo YAML e atualizar sua 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 resolução de problemas
Para obter informações sobre verificação e solução de problemas, consulte Solução de problemas de gravação remota e Serviço gerenciado do Azure Monitor para gravação remota Prometheus.
Próximos passos
- Recolher métricas do Prometheus a partir de um cluster do AKS
- Saiba mais sobre o serviço gerenciado do Azure Monitor para Prometheus
- Escrita remota no serviço gerenciado do Azure Monitor para Prometheus
- Enviar dados do Prometheus para o Azure Monitor usando a autenticação do 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 Microsoft Entra Workload ID (visualização)