Monitoramento de 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:
- Você tem acesso a um cluster Kubernetes funcional.
- A ferramenta
kubectl
está instalada e configurada no seu ambiente local. - Você tem permissões administrativas no cluster para instalar e configurar componentes.
- 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.
1.1. Adicionar o repositório do Prometheus
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
1.2. Criar um namespace para o Prometheus
kubectl create namespace monitoring
1.3. Instalar o Prometheus
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.
1.4. Verificar a instalação
Verifique se os pods do Prometheus estão rodando:
kubectl get pods -n monitoring
Você deve ver algo como:
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.
2.1. Adicionar o repositório do Grafana
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
2.2. Instalar o Grafana
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árioadmin
.
2.3. Verificar a instalação
Verifique se os pods do Grafana estão rodando:
kubectl get pods -n monitoring
Você deve ver algo como:
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 fonte de dados.
3.1. Obter o endereço do Prometheus
Obtenha o endereço externo do serviço do Prometheus:
kubectl get svc -n monitoring | grep prometheus-server
A saída será algo como:
prometheus-server LoadBalancer 10.0.0.1 <EXTERNAL_IP> 80:30000/TCP 5m
Anote o <EXTERNAL_IP>
ou o endereço do LoadBalancer.
3.2. Acessar o Grafana
Obtenha o endereço externo do serviço do Grafana:
kubectl get svc -n monitoring | grep grafana
A saída será algo como:
grafana LoadBalancer 10.0.0.2 <EXTERNAL_IP> 80:31000/TCP 5m
Acesse o Grafana no navegador usando o <EXTERNAL_IP>
na porta 80 (ou a porta exposta). Por exemplo:
http://<EXTERNAL_IP>
Faça login com as credenciais:
- Usuário:
admin
- Senha:
admin
(ou a senha definida durante a instalação)
3.3. Adicionar o Prometheus como fonte de dados
- No painel do Grafana, clique em Configuration (ícone de engrenagem) no menu lateral esquerdo.
- Clique em Data Sources.
- Clique em Add data source.
- Selecione Prometheus.
- Na URL, insira o endereço do Prometheus (
http://<EXTERNAL_IP_PROMETHEUS>:80
). - 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.
4.1. Importar o Dashboard "Kubernetes Cluster Monitoring"
- No painel do Grafana, clique em Create (ícone de "+" no menu lateral esquerdo).
- Clique em Import.
- Insira o ID do dashboard:
315
. - Clique em Load.
- Selecione o Prometheus como fonte de dados.
- Clique em Import.
O dashboard será carregado e exibirá métricas do cluster Kubernetes.
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.
5.1. Explorar métricas no Prometheus
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.
5.2. Criar dashboards personalizados no Grafana
- No painel do Grafana, clique em Create (ícone de "+" no menu lateral esquerdo).
- Clique em Dashboard.
- Adicione novos painéis e configure consultas PromQL para exibir as métricas desejadas.
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.