Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O serviço gerenciado do Azure Monitor para Prometheus destina-se a ser um substituto para o Prometheus autogerenciado para que você não precise gerenciar um servidor Prometheus em seus clusters do Kubernetes. No entanto, pode haver cenários em que você deseja continuar a usar o Prometheus autogerenciado em seus clusters do Kubernetes, ao mesmo tempo em que envia dados para o Managed Prometheus para retenção de dados de longo prazo e para criar uma exibição centralizada em seus clusters. Essa pode ser uma solução temporária durante a migração para o Managed Prometheus ou uma solução de longo prazo se você tiver requisitos específicos para o Prometheus autogerenciado.
Architecture
Remote_write é um recurso no Prometheus que permite enviar métricas de uma instância do Prometheus local para o armazenamento remoto ou para outra instância do Prometheus. Use esse recurso para enviar métricas do Prometheus autogerenciado em execução em clusters ou máquinas virtuais do Kubernetes para um workspace do Azure Monitor usado pelo Prometheus Gerenciado.
O diagrama a seguir ilustra essa configuração. Uma regra de coleta de dados (DCR) no Azure Monitor fornece um ponto de extremidade para a instância auto-gerenciada do Prometheus enviar métricas e define o espaço de trabalho do Azure Monitor para onde os dados serão enviados.
Tipos de autenticação
Os requisitos de configuração para gravação remota dependem do tipo de autenticação usado para se conectar ao workspace do Azure Monitor. A tabela a seguir descreve os tipos de autenticação com suporte. Os detalhes de cada configuração são descritos nas seções a seguir.
| Tipo | Clusters com suporte |
|---|---|
| Identidade gerenciada atribuída pelo sistema | SERVIÇO de Kubernetes do Azure (AKS) Azure VM/VMSS |
| Identidade gerenciada atribuída pelo usuário | SERVIÇO de Kubernetes do Azure (AKS) Kubernetes com suporte de Arc Azure VM/VMSS |
| Microsoft Entra ID | SERVIÇO de Kubernetes do Azure (AKS) Cluster do Kubernetes habilitado para Arc Cluster em execução em outra nuvem ou local Azure VM/VMSS Servidores habilitados para Arc VM em execução em outra nuvem ou local |
Observação
Você também pode usar autenticação com a Identidade de Carga de Trabalho do Microsoft Entra ID, mas é necessário utilizar um contêiner sidecar para fornecer uma abstração na ingestão de métricas de gravação remota do Prometheus e auxiliar na autenticação dos pacotes. Confira Enviar dados do Prometheus para o Azure Monitor usando a autenticação da ID de Carga de Trabalho do Microsoft Entra |
Workspace do Azure Monitor
Seu workspace do Azure Monitor deve ser criado antes de configurar a gravação remota. Isso habilita automaticamente o Managed Prometheus. Se você ainda não tiver um, consulte Gerenciar um workspace do Azure Monitor.
Criar identidade para autenticação
Antes de configurar a gravação remota, você deve criar a identidade que usará para autenticar no workspace do Azure Monitor. As seções a seguir descrevem como criar cada tipo de identidade se você não estiver reutilizando uma existente.
Você não cria diretamente uma identidade gerenciada atribuída pelo sistema, mas a habilita para uma máquina virtual do Azure ou um conjunto de dimensionamento de máquinas virtuais. Para uma VM do Azure, você pode habilitar a identidade ao criar a VM ou habilitá-la posteriormente em sua página identidade no portal do Azure. Para um VMSS, você deve habilitá-lo após a criação. Para obter as diferentes opções para habilitar a identidade gerenciada pelo sistema, consulte Configurar identidades gerenciadas em VMs (máquinas virtuais) do Azure e configurar identidades gerenciadas para recursos do Azure em um conjunto de dimensionamento de máquinas virtuais.
Para um cluster AKS, a identidade gerenciada deve ser atribuída aos conjuntos de escalas de máquinas virtuais do cluster. O AKS cria um grupo de recursos que contém os conjuntos de dimensionamento de máquinas virtuais. Acesse esse grupo de recursos na página Propriedades no menu do cluster no portal Azure. Clique em Grupo de Recursos de Infraestrutura para exibir a lista de recursos neste grupo de recursos. Você deve habilitar a identidade gerenciada pelo sistema para cada conjunto de dimensionamento de máquinas virtuais no grupo de recursos.
Atribuir funções
Depois que a identidade que você usará for criada, ela precisará receber acesso à DCR (regra de coleta de dados) associada ao workspace do Azure Monitor que receberá os dados por meio de gravação remota. Esse DCR é criado automaticamente quando você cria o workspace. Você especificará essa identidade na configuração de gravação remota para o cluster ou VM.
No painel de visão geral do workspace do Azure Monitor, selecione o link da regra de coleta de dados. Isso abre a DCR (regra de coleta de dados) associada ao espaço de trabalho.
Na página da regra de coleta de dados, selecione Controle de acesso (IAM). Selecione Adicionar e, em seguida, Adicionar atribuição de função.
Escolha a função Publicador de Métricas de Monitoramento e, em seguida, selecione Próximo.
Selecione a identidade a ser atribuída à função.
- Para a identidade gerenciada atribuída pelo sistema, selecione Identidade gerenciada e selecione membros. Na lista suspensa Identidade gerenciada, selecione a VM/VMSS ou cada VMSS no cluster do AKS.
- Para a identidade gerenciada atribuída pelo usuário, selecione a seção identidade gerenciada atribuída pelo usuário . Selecione a identidade que você criou.
- Para a ID do Entra, selecione Usuário, grupo ou entidade de serviço e selecione membros. Selecione o aplicativo que você criou e escolha Selecionar.
Selecione Selecionar para confirmar sua seleção e, em seguida, Examinar + atribuir para concluir a atribuição de função.
Configurar gravação remota no arquivo de configuração
A etapa final é adicionar gravação remota ao arquivo de configuração para seu servidor Prometheus autogerenciado. Além dos detalhes da identidade que você criou, você também precisará do ponto de extremidade de ingestão de métricas para o workspace do Azure Monitor. Obtenha esse valor na página Visão geral do workspace do Azure Monitor no portal do Azure.
A remote-write seção do arquivo de configuração prometheus será semelhante ao exemplo a seguir, dependendo do tipo de autenticação que você está usando.
Identidade gerenciada
remote_write:
- url: "<metrics ingestion endpoint for your Azure Monitor workspace>"
azuread:
cloud: 'AzurePublic' # Options are 'AzurePublic', 'AzureChina', or 'AzureGovernment'.
managed_identity:
client_id: "<client-id of the managed identity>"
Entra ID
remote_write:
- url: "<metrics ingestion endpoint for your Azure Monitor workspace>"
azuread:
cloud: 'AzurePublic' # Options are 'AzurePublic', 'AzureChina', or 'AzureGovernment'.
oauth:
client_id: "<client-id from the Entra app>"
client_secret: "<client secret from the Entra app>"
tenant_id: "<Azure subscription tenant Id>"
Aplicar atualizações de arquivo de configuração
Máquina Virtual
Para uma máquina virtual, o arquivo de configuração será promtheus.yml , a menos que você especifique outro usando prometheus --config.file <path-to-config-file> ao iniciar o servidor Prometheus.
cluster do Kubernetes
Para um cluster do Kubernetes, o arquivo de configuração normalmente é armazenado em um ConfigMap. Veja a seguir um exemplo de ConfigMap que inclui uma configuração de gravação remota usando a identidade gerenciada para Prometheus autogerenciado em execução em um cluster do Kubernetes.
GNU nano 6.4
apiVersion: v1
kind: ConfigMap
metadata:
name: prometheus-server-conf # must match what your pod mounts
namespace: monitoring # adjust to your namespace
data:
prometheus.yml: |-
global:
scrape_interval: 15s
evaluation_interval: 15s
external_labels:
cluster: "aks11"
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
remote_write:
- url: "https://aks-amw-0mi2.eastus-1.metrics.ingest.monitor.azure.com/dataCollectionRules/dcr-00000000000000000000000000000000/streams/Microsoft-PrometheusMetrics/api/v1/write?api-version=2023-04-24"
azuread:
cloud: 'AzurePublic'
managed_identity:
client_id: "00001111-aaaa-2222-bbbb-3333cccc4444"
Use o comando a seguir para aplicar as atualizações de arquivo de configuração.
kubectl apply -f <configmap-file-name>.yaml
Reinicie o Prometheus para obter a nova configuração. Se você estiver usando uma implantação, reinicie os pods executando o seguinte comando.
kubectl -n monitoring rollout restart deploy <prometheus-deployment-name>
Notas de lançamento
Para obter notas detalhadas sobre a versão sobre a imagem secundária de gravação remota, consulte as notas de versão de gravação remota.
Troubleshoot
Erro HTTP 403 no log do Prometheus
Leva cerca de 30 minutos para que a atribuição da função entre em vigor. Durante esse tempo, você poderá ver um erro HTTP 403 no log do Prometheus. Verifique se você configurou corretamente a identidade gerenciada ou o aplicativo Microsoft Entra ID com a função Editor de Métricas de Monitoramento na DCR do workspace. Se a configuração estiver correta, aguarde 30 minutos para que a atribuição de função entre em vigor.
Nenhum dado do Kubernetes está sendo coletado
Se os dados não estiverem sendo coletados no Prometheus Gerenciado, execute o comando a seguir para encontrar erros no contêiner de gravação remota.
kubectl --namespace <Namespace> describe pod <Prometheus-Pod-Name>
O contêiner é reiniciado repetidamente
É provável que um contêiner seja reiniciado regularmente devido à configuração incorreta do contêiner. Execute o comando a seguir para exibir os valores de configuração definidos para o contêiner. Verifique os valores de configuração, especialmente AZURE_CLIENT_ID e IDENTITY_TYPE.
kubectl get pod <Prometheus-Pod-Name> -o json | jq -c '.spec.containers[] | select( .name | contains("<Azure-Monitor-Side-Car-Container-Name>"))'
A saída desse comando tem o seguinte formato:
{"env":[{"name":"INGESTION_URL","value":"https://my-azure-monitor-workspace.eastus2-1.metrics.ingest.monitor.azure.com/dataCollectionRules/dcr-00000000000000000/streams/Microsoft-PrometheusMetrics/api/v1/write?api-version=2021-11-01-preview"},{"name":"LISTENING_PORT","value":"8081"},{"name":"IDENTITY_TYPE","value":"userAssigned"},{"name":"AZURE_CLIENT_ID","value":"00000000-0000-0000-0000-00000000000"}],"image":"mcr.microsoft.com/azuremonitor/prometheus/promdev/prom-remotewrite:prom-remotewrite-20221012.2","imagePullPolicy":"Always","name":"prom-remotewrite","ports":[{"containerPort":8081,"name":"rw-port","protocol":"TCP"}],"resources":{},"terminationMessagePath":"/dev/termination-log","terminationMessagePolicy":"File","volumeMounts":[{"mountPath":"/var/run/secrets/kubernetes.io/serviceaccount","name":"kube-api-access-vbr9d","readOnly":true}]}
Perda de dados devido a ambientes de alto volume
A Regra de Coleta de Dados (DCR) e o Ponto de Extremidade de Coleta de Dados (DCE) para o workspace do Azure Monitor estão sujeitos a limites de ingestão listados nos limites de serviço do Azure Monitor. Você está mais sujeito a esses limites ao configurar a gravação remota para vários clusters que enviam dados para o mesmo ponto de extremidade.
Considere o ajuste de gravação remota para ajustar as configurações para melhorar o desempenho. Se ainda houver queda de dados, considere criar DCRs e DCEs adicionais para distribuir a carga de ingestão em vários pontos de extremidade. Essa abordagem ajuda a otimizar o desempenho e garante o manuseio eficiente de dados. Confira as instruções sobre como criar um DCE (ponto de extremidade de coleta de dados) personalizado e uma DCR (regra de coleta de dados) personalizada para um workspace existente do Azure Monitor (AMW), a fim de ingerir métricas do Prometheus.