Instale e Use o Grafana no Ubuntu: Guia Completo
Mestre a configuração do Grafana para monitoramento e visualização
Grafana é a plataforma de código aberto líder para monitoramento e observabilidade, transformando métricas, logs e rastreamentos em insights ações através de visualizações impressionantes.
Este é um screenshot do site da Grafana.
O que é a Grafana?
A Grafana é uma aplicação web de análise e visualização interativa de código aberto multiplataforma. Ela fornece gráficos, gráficos e alertas para a web quando conectada a fontes de dados compatíveis. A Grafana é amplamente utilizada em DevOps para monitorar infraestrutura, aplicações e serviços.
Funcionalidades Principais:
- Painel Universal Crie painéis bonitos e dinâmicos com modelagem flexível
- Várias Fontes de Dados Conecte-se a mais de 150 fontes de dados, incluindo Prometheus, InfluxDB, Elasticsearch, MySQL, PostgreSQL e muito 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
- Ecosistema de Plugins Amplie a funcionalidade com painéis, fontes de dados e aplicações
- Nativo em Nuvem Ideal para Kubernetes, Docker e ambientes em nuvem
Por que a Grafana no Ubuntu?
As versões LTS do Ubuntu oferecem uma base estável e segura para hospedar a 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.
Benefícios incluem:
- Suporte de longo prazo e atualizações de segurança
- Comunidade grande e documentação extensa
- Suporte nativo ao repositório APT da Grafana Labs
- Excelente compatibilidade com Docker
- Ideal para ambientes de desenvolvimento e produção
Métodos de Instalação
Método 1: Instalar 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 uso do terminal do Ubuntu ou quer aumentar sua produtividade, nossa folha de dicas de atalhos do teclado do Ubuntu pode ajudá-lo 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 da 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 da 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 a Grafana
sudo apt-get update
sudo apt-get install grafana
Passo 5: Iniciar e Habilitar o Serviço da 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
A Grafana estará agora em execução em http://localhost:3000
Método 2: Instalar Usando Docker
O Docker fornece isolamento e gerenciamento mais fácil para implantações em contêineres.
Passo 1: Instalar Docker (se ainda não instalado)
sudo apt-get update
sudo apt-get install docker.io
sudo systemctl start docker
sudo systemctl enable docker
Passo 2: Executar o Contêiner da 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: Instalar 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 até
http://your-server-ip:3000 - Credenciais padrão:
- Usuário:
admin - Senha:
admin
- Usuário:
- Você será solicitado a alterar a senha imediatamente (altamente recomendado!)
Configurar sua Primeira Fonte de Dados
Exemplo: Adicionar 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 de Prometheus) - Acesso: Servidor (padrão)
- Clique em Salvar & Testar
Exemplo: Adicionar InfluxDB
- Selecione InfluxDB como fonte de dados
- Configure:
- Linguagem de Consulta: Flux ou InfluxQL
- URL:
http://localhost:8086 - Banco de Dados: seu_nome_do_banco
- Usuário/Senha: suas credenciais
- Clique em Salvar & Testar
Criar 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, limites
- Adicione transformações se necessário
- Clique em Aplicar para salvar o painel
- Clique em Salvar painel (ícone de disco)
Configuração Avançada
Configurar Configurações da 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]
# Desative o 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 Inverso (Nginx)
Instale o Nginx:
sudo apt install nginx
Crie a 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;
}
}
Ative e reinicie:
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 até 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 do Slack)
- Teste e salve
Passo 2: Criar Regra de Alerta
- Edite um painel no seu dashboard
- 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 o canal de notificação
- Salve
Casos de Uso Populares
Monitoramento de Infraestrutura
Pilha: Prometheus + Node Exporter + Grafana
Monitore métricas do sistema:
- CPU, memória, uso de disco
- Tráfego de rede
- Carga do sistema
- E/S de disco
Para monitoramento específico de GPU NVIDIA, você pode querer explorar aplicativos especializados de monitoramento de GPU para Linux/Ubuntu que se integram bem com a Grafana.
Importar ID do painel: 1860 (Node Exporter Full)
Monitoramento de Kubernetes
Pilha: Prometheus + kube-state-metrics + Grafana
Monitore o cluster K8s:
- Métricas de pod e contêiner
- Uso de recursos do cluster
- Status de implantação
- Monitoramento de ingresso/serviço
Importar ID do painel: 15757 (Monitoramento do Cluster Kubernetes)
Monitoramento de Desempenho de Aplicações
Pilha: Loki + Promtail + Grafana
Monitore logs e métricas de aplicações:
- Taxas e latências de solicitações
- Taxas de erros
- 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
Boas 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 Apropriados: Padrão para janelas de tempo significativas
- Adicione Anotações: Marque implantações e incidentes
- Use Pastas: Organize painéis logicamente
- Ative a Versão: Rastreie alterações nos 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
O Serviço da Grafana Não Inicia
# Verifique os logs
sudo journalctl -u grafana-server -f
# Verifique a configuração
sudo grafana-cli admin reset-admin-password newpassword
Problemas de Conexão com Fonte de Dados
- Verifique a conectividade de rede:
telnet datasource-host port - Verifique as regras de 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 das fontes de dados
- Aumente os recursos do servidor
- Use cache quando possível
- Considere o cache de resultados de consultas
Painel Não Carrega
- Limpe o cache do navegador
- Verifique os erros no console do navegador
- Verifique se o JSON do painel não está corrompido
- Verifique os logs do servidor da Grafana
Backup e Manutenção
Backup do Banco de Dados da Grafana
# Pare a Grafana
sudo systemctl stop grafana-server
# Backup do banco de dados SQLite
sudo cp /var/lib/grafana/grafana.db /backup/grafana-$(date +%Y%m%d).db
# Backup da configuração
sudo cp /etc/grafana/grafana.ini /backup/grafana-ini-$(date +%Y%m%d).bak
# Inicie a Grafana
sudo systemctl start grafana-server
Script de Backup Automatizado
Aqui está um script bash para automatizar seus backups da Grafana. Se você precisar de uma referência rápida para sintaxe e comandos de script bash, consulte nossa folha de dicas de bash para dicas úteis e exemplos.
#!/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 dashboards 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
# Mantenha apenas os últimos 30 dias
find $BACKUP_DIR -mtime +30 -delete
Atualizar a 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
Fortalecimento de Segurança
- Mude as credenciais padrão imediatamente
- Use HTTPS com certificados válidos
- Configure Firewall:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable - Desative o acesso anônimo
- Use Autenticação Forte (LDAP, OAuth, SAML)
- Atualizações Regulares Mantenha a Grafana atualizada
- Limite as Permissões dos Usuários Use controle de acesso baseado em papéis
- Ative o Registro de Auditoria
- Use Fontes de Dados de Apenas Leitura quando possível
- Implemente Limitação de Taxa
Monitoramento da Própria Grafana
Monitore sua instância da Grafana:
- Ative o endpoint de métricas em
grafana.ini:[metrics] enabled = true - Adicione a Grafana como alvo do Prometheus
- Importe o painel de métricas da 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: Exiba hora e data
- grafana-simple-json-datasource: Conecte-se a APIs JSON personalizadas
- alexanderzobnin-zabbix-app: Integração com Zabbix
Exemplos de Integração
Grafana + Prometheus + Node Exporter
Configuração completa do stack de monitoramento:
# Instale o 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
# Crie um 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:
# Instale o 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
# Instale o 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 fonte quando possível
- Use regras de registro no Prometheus
Otimização do Servidor
[database]
# Aumente o número máximo de conexões
max_open_conn = 300
max_idle_conn = 100
[dataproxy]
# Configurações de timeout
timeout = 30
keep_alive_seconds = 30
[rendering]
# Ative o limite de renderização concorrente
concurrent_render_limit = 10
Links Úteis
- Documentação Oficial
- Repositório GitHub da Grafana
- Documentação do Prometheus
- Documentação do InfluxDB
- Como Instalar o Ubuntu 24.04 & ferramentas úteis
- Aplicativos de monitoramento de GPU em Linux / Ubuntu
- Atalhos do teclado do Ubuntu: Folha de Dicas Completa
- Folha de Dicas de Bash
Conclusão
A Grafana no Ubuntu oferece uma plataforma poderosa e flexível para monitoramento e observabilidade. Seja você monitorando um único servidor ou um grande cluster Kubernetes, as ricas capacidades de visualização da Grafana, o amplo suporte a fontes de dados e a comunidade ativa tornam uma excelente escolha para equipes de DevOps.
Comece com uma instalaçã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 conforme sua implantação da Grafana cresce.
Com a configuração adequada e as melhores práticas, a Grafana se torna uma ferramenta indispensável em sua pilha de observabilidade, fornecendo insights ações que ajudam a manter sistemas confiáveis e de alto desempenho.