Integración con una instalación existente de Nginx
Esta sección explica cómo añadir tracing distribuido a tu instalación existente de Nginx instalando el módulo de OpenTelemetry y configurándolo para enviar trazas a ClickStack. Si quieres probar la integración antes de configurar tu propio entorno, puedes hacerlo con nuestra configuración preconfigurada y datos de ejemplo en la siguiente sección.
Requisitos previos
- Instancia de ClickStack en ejecución con endpoints OTLP accesibles (puertos 4317/4318)
- Instalación existente de Nginx (versión 1.18 o superior)
- Acceso root o sudo para modificar la configuración de Nginx
- Nombre de host o dirección IP de la instancia de ClickStack
Instalar el módulo OpenTelemetry para Nginx
La forma más sencilla de añadir tracing a Nginx es usar la imagen oficial de Nginx con soporte integrado para OpenTelemetry.
Usar la imagen nginx:otel
Sustituye tu imagen actual de Nginx por la versión con OpenTelemetry habilitado:
# En tu docker-compose.yml o Dockerfile
image: nginx:1.27-otelEsta imagen incluye ngx_otel_module.so preinstalado y listo para usar.
Configurar Nginx para enviar trazas a ClickStack
Añade la configuración de OpenTelemetry a tu archivo nginx.conf. Esta configuración carga el módulo y envía las trazas al endpoint OTLP de ClickStack.
Primero, obtén tu API key:
- Abre HyperDX en la URL de tu ClickStack
- Ve a Settings → API Keys
- Copia tu API key de ingesta
- Defínela como variable de entorno:
export CLICKSTACK_API_KEY=your-api-key-here
Añade esto a tu nginx.conf:
load_module modules/ngx_otel_module.so;
events {
worker_connections 1024;
}
http {
# Configuración del exporter de OpenTelemetry
otel_exporter {
endpoint <clickstack-host>:4317;
header authorization ${CLICKSTACK_API_KEY};
}
# Nombre del servicio para identificar esta instancia de nginx
otel_service_name "nginx-proxy";
# Habilitar tracing
otel_trace on;
server {
listen 80;
location / {
# Habilitar tracing para esta ubicación
otel_trace_context propagate;
otel_span_name "$request_method $uri";
# Añadir detalles de la solicitud a las trazas
otel_span_attr http.status_code $status;
otel_span_attr http.request.method $request_method;
otel_span_attr http.route $uri;
# Tu configuración existente de proxy o aplicación
proxy_pass http://your-backend;
}
}
}Si ejecutas Nginx en Docker, pasa la variable de entorno al contenedor:
services:
nginx:
image: nginx:1.27-otel
environment:
- CLICKSTACK_API_KEY=${CLICKSTACK_API_KEY}
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:roSustituye <clickstack-host> por el nombre de host o la dirección IP de tu instancia de ClickStack.
Comprender la configuración
Qué se traza: Cada solicitud a Nginx crea un trace span que muestra:
- Método y ruta de la solicitud
- Código de estado HTTP
- Duración de la solicitud
- Marca de tiempo
Atributos del span:
Las directivas otel_span_attr añaden metadatos a cada trace, lo que te permite filtrar y analizar solicitudes en HyperDX por código de estado, método, ruta, etc.
Después de realizar estos cambios, prueba tu configuración de Nginx:
nginx -tSi la prueba es correcta, recarga Nginx:
# Para Docker
docker-compose restart nginx
# Para systemd
sudo systemctl reload nginxVerificar las trazas en HyperDX
Una vez configurado, inicia sesión en HyperDX y verifica que las trazas estén llegando. Deberías ver algo como esto. Si no ves trazas, intenta ajustar el rango de tiempo:

Conjunto de datos de demostración
Para los usuarios que quieran probar la integración de trazas de nginx antes de configurar sus sistemas de producción, proporcionamos un conjunto de datos de ejemplo con trazas de Nginx pregeneradas y patrones de tráfico realistas.
Inicia ClickStack
Si aún no tienes ClickStack en ejecución, inícialo con:
docker run --name clickstack-demo \
-p 8080:8080 -p 4317:4317 -p 4318:4318 \
clickhouse/clickstack-all-in-one:latestEspera unos 30 segundos a que ClickStack se inicialice por completo antes de continuar.
- Puerto 8080: interfaz web de HyperDX
- Puerto 4317: endpoint OTLP gRPC (utilizado por el módulo de nginx)
- Puerto 4318: endpoint OTLP HTTP (utilizado para las trazas de demostración)
Descarga el conjunto de datos de ejemplo
Descarga el archivo de trazas de ejemplo y actualiza las marcas de tiempo a la hora actual:
# Descargar las trazas
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/nginx-traces-sample.jsonEl conjunto de datos incluye:
- 1.000 trace spans con temporización realista
- 9 endpoints diferentes con patrones de tráfico variados
- ~93 % de tasa de éxito (200), ~3 % de errores de cliente (404), ~4 % de errores del servidor (500)
- Latencias de entre 10 ms y 800 ms
- Patrones de tráfico originales conservados y desplazados al momento actual
Envía trazas a ClickStack
Establece tu API key como variable de entorno (si aún no la has configurado):
export CLICKSTACK_API_KEY=your-api-key-hereObtén tu API key:
- Abre HyperDX en la URL de tu ClickStack
- Ve a Settings → API Keys
- Copia tu API key de ingesta
Luego, envía las trazas a ClickStack:
curl -X POST http://localhost:4318/v1/traces \
-H "Content-Type: application/json" \
-H "Authorization: $CLICKSTACK_API_KEY" \
-d @nginx-traces-sample.jsonDeberías ver una respuesta como {"partialSuccess":{}}, lo que indica que las trazas se enviaron correctamente. Las 1.000 trazas se ingestarán en ClickStack.
Verifica las trazas en HyperDX
- Abre HyperDX e inicia sesión en tu cuenta (puede que primero tengas que crear una cuenta)
- Ve a la vista Búsqueda y establece la fuente en
Traces - Establece el rango de tiempo en 2025-10-25 13:00:00 - 2025-10-28 13:00:00
Esto es lo que deberías ver en la vista de búsqueda:

Dashboards y visualización
Para ayudarte a empezar a monitorizar trazas con ClickStack, proporcionamos visualizaciones esenciales para los datos de trazas.
Descargar la configuración del dashboard
Importa el dashboard preconfigurado
- Abre HyperDX y ve a la sección Dashboards.
- Haz clic en "Import Dashboard" en la esquina superior derecha, en el menú de puntos suspensivos.

- Sube el archivo nginx-trace-dashboard.json y haz clic en "Finish Import".

El dashboard se creará con todas las visualizaciones ya configuradas.

Solución de problemas
No se muestran trazas en HyperDX
Verifique que el módulo de nginx esté cargado:
nginx -V 2>&1 | grep otelDeberías ver referencias al módulo de OpenTelemetry.
Comprueba la conexión de red:
telnet <clickstack-host> 4317Esto debería conectarse correctamente al endpoint de OTLP gRPC.
Verifique que la API key esté configurada:
echo $CLICKSTACK_API_KEYDebería mostrar tu API key (no vacía).
Revisa los logs de errores de nginx:
# Para Docker
docker logs <nginx-container> 2>&1 | grep -i otel
# Para systemd
sudo tail -f /var/log/nginx/error.log | grep -i otelBusque errores relacionados con OpenTelemetry.
Verifique que nginx esté recibiendo solicitudes:
# Verificar los logs de acceso para confirmar el tráfico
tail -f /var/log/nginx/access.logPróximos pasos
- Configura alertas para métricas críticas (tasas de error, umbrales de latencia)
- Crea dashboards adicionales para casos de uso específicos (monitorización de API, eventos de seguridad)
Pasar a producción
Esta guía envía trazas directamente desde el módulo OpenTelemetry de Nginx al endpoint de OTLP de ClickStack. Para implementaciones en producción, recomendamos ejecutar un OTel collector propio como gateway para disponer de procesamiento por lotes y resiliencia. Consulte Envío de datos de OpenTelemetry para la configuración de producción.