En resumenRecopila y visualiza los logs de acceso de Nginx (formato JSON) en ClickStack usando el receiver
filelog de OTel. Incluye un conjunto de datos de demostración y un dashboard preconfigurado.Integración con una instalación existente de Nginx
Requisitos previos
- Una instancia de ClickStack en ejecución
- Una instalación existente de Nginx
- Acceso para modificar los archivos de configuración de Nginx
Configurar el log format de Nginx
Primero, configure Nginx para que genere logs en formato JSON y así facilitar el parsing. Añada esta definición de log format a sunginx.conf:El archivo nginx.conf suele encontrarse en:- Linux (apt/yum):
/etc/nginx/nginx.conf - macOS (Homebrew):
/usr/local/etc/nginx/nginx.confo/opt/homebrew/etc/nginx/nginx.conf - Docker: La configuración suele montarse como un volumen
http:Crear una configuración personalizada del OTel collector
ClickStack le permite ampliar la configuración base de OpenTelemetry Collector montando un archivo de configuración personalizado y definiendo una variable de entorno. La configuración personalizada se combina con la configuración base administrada por HyperDX mediante OpAMP.Cree un archivo llamado nginx-monitoring.yaml con la siguiente configuración:- Lee los logs de Nginx desde sus ubicaciones estándar
- Analiza entradas de log en JSON
- Extrae y conserva las marcas de tiempo originales de los logs
- Añade el atributo source: Nginx para filtrar en HyperDX
- Envía los logs al exporter de ClickHouse mediante una canalización dedicada
- En la configuración personalizada, solo defines nuevos receiver y canalizaciones
- Los processors (memory_limiter, transform, batch) y exporters (clickhouse) ya están definidos en la configuración base de ClickStack; solo tienes que referenciarlos por nombre
- El operador time_parser extrae las marcas de tiempo del campo time_local de Nginx para conservar la hora original de los logs
- Las canalizaciones envían los datos desde tus receiver al exporter de ClickHouse a través de los processors existentes
Configura ClickStack para cargar una configuración personalizada
Para habilitar una configuración personalizada del collector en tu despliegue actual de ClickStack, debes:- Montar el archivo de configuración personalizada en /etc/otelcol-contrib/custom.config.yaml
- Establecer la variable de entorno CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml
- Montar los directorios de logs de Nginx para que el collector pueda leerlos
Opción 1: Docker Compose
Actualiza la configuración de despliegue de ClickStack:Opción 2: Docker Run (imagen todo en uno)
Si utiliza la imagen todo en uno con docker run:Asegúrese de que el colector de ClickStack tenga los permisos adecuados para leer los archivos de registro de nginx. En producción, use montajes de solo lectura (:ro) y siga el principio de mínimo privilegio.
Verificar logs en HyperDX
Una vez configurado, inicia sesión en HyperDX y verifica que se estén recibiendo logs:- Ve a la vista de búsqueda
- Configura la fuente en Logs y comprueba que aparezcan entradas de registro con campos como request, request_time, upstream_response_time, etc.
Conjunto de datos de demostración
Descargar el conjunto de datos de ejemplo
- Entradas de log con patrones de tráfico realistas
- Varios endpoints y métodos HTTP
- Una combinación de solicitudes correctas y errores
- Tiempos de respuesta y recuentos de bytes realistas
Crear la configuración de prueba del collector
Cree un archivo llamadonginx-demo.yaml con la siguiente configuración:Ejecutar ClickStack con la configuración de demostración
Ejecute ClickStack con los logs y la configuración de demostración:Verificar los logs en HyperDX
Una vez que ClickStack esté en ejecución:- Abra HyperDX e inicie sesión en su cuenta (puede que primero tenga que crear una cuenta)
- Vaya a la Search view y establezca
Logscomo source - Establezca el intervalo de tiempo en 2025-10-19 11:00:00 - 2025-10-22 11:00:00
Visualización de la zona horariaHyperDX muestra los timestamps en la zona horaria local de su navegador. Los datos de demostración abarcan de 2025-10-20 11:00:00 a 2025-10-21 11:00:00 UTC. El amplio intervalo de tiempo garantiza que verá los logs de demostración independientemente de su ubicación. Una vez que vea los logs, puede reducir el intervalo a un período de 24 horas para obtener visualizaciones más claras.
Dashboards y visualización
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 tres puntos.
- Sube el archivo nginx-logs-dashboard.json y haz clic en “Finish import”.
El dashboard se creará con todas las visualizaciones preconfiguradas
Para el conjunto de datos de demostración, establece el intervalo de tiempo en 2025-10-20 11:00:00 - 2025-10-21 11:00:00 (UTC) (ajústalo según tu zona horaria local). El dashboard importado no tendrá ningún intervalo de tiempo especificado de forma predeterminada.
Resolución de problemas
La configuración personalizada no carga
- Verifique que la variable de entorno CUSTOM_OTELCOL_CONFIG_FILE esté configurada correctamente
- Compruebe que el archivo de configuración personalizado esté montado en /etc/otelcol-contrib/custom.config.yaml
- Vea el contenido de la configuración personalizada para comprobar que se puede leer
No aparecen logs en HyperDX
- Asegúrate de que nginx esté escribiendo logs en formato JSON
- Verifique que el collector pueda leer los logs
- Verifica que la configuración efectiva incluya el receiver filelog
- Revise si hay errores en los logs del collector
Siguientes 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 APIs, eventos de seguridad)