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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.