Tutorial: conectar-se a um serviço do Prometheus auto-hospedado em um cluster do 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 alertas de software livre, em um cluster do AKS (Serviço de Kubernetes do Azure). Em seguida, você usa o ponto de extremidade privado gerenciado do Espaço Gerenciado do Azure para Grafana para se conectar a este servidor do Prometheus e exibir os dados do Prometheus em um painel do Grafana.

Neste tutorial, você aprenderá a:

  • Criar um cluster do Serviço de Kubernetes do Azure
  • Instalar o Prometheus
  • Adicionar um serviço de link privado ao servidor do Prometheus
  • Conectar-se ao ponto de extremidade privado gerenciado
  • Exibir dados do Prometheus em um painel do Grafana

Pré-requisitos

Antes de começar, certifique-se de que você tenha o seguinte:

Criar um cluster do Serviço de Kubernetes do Azure

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

    az login
    

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

  2. Instalar ou atualizar o kubectl.

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

    RESOURCE_GROUP=myResourceGroup 
    AKS_NAME=myaks
    
  4. Crie um grupos 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 cluster do AKS usando o comando az aks create. Aqui, criamos um cluster de três nós usando o tipo de máquina virtual com capacidade de intermitência da série B, que é econômico e adequado para cargas de trabalho de teste/desenvolvimento pequenas 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 demorar 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 o cluster do Kubernetes com o kubectl.

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

    kubectl get nodes
    

Instalar o Prometheus

Uma forma comum de instalar o Prometheus é por meio do prometheus-operator, que fornece implantação e gerenciamento nativos do Kubernetes do Prometheus e os componentes de monitoramento relacionados. Neste tutorial, usamos gráficos do Helm kube-prometheus-stack para implantar o prometheus-operator.

  1. Adicione o repositório helm-charts e 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 do 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 comando a seguir.

    kubectl --namespace monitoring get pods
    
  4. Verifique se todos os pods estão "em execução" antes de continuar. Se eles não chegarem ao estado em execução, algo improvável, pode ser interessante solucionar os problemas.

O serviço de Link Privado do Azure permite o consumo do serviço do Kubernetes por meio de um 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 comando a seguir para adicionar o serviço de link privado ao servidor do 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 do AKS. Esse processo leva alguns minutos.

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

Conectar-se a um ponto de extremidade privado gerenciado

  1. Se você ainda não tem um workspace do Espaço Gerenciado do Azure para Grafana, crie um seguindo o início rápido do Espaço Gerenciado do Azure para Grafana.

  2. Abra o workspace do Espaço Gerenciado do Azure para Grafana e acesse Redes>Gerenciar Pontos de Extremidade Privados>Criar.

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

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

  4. Em Tipo de recurso, selecione Microsoft.Network/privateLinkServices (serviços de link privado) e, em Recurso de destino, selecione o serviço de link privado promManagedPls criado na etapa acima. Cada ponto de extremidade privado gerenciado obtém 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 Espaço Gerenciado do Azure para Grafana garante que esse domínio seja resolvido no IP privado do ponto de extremidade privado gerenciado dentro do ambiente do Espaço Gerenciado do Azure para 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 do ponto de extremidade privado acessando o recurso promManagedPls. Em Configurações, acesse Conexões de ponto de extremidade privado, marque sua conexão na caixa de seleção e escolha Aprovar.

    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 o recurso Espaço Gerenciado do Azure para Grafana e selecione o botão Atualizar na guia Ponto de Extremidade Privado Gerenciado para sincronizar o Connection state. Agora ele deverá ser exibido 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 do Prometheus ao Grafana por meio do portal do Grafana. Para obter mais informações, acesse Adicionar uma fonte de dados. Nossa URL do Prometheus é http://prom-service.prom.my-own-domain.com:9090.

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

  2. Para usar sua fonte de dados do Prometheus auto-hospedada, tente usar o painel Completo do Exportador de Nós, ID 1860. Para ver mais diretrizes, acesse Importar um painel do Grafana Labs.

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

Próxima etapa

Saiba como Usar contas de serviço.