Sobre o projeto

ngtop é um utilitário CLI baseado em Go para analisar logs de acesso do nginx. Ele analisa as entradas de log em um banco de dados SQLite e permite que os usuários executem consultas filtradas para estatísticas de requisições. ### Instalação Baixe o binário pré-compilado em releases ou instale via Go: `go install github.com/facundoolano/ngtop@latest`. ### Como Funciona A cada execução, o ngtop localiza os logs de acesso do nginx (padrão `/var/log/nginx/access.log*`), analisa-os usando o formato de log combined e armazena as entradas analisadas em um banco de dados SQLite (`./ngtop.db` por padrão). Execuções subsequentes processam apenas novas entradas de log que ainda não foram armazenadas. ### Capacidades de Consulta A ferramenta suporta filtragem e agregação em múltiplas dimensões: - **Caminhos**: URLs mais requisitadas, com correspondência de padrões (`/blog/%`) - **User agents**: Agrupamento por navegador, SO, dispositivo ou detecção de bots - **IPs**: IPs com mais requisições, ou as principais URLs por IP - **Referers**: Principais referenciadores para padrões de URL específicos - **Códigos de status**: Contagem de respostas por status HTTP, incluindo correspondência de padrões (ex: `4%`, `5%`) - **Intervalos de tempo**: Limite as consultas ao último segundo, minuto, hora, dia, semana ou mês com `--since`/`-s`, e opcionalmente `--until`/`-u` para uma janela de tempo - **Filtros**: Combine múltiplas condições com `--where`/`-w` usando operadores como `=`, `!=` e `LIKE` ### Configuração O comportamento é controlado via variáveis de ambiente: - `NGTOP_LOGS_PATH`: Padrão glob para a localização dos arquivos de log - `NGTOP_LOG_FORMAT`: String de formato de log customizada do nginx - `NGTOP_DB`: Caminho para o banco de dados SQLite - `NGTOP_DEBUG`: Ativa o log interno Isso torna o ngtop uma camada de análise leve e de baixo overhead para implantações de nginx onde a agregação de logs full-stack não é prática.