Enviar dados do Prometheus para o Azure Monitor usando a autenticação de identidade gerenciada
Este artigo explica como configurar a gravação remota para enviar dados de um servidor autogerenciado do Prometheus em execução no seu cluster do Serviço de Kubernetes do Azure (AKS) ou no cluster do Kubernetes habilitado para o Azure Arc usando a autenticação de identidade gerenciada e um contêiner de carro lateral fornecido pelo Azure Monitor. Você pode optar por usar uma identidade já existente criada pelo AKS ou criar a sua própria. As duas opções são descritas aqui.
Observação
Se você estiver usando a identidade gerenciada atribuída pelo usuário, recomendamos que você configure diretamente o Prometheus em execução no seu cluster do Kubernetes para gravação remota no Workspace do Azure Monitor. Consulte Enviar dados do Prometheus para o Azure Monitor usando a identidade gerenciada atribuída pelo usuário para saber mais. As etapas abaixo usam o contêiner sidecar do Azure Monitor.
Configurações de cluster
Este artigo se aplica às seguintes configurações de cluster:
- Cluster do Serviço de Kubernetes do Azure
- Cluster do Kubernetes habilitado para Azure Arc
Observação
Para informações sobre a configuração da gravação remota em um cluster do Kubernetes em execução em outra nuvem ou localmente, confira Enviar dados do Prometheus para o Azure Monitor usando a autenticação 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
Permissões de administrador do cluster ou recurso são necessárias para realizar as etapas neste artigo.
Configurar um aplicativo para identidade gerenciada
O processo de configuração da gravação remota do Prometheus para um aplicado usando a autenticação de identidade gerenciada inclui as seguintes etapas:
- Obter o nome do grupo de recursos do nó do AKS.
- Obter a ID do cliente da identidade gerenciada atribuída pelo usuário.
- Atribuir à identidade gerenciada a função de Publicador de Métricas de Monitoramento na regra de coleta de dados do workspace.
- Conceder ao cluster do AKS acesso à identidade gerenciada.
- Implantar um contêiner sidecar para configurar a gravação remota.
As tarefas são descritas nas seções a seguir.
Obter o nome do grupo de recursos do nó AKS
O grupo de recursos de nó do cluster do AKS contém recursos utilizados em 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.
Obter a ID do cliente da identidade gerenciada atribuída pelo usuário
Você precisa obter a ID do cliente da identidade que pretende usar. Copie essa ID para utilizá-la posteriormente no processo.
Ao invés de cria sua própria ID do cliente, você pode optar por uma das identidades criadas pelo AKS. Para saber mais sobre as identidades, confira Usar identidade gerenciada no Serviço de Kubernetes do Azure.
Este artigo usa a identidade do kubelet. O nome dessa identidade é <AKS-CLUSTER-NAME>-agentpool
e está localizada no grupo de recursos de nós do cluster do AKS.
Selecione a identidade gerenciada <AKS-CLUSTER-NAME>-agentpool
. Na página de Visão geral, copie o valor da ID do cliente. Para obter mais informações, consulte Gerenciar identidades gerenciadas atribuídas pelo usuário.
Atribuir à identidade gerenciada a função de Publicador de Métricas de Monitoramento na regra de coleta de dados do workspace
A identidade gerenciada precisar ter a função Publicador de Métricas de Monitoramento na regra de coleta de dados que está associada ao workspace do Azure Monitor.
No menu de recursos do seu workspace do Azure Monitor, selecione Visão geral. Para a Regra de coleta de dados, selecione o link.
No menu de recursos da regra de coleta de dados, selecione Controle de acesso (IAM).
Selecione Adicionar e selecione Adicionar atribuição de função.
Escolha a função Publicador de Métricas de Monitoramento e, em seguida, selecione Próximo.
Selecione Identidade gerenciada e escolha Selecionar membros. Selecione a assinatura que contém a identidade atribuída pelo usuário e, em seguida, selecione Identidade gerenciada atribuída pelo usuário. Escolha a identidade gerenciada que deseja usar e clique em Selecionar.
Para finalizar a atribuição de função, clique em Revisar + atribuir.
Conceder ao cluster do AKS acesso à identidade gerenciada
Este passo não é necessário se você estiver usando uma identidade do AKS. Uma identidade do AKS possui tem acesso ao cluster.
Importante
Para realizar os passos desta seção, você deve ter permissões de propriedade ou de administração de acesso de usuários no cluster.
Identifique os conjuntos de dimensionamento de máquinas virtuais no grupo de recursos do nó do cluster do AKS.
Para cada conjunto de dimensionamento de máquinas virtuais, execute o comando a seguir na CLI do Azure:
az vmss identity assign -g <AKS-NODE-RESOURCE-GROUP> -n <AKS-VMSS-NAME> --identities <USER-ASSIGNED-IDENTITY-RESOURCE-ID>
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-a no 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>
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/
Abra o Azure Cloud Shell e carregue um arquivo YAML.
Use o Helm para aplicar o arquivo YAML e atualizar a configuração do 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>
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 da ID de carga de trabalho do Microsoft Entra (em versão prévia)
- Enviar dados do Prometheus para o Azure Monitor usando a autenticação a identidade gerenciada pelo pod do Microsoft Entra (em versão prévia)