Dashboards do Grafana para Monitoramento de Infraestrutura
Monitorar a saude e o desempenho da sua infraestrutura e essencial para manter a disponibilidade dos servicos. O Grafana combinado com Prometheus oferece uma solucao poderosa e open-source para criar dashboards de monitoramento em tempo real. Este guia mostra como construir dashboards eficientes para servidores e infraestrutura.
Instalacao e Configuracao Inicial
O metodo mais rapido para implantar o Grafana e usando Docker. Execute o container com armazenamento persistente para manter suas configuracoes:
# Criar volume para persistencia
docker volume create grafana-storage
# Iniciar Grafana com volume persistente
docker run -d \
--name=grafana \
-p 3000:3000 \
-v grafana-storage:/var/lib/grafana \
grafana/grafana-oss:latest
# Verificar se o container esta rodando
docker ps | grep grafana
Apos a instalacao, acesse http://localhost:3000 e faca login com as credenciais padrao (admin/admin). O proximo passo e adicionar o Prometheus como fonte de dados em Configuration > Data Sources. Certifique-se de que o node_exporter esta instalado nos servidores que deseja monitorar para coletar metricas de hardware e sistema operacional.
Construindo Paineis com PromQL
PromQL e a linguagem de consulta do Prometheus que alimenta os paineis do Grafana. Aqui estao consultas essenciais para monitoramento de infraestrutura:
# Uso de CPU (percentual)
100 - (avg by(instance)(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
# Uso de memoria (percentual)
(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100
# Uso de disco (percentual)
(1 - (node_filesystem_avail_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"})) * 100
# Trafego de rede recebido (bytes/s)
rate(node_network_receive_bytes_total{device="eth0"}[5m])
Adicione cada consulta a um painel separado no dashboard. Use o tipo Time series para metricas ao longo do tempo, Gauge para valores instantaneos como uso de disco, e Stat para indicadores resumidos. Configure thresholds de cores (verde, amarelo, vermelho) para identificar rapidamente o estado de cada metrica.
Variaveis de Template e Dashboards Dinamicos
Variaveis de template tornam seus dashboards reutilizaveis em toda a infraestrutura. Em vez de criar um dashboard por servidor, crie um unico dashboard com variaveis que permitem filtrar dinamicamente:
# Variavel para listar instancias
label_values(up{job="node"}, instance)
# Variavel para listar jobs
label_values(up, job)
# Usar variavel na consulta
node_memory_MemTotal_bytes{instance="$instance"}
Configure a variavel com Multi-value habilitado para permitir a selecao de multiplos servidores simultaneamente. Adicione tambem uma variavel de intervalo ($__interval) para ajustar automaticamente a granularidade das consultas com base no periodo de tempo selecionado no dashboard.
Configurando Alertas e Notificacoes
O Grafana Alerting permite definir regras de alerta diretamente nos paineis. Configure pontos de contato para receber notificacoes quando as metricas ultrapassarem limites criticos:
# Exemplo de regra de alerta (via provisioning)
groups:
- name: infra-alerts
rules:
- alert: HighCPUUsage
expr: 100 - (avg by(instance)(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 85
for: 5m
labels:
severity: warning
annotations:
summary: "CPU alta em {{ $labels.instance }}"
Crie politicas de notificacao para rotear alertas com base na severidade. Alertas criticos podem ir para PagerDuty, enquanto avisos vao para um canal do Slack. Use silences para suprimir alertas durante janelas de manutencao programadas e mute timings para horarios fora do expediente.
Resumo
Grafana com Prometheus oferece uma plataforma completa de observabilidade para infraestrutura. Com dashboards bem projetados, variaveis de template e alertas configurados, voce pode monitorar centenas de servidores de forma eficiente e reagir rapidamente a problemas de desempenho antes que afetem os usuarios finais.