Instale e Use o Grafana no Ubuntu: Guia Completo

Mestre a configuração do Grafana para monitoramento e visualização

Conteúdo da página

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.

grafana 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

  1. Navegue até http://your-server-ip:3000
  2. Credenciais padrão:
    • Usuário: admin
    • Senha: admin
  3. Você será solicitado a alterar a senha imediatamente (altamente recomendado!)

Configurar sua Primeira Fonte de Dados

Exemplo: Adicionar Prometheus

  1. Clique em Configuração (ícone de engrenagem) → Fontes de Dados
  2. Clique em Adicionar fonte de dados
  3. Selecione Prometheus
  4. Configure:
    • Nome: Prometheus
    • URL: http://localhost:9090 (ajuste para sua instância de Prometheus)
    • Acesso: Servidor (padrão)
  5. Clique em Salvar & Testar

Exemplo: Adicionar InfluxDB

  1. Selecione InfluxDB como fonte de dados
  2. Configure:
    • Linguagem de Consulta: Flux ou InfluxQL
    • URL: http://localhost:8086
    • Banco de Dados: seu_nome_do_banco
    • Usuário/Senha: suas credenciais
  3. Clique em Salvar & Testar

Criar seu Primeiro Painel

  1. Clique em Criar (+ ícone) → Painel
  2. Clique em Adicionar novo painel
  3. Selecione sua fonte de dados
  4. Escreva sua consulta (exemplo para Prometheus):
rate(http_requests_total[5m])
  1. 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
  2. Clique em Aplicar para salvar o painel
  3. 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

  1. Navegue até AlertasPontos de Contato
  2. Clique em Novo ponto de contato
  3. Escolha o tipo (E-mail, Slack, PagerDuty, Webhook, etc.)
  4. Configure as configurações (ex: URL do webhook do Slack)
  5. Teste e salve

Passo 2: Criar Regra de Alerta

  1. Edite um painel no seu dashboard
  2. Clique na aba Alerta
  3. Configure as condições:
    • Quando: avg()
    • De: query(A, 5m, now)
    • Acima de: 80
  4. Defina o intervalo de avaliação
  5. Adicione o canal de notificação
  6. 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

  1. Organize por Propósito: Crie painéis separados para diferentes equipes/serviços
  2. Use Variáveis: Crie painéis dinâmicos com variáveis de modelo
  3. Defina Intervalos de Tempo Apropriados: Padrão para janelas de tempo significativas
  4. Adicione Anotações: Marque implantações e incidentes
  5. Use Pastas: Organize painéis logicamente
  6. Ative a Versão: Rastreie alterações nos painéis
  7. Defina Intervalos de Atualização: Equilibre necessidades em tempo real com desempenho
  8. 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

  1. Mude as credenciais padrão imediatamente
  2. Use HTTPS com certificados válidos
  3. Configure Firewall:
    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
    sudo ufw enable
    
  4. Desative o acesso anônimo
  5. Use Autenticação Forte (LDAP, OAuth, SAML)
  6. Atualizações Regulares Mantenha a Grafana atualizada
  7. Limite as Permissões dos Usuários Use controle de acesso baseado em papéis
  8. Ative o Registro de Auditoria
  9. Use Fontes de Dados de Apenas Leitura quando possível
  10. Implemente Limitação de Taxa

Monitoramento da Própria Grafana

Monitore sua instância da Grafana:

  1. Ative o endpoint de métricas em grafana.ini:
    [metrics]
    enabled = true
    
  2. Adicione a Grafana como alvo do Prometheus
  3. 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

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.