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
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>
.Instale ou atualize o kubectl.
az aks install-cli
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
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
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.
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.
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.
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
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
O comando helm solicita que você verifique o status dos pods implantados. Execute o seguinte comando.
kubectl --namespace monitoring get pods
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.
Adicionar um serviço de link privado ao servidor Prometheus
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
Execute o seguinte comando para adicionar o serviço de link privado ao servidor Prometheus.
kubectl --namespace monitoring apply -f pls-prometheus-svc.yaml
O serviço de link privado com nome
promManagedPls
é criado no grupo de recursos gerenciados pelo AKS. Este processo demora alguns minutos.
Conecte-se com um ponto de extremidade privado gerenciado
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.
Abra seu espaço de trabalho do Azure Managed Grafana e vá para Networking>Managed Private Endpoint>Add.
Insira um nome para seu ponto de extremidade privado gerenciado e selecione sua assinatura do Azure.
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
.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.
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.
Exibir dados do Prometheus em um painel do Grafana
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
.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.
Próximo passo
Saiba como usar contas de serviço.