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:
- Uma conta do Azure
- O CLI do Azure.
- kubectl
- Helm
Criar um cluster do Serviço de Kubernetes do Azure
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>
.Instalar ou atualizar o kubectl.
az aks install-cli
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
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
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.
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.
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.
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
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
O comando helm solicita que você verifique o status dos pods implantados. Execute o comando a seguir.
kubectl --namespace monitoring get pods
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.
Adicionar um serviço de link privado ao servidor do Prometheus
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
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
O serviço de link privado com nome
promManagedPls
é criado no grupo de recursos gerenciados do AKS. Esse processo leva alguns minutos.
Conectar-se a um ponto de extremidade privado gerenciado
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.
Abra o workspace do Espaço Gerenciado do Azure para Grafana e acesse Redes>Gerenciar Ponto de Extremidade Privado>Adicionar.
Insira um nome para o ponto de extremidade privado gerenciado e selecione sua assinatura do Azure.
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
.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.
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.
Exibir dados do Prometheus em um painel do Grafana
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
.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.
Próxima etapa
Saiba como Usar contas de serviço.