Compartilhar via


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:

  1. Registrar uma identidade gerenciada atribuída pelo usuário com o Microsoft Entra ID.
  2. Atribuir as funções de Operador de Identidade Gerida e Colaborador de Máquina Virtual à identidade gerida.
  3. Atribuir a função de Publicador de Métricas de Monitoramento à identidade gerenciada atribuída pelo usuário.
  4. Criar uma associação de identidade do Azure.
  5. Adicionar um rótulo aadpodidbinding ao pod do Prometheus.
  6. 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

  1. 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>         
    
  2. 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/

  3. 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