Instale e Use o Grafana no Ubuntu: Guia Completo
Domine a configuração do Grafana para monitoramento e visualização
Grafana é a plataforma open-source líder para monitoramento e observabilidade, transformando métricas, logs e rastros em insights acionáveis através de visualizações impressionantes.
Esta é uma captura de tela do site do Grafana.
O que é o Grafana?
O Grafana é uma aplicação web de análise e visualização interativa open-source e multiplataforma. Ele fornece gráficos, diagramas e alertas para a web quando conectado a fontes de dados suportadas. O Grafana é amplamente utilizado em DevOps para monitoramento de infraestrutura, aplicações e serviços.
Principais Características:
- Painel Universal: Crie painéis bonitos e dinâmicos com modelagem flexível
- Múltiplas Fontes de Dados: Conecte-se a mais de 150 fontes de dados, incluindo Prometheus, InfluxDB, Elasticsearch, MySQL, PostgreSQL e mais
- Alertas: Sistema de alertas unificado com canais de notificação (Slack, PagerDuty, e-mail, webhooks)
- Colaboração em Equipe: Compartilhe painéis, crie equipes e gerencie permissões de usuários
- Ecossistema de Plugins: Estenda a funcionalidade com painéis, fontes de dados e aplicativos
- Nativo da Nuvem: Perfeito para Kubernetes, Docker e ambientes em nuvem
Por que usar o Grafana no Ubuntu?
As versões LTS do Ubuntu fornecem uma base estável e segura para hospedar o Grafana. Se você está começando do zero ou precisa configurar um novo ambiente Ubuntu para sua infraestrutura de monitoramento, consulte nosso guia abrangente sobre como instalar o Ubuntu 24.04 com ferramentas úteis para preparar seu sistema.
Os benefícios incluem:
- Suporte de longo prazo e atualizações de segurança
- Grande comunidade e documentação extensa
- Suporte nativo ao repositório APT da Grafana Labs
- Excelente compatibilidade com Docker
- Perfeito para ambientes de desenvolvimento e produção
Métodos de Instalação
Método 1: Instalação via Repositório APT (Recomendado)
Este é o método mais direto, fornecendo atualizações automáticas através do gerenciador de pacotes do Ubuntu. Se você é novo no terminal do Ubuntu ou deseja aumentar sua produtividade, nosso cheatsheet de atalhos de teclado do Ubuntu pode ajudar você a navegar no sistema de forma mais eficiente.
Passo 1: Instalar Pré-requisitos
sudo apt-get install -y apt-transport-https software-properties-common wget
Passo 2: Adicionar a Chave GPG do Grafana
sudo mkdir -p /etc/apt/keyrings/
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
Passo 3: Adicionar o Repositório APT do Grafana
Para versões estáveis:
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
Passo 4: Atualizar e Instalar o Grafana
sudo apt-get update
sudo apt-get install grafana
Passo 5: Iniciar e Habilitar o Serviço do Grafana
sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl enable grafana-server.service
Passo 6: Verificar a Instalação
sudo systemctl status grafana-server
O Grafana agora estará em execução em http://localhost:3000
Método 2: Instalação Usando Docker
O Docker fornece isolamento e gerenciamento mais fácil para implantações containerizadas.
Passo 1: Instalar o Docker (se ainda não estiver instalado)
sudo apt-get update
sudo apt-get install docker.io
sudo systemctl start docker
sudo systemctl enable docker
Passo 2: Executar o Container do Grafana
docker run -d \
--name=grafana \
-p 3000:3000 \
-v grafana-storage:/var/lib/grafana \
grafana/grafana-oss
Para Persistência com Configuração:
docker run -d \
--name=grafana \
-p 3000:3000 \
-v grafana-storage:/var/lib/grafana \
-v $(pwd)/grafana.ini:/etc/grafana/grafana.ini \
-e "GF_SERVER_ROOT_URL=http://your-domain.com" \
-e "GF_SECURITY_ADMIN_PASSWORD=your-secure-password" \
grafana/grafana-oss
Método 3: Instalação Usando Docker Compose
Crie um arquivo docker-compose.yml:
version: '3.8'
services:
grafana:
image: grafana/grafana-oss:latest
container_name: grafana
restart: unless-stopped
ports:
- '3000:3000'
volumes:
- grafana-storage:/var/lib/grafana
- ./grafana/provisioning:/etc/grafana/provisioning
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=your-secure-password
- GF_USERS_ALLOW_SIGN_UP=false
- GF_SERVER_ROOT_URL=http://your-domain.com
volumes:
grafana-storage:
Inicie com:
docker-compose up -d
Configuração Inicial
Primeiro Login
- Navegue para
http://seu-ip-do-servidor:3000 - Credenciais padrão:
- Nome de usuário:
admin - Senha:
admin
- Nome de usuário:
- Você será solicitado a alterar a senha imediatamente (altamente recomendado!)
Configurar Sua Primeira Fonte de Dados
Exemplo: Adicionando Prometheus
- Clique em Configuração (ícone de engrenagem) → Fontes de Dados
- Clique em Adicionar fonte de dados
- Selecione Prometheus
- Configure:
- Nome: Prometheus
- URL:
http://localhost:9090(ajuste para sua instância Prometheus) - Acesso: Servidor (padrão)
- Clique em Salvar & Testar
Exemplo: Adicionando InfluxDB
- Selecione InfluxDB como fonte de dados
- Configure:
- Linguagem de Consulta: Flux ou InfluxQL
- URL:
http://localhost:8086 - Banco de Dados: seu_nome_banco_dados
- Usuário/Senha: suas credenciais
- Clique em Salvar & Testar
Criando Seu Primeiro Painel
- Clique em Criar (ícone +) → Painel
- Clique em Adicionar novo painel
- Selecione sua fonte de dados
- Escreva sua consulta (exemplo para Prometheus):
rate(http_requests_total[5m])
- Personalize a visualização:
- Escolha o tipo de painel (Gráfico, Medidor, Estatística, Tabela, etc.)
- Configure legendas, eixos e limiares
- Adicione transformações se necessário
- Clique em Aplicar para salvar o painel
- Clique em Salvar painel (ícone de disquete)
Configuração Avançada
Configurar Configurações do Grafana
Edite o arquivo de configuração principal:
sudo nano /etc/grafana/grafana.ini
Configurações Importantes:
[server]
# Protocolo (http, https, h2, socket)
protocol = http
http_port = 3000
domain = your-domain.com
root_url = http://your-domain.com
[security]
admin_user = admin
admin_password = your-secure-password
secret_key = your-secret-key
[users]
# Desabilitar cadastro de usuários
allow_sign_up = false
allow_org_create = false
[auth.anonymous]
enabled = false
[smtp]
enabled = true
host = smtp.gmail.com:587
user = your-email@gmail.com
password = your-app-password
from_address = your-email@gmail.com
from_name = Grafana
Reinicie após as alterações:
sudo systemctl restart grafana-server
Configurar Proxy Reverso (Nginx)
Instalar Nginx:
sudo apt install nginx
Criar Configuração do Nginx:
sudo nano /etc/nginx/sites-available/grafana
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Habilitar e reiniciar:
sudo ln -s /etc/nginx/sites-available/grafana /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
Habilitar HTTPS com Let’s Encrypt
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com
Configurar Alertas
Passo 1: Configurar Canal de Notificação
- Navegue para Alertas → Pontos de contato
- Clique em Novo ponto de contato
- Escolha o tipo (E-mail, Slack, PagerDuty, Webhook, etc.)
- Configure as configurações (ex: URL do webhook Slack)
- Teste e salve
Passo 2: Criar Regra de Alerta
- Edite um painel no seu painel
- Clique na aba Alerta
- Configure as condições:
- Quando: avg()
- De: query(A, 5m, now)
- É Acima de: 80
- Defina o intervalo de avaliação
- Adicione canal de notificação
- Salve
Casos de Uso Populares
Monitoramento de Infraestrutura
Stack: Prometheus + Node Exporter + Grafana
Monitore métricas do sistema:
- Uso de CPU, memória e disco
- Tráfego de rede
- Carga do sistema
- I/O de disco
Para monitoramento específico de GPU NVIDIA, você pode querer explorar aplicações de monitoramento de GPU para Linux/Ubuntu que se integram bem com o Grafana.
Importe ID do painel: 1860 (Node Exporter Full)
Monitoramento de Kubernetes
Stack: Prometheus + kube-state-metrics + Grafana
Monitore o cluster K8s:
- Métricas de pods e containers
- Uso de recursos do cluster
- Status de implantação
- Monitoramento de ingress/serviço
Importe ID do painel: 15757 (Monitoramento de Cluster Kubernetes)
Monitoramento de Desempenho de Aplicações
Stack: Loki + Promtail + Grafana
Monitore logs e métricas de aplicações:
- Taxas de requisição e latências
- Taxas de erro
- Agregação e filtragem de logs
- Rastreamento distribuído
Monitoramento de Banco de Dados
Monitore MySQL, PostgreSQL, MongoDB:
- Desempenho de consultas
- Pools de conexão
- Consultas lentas
- Status de replicação
Melhores Práticas para Painéis
- Organize por Propósito: Crie painéis separados para diferentes equipes/serviços
- Use Variáveis: Crie painéis dinâmicos com variáveis de modelo
- Defina Intervalos de Tempo Adequados: Padrão para janelas de tempo significativas
- Adicione Anotações: Marque implantações e incidentes
- Use Pastas: Organize painéis logicamente
- Habilite Versionamento: Rastreie alterações de painéis
- Defina Intervalos de Atualização: Equilibre necessidades em tempo real com desempenho
- Adicione Documentação: Use painéis de texto para explicar métricas
Solução de Problemas Comuns
Serviço do Grafana Não Inicia
# Verificar logs
sudo journalctl -u grafana-server -f
# Verificar configuração
sudo grafana-cli admin reset-admin-password newpassword
Problemas de Conexão com Fonte de Dados
- Verifique a conectividade de rede:
telnet host-da-fonte-de-dados porta - Verifique as regras do firewall
- Verifique as credenciais
- Verifique os logs do serviço da fonte de dados
Problemas de Desempenho
- Reduza os intervalos de tempo das consultas
- Otimize as consultas da fonte de dados
- Aumente os recursos do servidor
- Use cache sempre que possível
- Considere o cache de resultados de consultas
Painel Não Carrega
- Limpe o cache do navegador
- Verifique o console do navegador para erros
- Verifique se o JSON do painel não está corrompido
- Verifique os logs do servidor do Grafana
Backup e Manutenção
Fazer Backup do Banco de Dados do Grafana
# Parar Grafana
sudo systemctl stop grafana-server
# Fazer backup do banco de dados SQLite
sudo cp /var/lib/grafana/grafana.db /backup/grafana-$(date +%Y%m%d).db
# Fazer backup da configuração
sudo cp /etc/grafana/grafana.ini /backup/grafana-ini-$(date +%Y%m%d).bak
# Iniciar Grafana
sudo systemctl start grafana-server
Script de Backup Automatizado
Aqui está um script bash para automatizar seus backups do Grafana. Se você precisar de uma referência rápida para sintaxe e comandos de scripting bash, consulte nosso cheat sheet de Bash para dicas e exemplos úteis.
#!/bin/bash
BACKUP_DIR="/backup/grafana"
mkdir -p $BACKUP_DIR
DATE=$(date +%Y%m%d_%H%M%S)
# Backup do banco de dados
sudo cp /var/lib/grafana/grafana.db $BACKUP_DIR/grafana-$DATE.db
# Backup de painéis via API
curl -H "Authorization: Bearer YOUR_API_KEY" \
http://localhost:3000/api/search?type=dash-db | \
jq -r '.[] | .uid' | \
xargs -I{} curl -H "Authorization: Bearer YOUR_API_KEY" \
http://localhost:3000/api/dashboards/uid/{} > $BACKUP_DIR/dashboards-$DATE.json
# Manter apenas os últimos 30 dias
find $BACKUP_DIR -mtime +30 -delete
Atualizar Grafana
# Método APT
sudo apt update
sudo apt upgrade grafana
# Método Docker
docker pull grafana/grafana-oss:latest
docker-compose down
docker-compose up -d
Endurecimento de Segurança
- Altere as Credenciais Padrão imediatamente
- Use HTTPS com certificados válidos
- Configure o Firewall:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable - Desabilite Acesso Anônimo
- Use Autenticação Forte (LDAP, OAuth, SAML)
- Atualizações Regulares Mantenha o Grafana atualizado
- Limite Permissões de Usuário Use controle de acesso baseado em funções
- Habilite Auditoria de Logs
- Use Fontes de Dados Somente Leitura sempre que possível
- Implemente Limitação de Taxa
Monitorando o Próprio Grafana
Monitore sua instância do Grafana:
- Habilite o endpoint de métricas em
grafana.ini:[metrics] enabled = true - Adicione o Grafana como alvo Prometheus
- Importe o painel de métricas do Grafana
Plugins Úteis
Instale plugins via CLI:
sudo grafana-cli plugins install <plugin-id>
sudo systemctl restart grafana-server
Plugins Recomendados:
- grafana-piechart-panel: Gráficos de pizza aprimorados
- grafana-worldmap-panel: Visualização de dados geográficos
- grafana-clock-panel: Exibir hora e data
- grafana-simple-json-datasource: Conecte-se a APIs JSON personalizadas
- alexanderzobnin-zabbix-app: Integração Zabbix
Exemplos de Integração
Grafana + Prometheus + Node Exporter
Configuração completa da pilha de monitoramento:
# Instalar Node Exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
tar xvfz node_exporter-1.7.0.linux-amd64.tar.gz
sudo cp node_exporter-1.7.0.linux-amd64/node_exporter /usr/local/bin/
sudo useradd -rs /bin/false node_exporter
# Criar serviço systemd
sudo tee /etc/systemd/system/node_exporter.service << EOF
[Unit]
Description=Node Exporter
After=network.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl start node_exporter
sudo systemctl enable node_exporter
Grafana com InfluxDB e Telegraf
Configuração de monitoramento de séries temporais:
# Instalar InfluxDB
wget -q https://repos.influxdata.com/influxdata-archive_compat.key
echo '393e8779c89ac8d958f81f942f9ad7fb82a25e133faddaf92e15b16e6ac9ce4c influxdata-archive_compat.key' | sha256sum -c && cat influxdata-archive_compat.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null
echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list
sudo apt update && sudo apt install influxdb
sudo systemctl start influxdb
sudo systemctl enable influxdb
# Instalar Telegraf
sudo apt install telegraf
sudo systemctl start telegraf
sudo systemctl enable telegraf
Otimização de Desempenho
Otimização de Consultas
- Use intervalos de tempo apropriados
- Limite os pontos de dados retornados
- Use estratégias de cache
- Agregue dados na origem sempre que possível
- Use regras de gravação no Prometheus
Otimização do Servidor
[database]
# Aumente conexões máximas
max_open_conn = 300
max_idle_conn = 100
[dataproxy]
# Configurações de tempo limite
timeout = 30
keep_alive_seconds = 30
[rendering]
# Limite de renderização concorrente
concurrent_render_limit = 10
Links Úteis
- Documentação Oficial
- Grafana GitHub
- Documentação do Prometheus
- Documentação do InfluxDB
- Como Instalar Ubuntu 24.04 & ferramentas úteis
- Aplicações de monitoramento de GPU em Linux / Ubuntu
- Monitoramento com Prometheus
Conclusão
O Grafana no Ubuntu fornece uma plataforma poderosa e flexível para monitoramento e observabilidade. Seja monitorando um único servidor ou um cluster Kubernetes massivo, as ricas capacidades de visualização do Grafana, o extenso suporte a fontes de dados e a comunidade ativa o tornam uma excelente escolha para equipes de DevOps.
Comece com uma configuração simples usando o método do repositório APT, conecte sua primeira fonte de dados e expanda gradualmente suas capacidades de monitoramento. Lembre-se de priorizar segurança, backups regulares e otimização de desempenho à medida que sua implantação do Grafana cresce.
Com a configuração adequada e melhores práticas, o Grafana torna-se uma ferramenta indispensável em sua pilha de observabilidade, fornecendo insights acionáveis que ajudam a manter sistemas confiáveis e com alto desempenho.