Servidor & DevOps 38 visualizações

Como configurar logs centralizados para facilitar a depuração de uma aplicação no VPS

Ver no WHMCS

Como configurar logs centralizados para facilitar a depuração de uma aplicação no VPS

Oi, tudo bem? Aqui é a Sensei da GeHost 🧘‍♀️ Hoje vamos falar de um hábito que separa quem "acha" que sabe o que está acontecendo no servidor de quem realmente sabe: centralizar os logs da sua aplicação. Parece coisa de gente avançada, mas prometo que dá pra entender com calma, sem sofrimento.

Log é a "caixa-preta" da sua aplicação. Quando algo dá errado, é ele quem conta a história do que aconteceu — se você souber onde procurar.

Por que centralizar os logs?

Numa aplicação real, você normalmente tem vários "pedaços" gerando informação ao mesmo tempo: o sistema operacional, o servidor web (Nginx/Apache), o banco de dados e a sua própria aplicação (Node, Python, PHP, etc). Se cada um grava em um lugar diferente, na hora de investigar um erro você fica caçando arquivo por arquivo — perde tempo e, pior, pode não achar a causa. Centralizar significa reunir tudo (ou pelo menos apontar tudo) num único lugar organizado, fácil de acompanhar.

O que você precisa antes de começar

  • Acesso SSH ao seu VPS (usuário com permissão de administrador/sudo).
  • Saber, mesmo que por cima, qual tecnologia roda sua aplicação (Node.js, Python, PHP, etc.) e como ela hoje registra seus logs.
  • Um pouco de paciência — vamos fazer passo a passo, sem pressa.

Se você não tem certeza de algum desses pontos (por exemplo, qual sistema operacional roda no seu VPS), não chute: abra um chamado com o suporte da GeHost antes de mexer em qualquer configuração.

Passo 1 — Mapeie onde cada log já vive hoje

Antes de organizar a bagunça, você precisa saber onde ela está. Conecte no VPS via SSH e dê uma olhada nos lugares mais comuns:

  1. Logs do sistema operacional: geralmente em /var/log/ (ex.: /var/log/syslog ou, em distribuições que usam systemd, via journalctl).
  2. Logs do servidor web: normalmente em /var/log/nginx/ ou /var/log/apache2/, com um arquivo de acesso e outro de erro.
  3. Logs da sua aplicação: variam bastante — pode ser um arquivo que o próprio código gera, ou pode estar apenas saindo no terminal (stdout/stderr), sem ficar salvo em lugar nenhum.

Anote (num bloco de notas mesmo) cada caminho encontrado. Esse mapa é a base de tudo o que vem a seguir.

Passo 2 — Crie uma pasta central para os logs da aplicação

Uma prática simples e eficiente é criar uma pasta só para os logs da sua aplicação, separada dos logs do sistema. Por exemplo:

sudo mkdir -p /var/log/minha-aplicacao
sudo chown seu_usuario:seu_usuario /var/log/minha-aplicacao

Troque minha-aplicacao e seu_usuario pelos nomes reais do seu projeto e do usuário que roda a aplicação no VPS. A ideia é ter um endereço fixo, fácil de lembrar, onde tudo relacionado ao seu sistema vai parar.

Passo 3 — Direcione a aplicação para gravar ali

Aqui depende da tecnologia que você usa, mas o princípio é sempre o mesmo: fazer a saída de log (o que hoje aparece "solto" no terminal) ser gravada em arquivo, dentro da pasta que você criou. Alguns caminhos comuns:

  • Node.js: se você usa um gerenciador de processos como o PM2, ele já tem opção nativa de definir onde salvar os logs de saída e de erro.
  • Python: configure o módulo de logging da própria linguagem apontando o FileHandler para o caminho da pasta central.
  • PHP: ajuste a diretiva de log de erros no arquivo de configuração do PHP (ou do seu framework) para o mesmo caminho.
  • Aplicação rodando via serviço systemd: os logs já vão automaticamente para o journalctl — você pode redirecioná-los também para um arquivo com um redirecionamento simples no próprio arquivo de serviço.

Se você não tiver segurança pra mexer nisso sozinho, tudo bem — pode pedir orientação ao suporte da GeHost ou, se preferir uma mão mais técnica na configuração, considerar nosso serviço de desenvolvimento web.

Passo 4 — Centralize também os logs do sistema com o rsyslog

A maioria dos VPS Linux já vem com o rsyslog (ou similar) instalado, responsável por organizar os logs do sistema operacional. Ele pode ser configurado para também receber e organizar os logs de outras aplicações num único lugar, facilitando ainda mais a vida na hora de investigar um problema. Isso é um ajuste mais técnico — se quiser ir por esse caminho, vale conversar com o suporte antes de alterar arquivos de configuração do sistema.

Passo 5 — Configure a rotação de logs (logrotate)

Log que cresce sem parar pode acabar lotando o disco do seu VPS — e disco cheio derruba aplicação. Por isso, é essencial configurar a rotação, ou seja, fazer o sistema arquivar/compactar logs antigos automaticamente e apagar os muito velhos. A ferramenta padrão pra isso no Linux é o logrotate. Um exemplo simples de configuração para a sua pasta central:

/var/log/minha-aplicacao/*.log {
    daily
    rotate 14
    compress
    missingok
    notifempty
}

Isso diz: gire os logs todo dia, guarde as últimas 14 rotações, compacte as antigas e não reclame se o arquivo não existir. Ajuste os números conforme o espaço em disco do seu plano.

Dica da Sensei: log sem rotação é uma bomba-relógio silenciosa. Configure isso já no início do projeto, não espere o disco encher pra lembrar.

Passo 6 — Aprenda a acompanhar tudo em tempo real

Com os logs organizados, acompanhar um problema acontecendo fica muito mais simples. Alguns comandos que valem ouro no dia a dia:

  • tail -f /var/log/minha-aplicacao/app.log — acompanha o log em tempo real, linha por linha.
  • journalctl -u nome-do-servico -f — acompanha em tempo real um serviço gerenciado pelo systemd.
  • grep "erro" /var/log/minha-aplicacao/app.log — filtra rapidamente por uma palavra-chave dentro do log.

Passo 7 (opcional, para quem quer ir além)

Se sua aplicação crescer e os logs ficarem volumosos, existem ferramentas de agregação de logs (como Grafana Loki, ELK Stack, entre outras) que centralizam tudo numa interface visual, com busca e alertas. É um passo mais avançado — vale considerar quando o projeto já tiver um volume de tráfego relevante. Se chegar nesse ponto, fale com a gente: podemos te orientar sobre o melhor caminho para o seu cenário.

Passo 8 — Teste antes de confiar

Depois de tudo configurado, force um erro proposital na aplicação (por exemplo, acesse uma rota que não existe) e confira se ele aparece corretinho na sua pasta central de logs. Só considere o trabalho concluído quando você conseguir ver, num único lugar, o que está acontecendo com sua aplicação.

Precisa de ajuda?

Se travar em qualquer passo, não sofra sozinho — conte com o suporte da GeHost. E lembre: todo serviço entregue pela nossa equipe já inclui 30 dias de suporte gratuito após a entrega. Acompanhe seus serviços e fale com a gente pelo painel.gehost.com.br.

Um abraço e até o próximo guia! 🌱
— Sensei, da GeHost

Precisa de Ajuda?

Nossa equipe está pronta para resolver suas dúvidas.