Tutorial: conectar-se a um serviço Prometheus auto-hospedado em um cluster AKS usando um ponto de extremidade privado gerenciado

Este guia orienta você pelas etapas de instalação do Prometheus, um kit de ferramentas de monitoramento e alerta de código aberto, em um cluster do Serviço Kubernetes do Azure (AKS). Em seguida, você usa o ponto de extremidade privado gerenciado do Azure Managed Grafana para se conectar a esse servidor Prometheus e exibir os dados do Prometheus em um painel do Grafana.

Neste tutorial, irá aprender a:

  • Criar um cluster de serviço do Kubernetes do Azure
  • Instalar o Prometheus
  • Adicionar um serviço de link privado ao servidor Prometheus
  • Conecte-se com o endpoint privado gerenciado
  • Exibir dados do Prometheus em um painel do Grafana

Pré-requisitos

Antes de começar, certifique-se de que tem o seguinte:

Criar um cluster de serviço do Kubernetes do Azure

  1. Entre na CLI do Azure executando o az login comando.

    az login
    

    Se você tiver várias assinaturas do Azure, selecione sua assinatura do Azure com o comando az account set -s <your-azure-subscription-id>.

  2. Instale ou atualize o kubectl.

    az aks install-cli
    
  3. Crie duas variáveis bash/zsh, que usaremos nos comandos subsequentes. Altere a sintaxe abaixo se estiver usando outro shell.

    RESOURCE_GROUP=myResourceGroup 
    AKS_NAME=myaks
    
  4. Crie um grupo de recursos. Neste exemplo, criamos o grupo de recursos na região do Azure Centro-Oeste dos EUA.

    az group create --name $RESOURCE_GROUP --location westcentralus
    
  5. Crie um novo cluster AKS usando o comando az aks create . Aqui, criamos um cluster de três nós usando o tipo de máquina virtual Burstable da série B, que é econômico e adequado para pequenas cargas de trabalho de teste/desenvolvimento como esta.

    az aks create --resource-group $RESOURCE_GROUP \
      --name $AKS_NAME \
      --node-count 3 \
      --node-vm-size Standard_B2s \
      --generate-ssh-keys
    

    Esta operação pode levar alguns minutos para ser concluída.

  6. Autentique-se no cluster que você criou.

    az aks get-credentials \
      --resource-group $RESOURCE_GROUP \
      --name $AKS_NAME
    

    Agora você pode acessar seu cluster Kubernetes com kubectl.

  7. Use kubectl para ver os nós que você criou.

    kubectl get nodes
    

Instalar o Prometheus

Uma maneira popular de instalar o Prometheus é através do operador prometheus, que fornece implantação nativa do Kubernetes e gerenciamento do Prometheus e componentes de monitoramento relacionados. Neste tutorial, usamos gráficos de leme kube-prometheus-stack para implantar o operador prometheus.

  1. Adicione o repositório de gráficos de leme e, em seguida, atualize sua lista de repositórios.

    helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
    helm repo update
    
  2. Instale o gráfico Helm em um namespace chamado monitoramento. Esse namespace é criado automaticamente.

    helm install prometheus \
      prometheus-community/kube-prometheus-stack \
      --namespace monitoring \
      --create-namespace
    
  3. O comando helm solicita que você verifique o status dos pods implantados. Execute o seguinte comando.

    kubectl --namespace monitoring get pods
    
  4. Certifique-se de que os pods estão todos "em execução" antes de continuar. Se, na circunstância improvável, eles não atingirem o estado de execução, convém solucioná-los.

O serviço de Link Privado do Azure permite o consumo do seu serviço Kubernetes por meio de link privado em diferentes redes virtuais do Azure. O AKS tem uma integração nativa com o Serviço de Link Privado do Azure e ajuda você a anotar um objeto de serviço do Kubernetes para criar um serviço de link privado correspondente no Azure.

Veja abaixo o conteúdo do arquivo pls-prometheus-svc.yaml:

apiVersion: v1
kind: Service
metadata:
  name: prom-pls-svc
  annotations:
    service.beta.kubernetes.io/azure-load-balancer-internal: "true" # Use an internal LB with PLS
    service.beta.kubernetes.io/azure-pls-create: "true"
    service.beta.kubernetes.io/azure-pls-name: promManagedPls
    service.beta.kubernetes.io/azure-pls-proxy-protocol: "false"
    service.beta.kubernetes.io/azure-pls-visibility: "*"
spec:
  type: LoadBalancer
  selector:
    # app: myApp
    app.kubernetes.io/name: prometheus
    prometheus: prometheus-kube-prometheus-prometheus # note that this is related to the release name
  ports:
    - name: http-web
      protocol: TCP
      port: 9090
      targetPort: 9090
  1. Execute o seguinte comando para adicionar o serviço de link privado ao servidor Prometheus.

    kubectl --namespace monitoring apply -f pls-prometheus-svc.yaml
    
  2. O serviço de link privado com nome promManagedPls é criado no grupo de recursos gerenciados pelo AKS. Este processo demora alguns minutos.

    Screenshot of the Azure platform: showing the created Private Link Service resource.

Conecte-se com um ponto de extremidade privado gerenciado

  1. Se você ainda não tiver um espaço de trabalho do Azure Managed Grafana, crie um seguindo o início rápido do Azure Managed Grafana.

  2. Abra seu espaço de trabalho do Azure Managed Grafana e vá para Networking>Managed Private Endpoint>Create.

    Screenshot of the Azure platform showing the managed private endpoints page within an Azure Managed Grafana resource.

  3. Insira um nome para seu ponto de extremidade privado gerenciado e selecione sua assinatura do Azure.

  4. Para Tipo de recurso, selecione Microsoft.Network/privateLinkServices (Serviços de link privado) e, para Recurso de destino, selecione o promManagedPls serviço de link privado criado na etapa acima. Cada ponto de extremidade privado gerenciado recebe um endereço IP privado. Você também pode fornecer um nome de domínio para esse ponto de extremidade privado gerenciado. O serviço Azure Managed Grafana garante que esse domínio seja resolvido para o IP privado do ponto de extremidade gerenciado dentro do ambiente do Azure Managed Grafana. Por exemplo, defina o domínio como *.prom.my-own-domain.com.

    Screenshot of the Azure platform showing Prometheus information entered for the new managed private endpoint.

  5. Aprove a conexão de ponto de extremidade privado indo para o recurso promManagedPls. Em Configurações, vá para Conexões de ponto de extremidade privadas, selecione sua conexão usando a caixa de seleção e Aprove.

    Screenshot of the Azure platform showing the Approve connection action.

  6. Depois que a conexão de ponto de extremidade privado for aprovada, volte para seu recurso Azure Managed Grafana e selecione o botão Atualizar na guia Ponto de extremidade privado gerenciado para sincronizar o Connection state. Agora deve aparecer como Aprovado.

    Screenshot of the Azure platform showing the Refresh button.

Exibir dados do Prometheus em um painel do Grafana

  1. Adicione a fonte de dados Prometheus ao Grafana a partir do seu portal Grafana. Para obter mais informações, vá para Adicionar uma fonte de dados. O nosso URL Prometheus é http://prom-service.prom.my-own-domain.com:9090.

    Screenshot of the Grafana platform showing adding Prometheus as a data source.

  2. Para aproveitar sua fonte de dados Prometheus auto-hospedada, tente usar o painel completo do Exportador de Nós, ID 1860. Para obter mais diretrizes, vá para Importar um painel do Grafana Labs.

    Screenshot of the Azure Grafana platform showing the sample Prometheus dashboard.

Próximo passo

Saiba como usar contas de serviço.