Integração com um Nginx existente
Esta seção explica como adicionar rastreamento distribuído à sua instalação atual do Nginx, instalando o módulo OpenTelemetry e configurando-o para enviar traces ao ClickStack. Se quiser testar a integração antes de configurar seu próprio ambiente, você pode usar nossa configuração pré-configurada e dados de exemplo na seção a seguir.
Pré-requisitos
- Instância do ClickStack em execução, com endpoints OTLP acessíveis (portas 4317/4318)
- Instalação existente do Nginx (versão 1.18 ou superior)
- Acesso root ou sudo para modificar a configuração do Nginx
- Hostname ou endereço IP do ClickStack
Instale o módulo OpenTelemetry Nginx
A forma mais fácil de adicionar rastreamento ao Nginx é usar a imagem oficial do Nginx com suporte nativo ao OpenTelemetry.
Usando a imagem nginx:otel
Substitua a imagem atual do Nginx pela versão com OpenTelemetry habilitado:
# No seu docker-compose.yml ou Dockerfile
image: nginx:1.27-otelEssa imagem já inclui o ngx_otel_module.so, pronto para uso.
Configure o Nginx para enviar traces ao ClickStack
Adicione a configuração do OpenTelemetry ao arquivo nginx.conf. Essa configuração carrega o módulo e envia os traces para o endpoint OTLP do ClickStack.
Primeiro, obtenha sua API key:
- Abra o HyperDX na URL do seu ClickStack
- Vá para Settings → API Keys
- Copie sua API key de ingestão
- Defina-a como uma variável de ambiente:
export CLICKSTACK_API_KEY=your-api-key-here
Adicione isto ao seu nginx.conf:
load_module modules/ngx_otel_module.so;
events {
worker_connections 1024;
}
http {
# Configuração do exporter do OpenTelemetry
otel_exporter {
endpoint <clickstack-host>:4317;
header authorization ${CLICKSTACK_API_KEY};
}
# Nome do serviço para identificar esta instância do Nginx
otel_service_name "nginx-proxy";
# Habilita o rastreamento
otel_trace on;
server {
listen 80;
location / {
# Habilita o rastreamento para este location
otel_trace_context propagate;
otel_span_name "$request_method $uri";
# Adiciona detalhes da requisição aos traces
otel_span_attr http.status_code $status;
otel_span_attr http.request.method $request_method;
otel_span_attr http.route $uri;
# Sua configuração atual de proxy ou aplicação
proxy_pass http://your-backend;
}
}
}Se estiver executando o Nginx no Docker, passe a variável de ambiente para o contêiner:
services:
nginx:
image: nginx:1.27-otel
environment:
- CLICKSTACK_API_KEY=${CLICKSTACK_API_KEY}
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:roSubstitua <clickstack-host> pelo hostname ou endereço IP da sua instância do ClickStack.
Entendendo a configuração
O que é rastreado: Cada requisição ao Nginx cria um trace span que mostra:
- Método e caminho da requisição
- Código de status HTTP
- Duração da requisição
- Timestamp
Atributos do span:
As diretivas otel_span_attr adicionam metadados a cada trace, permitindo filtrar e analisar requisições no HyperDX por código de status, método, rota etc.
Depois de fazer essas alterações, teste a configuração do Nginx:
nginx -tSe o teste passar, recarregue o Nginx:
# Para Docker
docker-compose restart nginx
# Para systemd
sudo systemctl reload nginxVerifique os traces no HyperDX
Depois de configurar, faça login no HyperDX e verifique se os traces estão chegando. Você deverá ver algo como isto; se não vir traces, tente ajustar o intervalo de tempo:

Dataset de demonstração
Para usuários que querem testar a integração de traces do Nginx antes de configurar seus sistemas de produção, fornecemos um dataset de exemplo com Nginx Traces pré-gerados e padrões de tráfego realistas.
Inicie o ClickStack
Se o ClickStack ainda não estiver em execução, inicie-o com:
docker run --name clickstack-demo \
-p 8080:8080 -p 4317:4317 -p 4318:4318 \
clickhouse/clickstack-all-in-one:latestAguarde cerca de 30 segundos até que o ClickStack inicialize completamente antes de prosseguir.
- Porta 8080: interface web do HyperDX
- Porta 4317: endpoint OTLP gRPC (usado pelo módulo do Nginx)
- Porta 4318: endpoint OTLP HTTP (usado para os traces de demonstração)
Baixe o dataset de exemplo
Baixe o arquivo de traces de exemplo e atualize os timestamps para o horário atual:
# Download dos traces
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/nginx-traces-sample.jsonO dataset inclui:
- 1.000 trace spans com tempos realistas
- 9 endpoints diferentes com padrões de tráfego variados
- ~93% de taxa de sucesso (200), ~3% de erros do cliente (404), ~4% de erros do servidor (500)
- Latências de 10ms a 800ms
- Padrões de tráfego originais preservados e deslocados para o horário atual
Envie traces para o ClickStack
Defina sua API key como uma variável de ambiente (se ainda não estiver definida):
export CLICKSTACK_API_KEY=your-api-key-hereObtenha sua API key:
- Abra o HyperDX na URL do seu ClickStack
- Vá para Settings → API Keys
- Copie sua API key de ingestão
Em seguida, envie os traces para o ClickStack:
curl -X POST http://localhost:4318/v1/traces \
-H "Content-Type: application/json" \
-H "Authorization: $CLICKSTACK_API_KEY" \
-d @nginx-traces-sample.jsonVocê deverá ver uma resposta como {"partialSuccess":{}}, indicando que os traces foram enviados com sucesso. Todos os 1.000 traces serão ingeridos pelo ClickStack.
Verifique os traces no HyperDX
- Abra o HyperDX e faça login na sua conta (talvez seja necessário criar uma conta primeiro)
- Vá para a visualização de Busca e defina a source como
Traces - Defina o intervalo de tempo como 2025-10-25 13:00:00 - 2025-10-28 13:00:00
Veja o que deve aparecer na sua visualização de Busca:

Dashboards e visualização
Para ajudar você a começar a monitorar traces com o ClickStack, fornecemos visualizações essenciais para dados de traces.
Baixar a configuração do dashboard
Importe o dashboard pré-configurado
- Abra o HyperDX e navegue até a seção Dashboards.
- Clique em "Import Dashboard" no canto superior direito, no menu de reticências.

- Faça upload do arquivo nginx-trace-dashboard.json e clique em Finish Import.

O dashboard será criado com todas as visualizações pré-configuradas.

Solução de problemas
Nenhum trace é exibido no HyperDX
Verifique se o módulo nginx está carregado:
nginx -V 2>&1 | grep otelVocê deverá ver referências ao módulo OpenTelemetry.
Verifique a conexão de rede:
telnet <clickstack-host> 4317Isso deve se conectar com sucesso ao endpoint OTLP gRPC.
Verifique se a API key está configurada:
echo $CLICKSTACK_API_KEYDeve exibir sua API key (não deve estar vazia).
Verifique os logs de erro do nginx:
# Para Docker
docker logs <nginx-container> 2>&1 | grep -i otel
# Para systemd
sudo tail -f /var/log/nginx/error.log | grep -i otelProcure por erros relacionados ao OpenTelemetry.
Verifique se o nginx está recebendo requisições:
# Verifique os logs de acesso para confirmar o tráfego
tail -f /var/log/nginx/access.logPró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 API, eventos de segurança)
Colocando em produção
Este guia envia traces diretamente do módulo OpenTelemetry do Nginx para o endpoint OTLP do ClickStack. Para implantações em produção, recomendamos executar seu próprio OTel collector como gateway para oferecer processamento em lote e resiliência. Consulte Enviando dados do OpenTelemetry para ver uma configuração de produção.