Skip to main content

Monitore um Cluster Kubernetes com Prometheus e Grafana

Este tutorial fornece um passo a passo detalhado para configurar o monitoramento de um cluster Kubernetes usando Prometheus e Grafana. O objetivo é fornecer uma visão clara sobre como coletar métricas, visualizá-las e criar dashboards personalizados.

Pré-requisitos

Antes de começar, certifique-se de que:

  1. Você tem acesso a um Cluster Kubernetes funcional.
  2. A ferramenta kubectl está instalada e configurada no seu ambiente local.
  3. Você tem permissões administrativas no Cluster para instalar e configurar componentes.
  4. O Helm (gerenciador de pacotes do Kubernetes) está instalado. Caso contrário, siga as instruções em Helm Docs.

Passo 1: Instalação do Prometheus

O Prometheus é responsável por coletar métricas do cluster Kubernetes. Vamos usar o Helm para instalar o Prometheus.

Adicione o repositório Helm do Prometheus:

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update

Crie um Namespace para o Prometheus:

kubectl create namespace monitoring

Execute o seguinte comando para instalar o Prometheus no Namespace monitoring:

helm install prometheus prometheus-community/prometheus \
--namespace monitoring \
--set server.service.type=LoadBalancer \
--set server.persistentVolume.enabled=true \
--set server.persistentVolume.size=10Gi

Explicação dos parâmetros:

  • server.service.type=LoadBalancer: Expõe o serviço do Prometheus externamente.
  • server.persistentVolume.enabled=true: Habilita armazenamento persistente para os dados do Prometheus.
  • server.persistentVolume.size=10Gi: Define o tamanho do volume persistente.

Verifique se os Pods do Prometheus estão rodando:

kubectl get pods -n monitoring

NAME READY STATUS RESTARTS AGE
prometheus-server-xxxxxxxxxx-xxxxx 2/2 Running 0 2m
prometheus-kube-state-metrics-xxxxxxxxxx-xxxxx 1/1 Running 0 2m
prometheus-alertmanager-xxxxxxxxxx-xxxxx 2/2 Running 0 2m

Passo 2: Instalação do Grafana

O Grafana será usado para visualizar as métricas coletadas pelo Prometheus.

Adicione o repositório do Grafana:

helm repo add grafana https://grafana.github.io/helm-charts
helm repo update

Execute o seguinte comando para instalar o Grafana no Namespace monitoring:

helm install grafana grafana/grafana \
--namespace monitoring \
--set service.type=LoadBalancer \
--set persistence.enabled=true \
--set persistence.size=5Gi \
--set adminPassword=admin

Explicação dos parâmetros:

  • service.type=LoadBalancer: Expõe o serviço do Grafana externamente.
  • persistence.enabled=true: Habilita armazenamento persistente para os dados do Grafana.
  • persistence.size=5Gi: Define o tamanho do volume persistente.
  • adminPassword=admin: Define a senha do usuário como admin.

Verifique se os Pods do Grafana estão rodando:

kubectl get pods -n monitoring

NAME READY STATUS RESTARTS AGE
grafana-xxxxxxxxxx-xxxxx 1/1 Running 0 2m

Passo 3: Configurar o Prometheus como Fonte de Dados no Grafana

Para visualizar as métricas do Prometheus no Grafana, precisamos configurar o Prometheus como a fonte de dados.

Obtenha o endereço externo do serviço do Prometheus:

kubectl get svc prometheus-service -n monitoring

prometheus-server LoadBalancer 10.0.0.1 <EXTERNAL_IP> 80:30000/TCP 5m

Anote o endereço do campo <EXTERNAL_IP>.

Obtenha o endereço externo do serviço do Grafana:

kubectl get svc grafana -n monitoring

grafana LoadBalancer 10.0.0.2 <EXTERNAL_IP> 80:31000/TCP 5m

Acesse o Grafana no navegador usando o <EXTERNAL_IP>.

Faça login com as credenciais:

  • Usuário: admin
  • Senha: admin (ou a senha definida durante a instalação)

Adicione o Prometheus como a fonte de dados:

  1. No painel do Grafana, clique em "Configuration" (ícone de engrenagem) no menu lateral esquerdo.
  2. Clique em "Data Sources".
  3. Clique em "Add data source".
  4. Selecione "Prometheus".
  5. Na URL, insira o endereço do Prometheus (http://<EXTERNAL_IP_PROMETHEUS>:80).
  6. Clique em "Save & Test".

Se tudo estiver correto, você verá a mensagem "Data source is working".

Passo 4: Importar Dashboards no Grafana

O Grafana possui dashboards pré-configurados para Kubernetes. Vamos importar alguns deles.

Import o Dashboard "Kubernetes Cluster Monitoring":

  1. No painel do Grafana, clique em Create (ícone de "+" no menu lateral esquerdo).
  2. Clique em Import.
  3. Insira o ID do dashboard: 315.
  4. Clique em Load.
  5. Selecione o Prometheus como fonte de dados.
  6. Clique em Import.

O dashboard será carregado e exibirá métricas do cluster Kubernetes.

Crie dashboards personalizados no Grafana:

  1. No painel do Grafana, clique em Create (ícone de "+" no menu lateral esquerdo).
  2. Clique em Dashboard.
  3. Adicione novos painéis e configure consultas PromQL para exibir as métricas desejadas.

Passo 5: Explorar Métricas e Customizar Dashboards

Agora que o Prometheus está coletando métricas e o Grafana está visualizando-as, você pode explorar os dados disponíveis e criar dashboards personalizados conforme necessário.

Acesse o Prometheus no navegador usando o <EXTERNAL_IP_PROMETHEUS>:

http://<EXTERNAL_IP_PROMETHEUS>

Na interface do Prometheus, você pode executar consultas PromQL para explorar as métricas coletadas.

Conclusão

Com este tutorial, você configurou com sucesso o monitoramento de um cluster Kubernetes usando Prometheus e Grafana. Agora você pode:

  • Coletar métricas do cluster Kubernetes.
  • Visualizar essas métricas em dashboards interativos no Grafana.
  • Criar dashboards personalizados para atender às suas necessidades específicas.

Se precisar de mais ajuda ou quiser explorar recursos avançados, consulte a documentação oficial do Prometheus e do Grafana.