Grafite Rio De Janeiro - Rio De Janeiro Grafite - FDPLEARN
Rio De Janeiro Grafite - FDPLEARN

Configurando grafite rio de janeiro para monitoramento real

Graphite é um sistema de monitoramento que coleta métricas de servidores e armazena em séries temporais. O motor principal usa Django, Carbon como receptor de dados, Whisper como banco de dados e uma camada de renderização via Flask ou Django view. Vou explicar como montar do zero e os problemas que aparecem no dia a dia.

O que é grafite rio de janeiro e por que você provavelmente não deveria usar ele hoje

O Graphite nasceu na Orbitz em 2006. É leve, gratuito e funciona bem para monitorar Centenas de hosts com métricas simples de CPU, memória e disco. Mas tem limitações sérias: não escala bem acima de milhares de métricas por segundo, a consulta em tempo real pode travar o banco Whisper se você não ajustar os parâmetros corretos, e a interface gráfica já parece relicária. Se você está começando agora, considere Prometheus com Grafana. Mas se o seu ambiente exige Graphite — legado, integração com ferramentas específicas, ou restrição orçamentária — vou mostrar como instalar de verdade.

Instalação passo a passo

Você precisa de um servidor Linux rodando Ubuntu 22.04 ou Debian 12. Instale as dependências: sudo apt update && sudo apt install -y python3-django python3-pip git curl gnupg2 lsb-release

Adicione o repositório do Graphite: curl -sL https://deb.nodesource.com/setup_20.x | sudo bash -

Instale o Graphite-web: sudo apt install -y graphite-web carbon-cache

Configure o banco de dados. O padrão usa SQLite, mas para produção mude para PostgreSQL: Edite /etc/graphite-web/local_settings.py e substitua a configuração de banco:

DATABASES = { 'default': { 'NAME': 'graphite', 'ENGINE': 'django.db.backends.postgresql', 'USER': 'graphite', 'PASSWORD': 'sua_senha_aqui', 'HOST': 'localhost', 'PORT': '5432' } } Crie o banco no PostgreSQL:

sudo -u postgres psql -c "CREATE DATABASE graphite;" sudo -u postgres psql -c "CREATE USER graphite WITH PASSWORD 'sua_senha_aqui';" sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE graphite TO graphite;" Execute a migração do Django:

sudo graphite-manage migrate --run-syncdb Configure o Carbon para receber métricas. Edite /etc/carbon/carbon.conf e garanta que ENABLE_CACHE = true. No arquivo /etc/carbon/storage-schemas.conf, defina GRANULARIDADE:

[default_1min_for_1day] pattern = \* retentions = 60:1d Isso significa que cada ponto será salvo a cada 60 segundos, com retenção de 1 dia. Ajuste conforme sua necessidade. Métricas com alta frequência consomem muito espaço no disco Whisper rapidamente.

👉 Clique no botão abaixo para saber mais sobre o assunto!

Inicie os serviços: sudo systemctl enable carbon-cache sudo systemctl start carbon-cache sudo systemctl enable apache2 sudo systemctl start apache2

Acesse http://SEU_SERVER/graphite e faça login com admin/admin (mude imediatamente).

O problema que ninguém conta sobre Whisper

Eu configurei um cluster de 300 servidores com 500 métricas cada, collectando a cada 30 segundos. Depois de 48 horas, o serviço Carbon parou de aceitar dados. O log mostrava erros de I/O no disco. O problema: Whisper usa arquivos compactados com compressão LZMA. Quando muitos arquivos são escritos simultaneamente, o sistema de arquivos trava. Minha solução foi migrar para Graphite-API com backend Redis, que elimina completamente o problema de concorrência de disco. Se seu volume for alto (mais de 10k métricas/seg), não use Whisper. Use InfluxDB ou TimescaleDB no lugar.

Métricas reais funcionando

Para enviar dados, use: echo "local.host.cpu.usage 75 $(date +%s)" | nc -w 1 localhost 2003

Isso envia uma métrica de CPU para o Carbon. A porta 2003 é o protocolo plaintext do Carbon. Existe também a porta 2004 para o protocolo pickle, que é mais rápido mas menos debugável. No dashboard, você verá a linha aparecer após alguns segundos. Se não aparecer, verifique se o serviço Carbon está rodando com sudo systemctl status carbon-cache e se as permissões do diretório /var/lib/graphite-carbon/ estão corretas para o usuário carbon.

Manutenção e troubleshooting

Os logs ficam em: /var/log/graphite-carbon/carbon-cache.log — métricas recebidas e erros do cache

/var/log/apache2/graphite.log — requisições HTTP e erros de renderização Se a interface fica lenta, verifique quantos arquivos Whisper existem. Um comando útil:

find /var/lib/graphite-carbon/ -name "*.wsp" | wc -l Se o número passar de 50 mil, você tem um problema de organização de métricas. Padronize o namespace: sempre comece com algo como nome_do_servidor.component.tipo.métrica. Sem namespace, as consultas ficam infinitamente lentas porque o Graphite varre todo o diretório.

Para rotação de métricas antigas, use o comando do Carbon com sudo carbon-cache.py stop, execute sudo find /var/lib/graphite-carbon/ -name "*.wsp" -mtime +30 -delete, e reinicie. Isso libera espaço mas apaga dados permanentemente.

Alternativas que funcionam melhor

Para ambientes novos, recomendo Prometheus com Grafana. A consulta é mais rápida, a curva de aprendizado é menor, e a comunidade é maior. O Graphite ainda é útil para projetos legados ou quando você precisa de algo extremamente simples sem a complexidade de um ecossistema inteiro. Se você já tem Graphite rodando e quer melhorar performance, considere migrar para MetricFire ou Datadog, que oferecem dashboards prontos sem a dor de cabeça de configurar alertas manualmente.