TL;DRColete e visualize os logs de acesso do Nginx (formato JSON) no ClickStack usando o receiver
filelog do OTel. Inclui um conjunto de dados de demonstração e um dashboard pré-configurado.Integração com o Nginx existente
Pré-requisitos
- Instância do ClickStack em execução
- Uma instalação existente do Nginx
- Acesso para modificar arquivos de configuração do Nginx
Configure o formato dos logs do Nginx
Primeiro, configure o Nginx para gerar logs no formato JSON e facilitar o parsing. Adicione esta definição de formato de log ao seunginx.conf:O arquivo nginx.conf geralmente fica em:- Linux (apt/yum):
/etc/nginx/nginx.conf - macOS (Homebrew):
/usr/local/etc/nginx/nginx.confou/opt/homebrew/etc/nginx/nginx.conf - Docker: A configuração geralmente é montada como um volume
http:Crie uma configuração personalizada do OTel collector
O ClickStack permite estender a configuração básica do OpenTelemetry Collector montando um arquivo de configuração personalizado e definindo uma variável de ambiente. A configuração personalizada é mesclada à configuração básica gerenciada pelo HyperDX via OpAMP.Crie um arquivo chamado nginx-monitoring.yaml com a seguinte configuração:- Lê os logs do Nginx de seus locais padrão
- Faz o parse de entradas de log em JSON
- Extrai e preserva os timestamps originais dos logs
- Adiciona o atributo source: Nginx para filtragem no HyperDX
- Encaminha os logs para o ClickHouse exporter por meio de um pipeline dedicado
- Você define apenas novos receivers e pipelines na configuração personalizada
- Os processors (memory_limiter, transform, batch) e exporters (clickhouse) já estão definidos na configuração base do ClickStack — você só faz referência a eles pelo nome
- O operador time_parser extrai timestamps do campo time_local do Nginx para preservar o horário original dos logs
- Os pipelines encaminham dados dos seus receivers para o ClickHouse exporter por meio dos processors existentes
Configure o ClickStack para carregar uma configuração personalizada
Para habilitar uma configuração personalizada do collector na sua implantação existente do ClickStack, você deve:- Montar o arquivo de configuração personalizada em /etc/otelcol-contrib/custom.config.yaml
- Definir a variável de ambiente CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml
- Montar os diretórios de logs do Nginx para que o collector possa lê-los
Opção 1: Docker Compose
Atualize a configuração de implantação do ClickStack:Opção 2: Docker Run (Imagem all-in-one)
Se estiver usando a imagem all-in-one com docker run:Garanta que o ClickStack collector tenha as permissões adequadas para ler os arquivos de log do nginx. Em produção, use montagens em modo somente leitura (:ro) e siga o princípio do privilégio mínimo.
Verificando logs no HyperDX
Depois de configurar, faça login no HyperDX e verifique se os logs estão sendo enviados:- Vá até a visualização Busca
- Defina source como Logs e verifique se você vê entradas de log com campos como request, request_time, upstream_response_time etc.
Conjunto de dados de demonstração
Baixe o dataset de exemplo
- Entradas de log com padrões de tráfego realistas
- Vários endpoints e métodos HTTP
- Uma combinação de solicitações bem-sucedidas e erros
- Tempos de resposta e volumes de bytes realistas
Crie a configuração do collector de teste
Crie um arquivo chamadonginx-demo.yaml com a configuração a seguir:Execute o ClickStack com a configuração de demonstração
Execute o ClickStack com os logs e a configuração de demonstração:Verifique os logs no HyperDX
Quando o ClickStack estiver em execução:- Abra o HyperDX e faça login na sua conta (talvez seja necessário criar uma conta primeiro)
- Vá para a visualização Busca e defina a fonte como
Logs - Defina o intervalo de tempo como 2025-10-19 11:00:00 - 2025-10-22 11:00:00
Exibição de fuso horárioO HyperDX exibe os timestamps no fuso horário local do seu navegador. Os dados de demonstração cobrem 2025-10-20 11:00:00 - 2025-10-21 11:00:00 UTC. O intervalo de tempo amplo garante que você verá os logs de demonstração independentemente da sua localização. Depois de visualizar os logs, você pode reduzir o intervalo para um período de 24 horas para ter visualizações mais claras.
Dashboards e visualizações
a configuração do dashboard
Importe o dashboard pré-configurado
- Abra o HyperDX e vá para a seção Dashboards.
- Clique em “Import Dashboard” no canto superior direito, no menu de reticências.
- Faça upload do arquivo nginx-logs-dashboard.json e clique em “Finish Import”.
O dashboard será criado com todas as visualizações pré-configuradas
Para o conjunto de dados de demonstração, defina o intervalo de tempo como 2025-10-20 11:00:00 - 2025-10-21 11:00:00 (UTC) (ajuste com base no seu fuso horário local). Por padrão, o dashboard importado não terá um intervalo de tempo especificado.
Solução de problemas
Config personalizada não é carregada
- Verifique se a variável de ambiente CUSTOM_OTELCOL_CONFIG_FILE está definida corretamente
- Verifique se o arquivo de configuração personalizado está montado em /etc/otelcol-contrib/custom.config.yaml
- Verifique o conteúdo da configuração personalizada para confirmar se está legível
Os logs não estão aparecendo no HyperDX
- Certifique-se de que o nginx esteja gravando logs em JSON
- Verifique se o collector consegue ler os logs
- Verifique se a config efetiva inclui o receiver filelog
- Verifique se há erros nos logs do collector
Próximos passos
- Configure alertas para métricas críticas (taxas de erro, limites de latência)
- Crie dashboards adicionais para casos de uso específicos (monitoramento de APIs, eventos de segurança)