Resumen rápidoEsta guía muestra cómo ingestar logs de Cloudflare en ClickStack con ClickPipes. Cloudflare Logpush escribe logs en S3, y ClickPipes ingesta continuamente los archivos nuevos en ClickHouse. A diferencia de la mayoría de las guías de integración de ClickStack que usan el OpenTelemetry Collector, esta guía usa ClickPipes para extraer datos directamente de S3.Hay un dataset de demostración disponible si quieres explorar los dashboards antes de configurar la ingestión de producción.
Descripción general
- Analizar el tráfico en el edge, el rendimiento de la caché y los eventos de seguridad junto con el resto de tus datos de observabilidad
- Consultar logs con ClickHouse SQL
- Conservar los logs más allá del período de retención predeterminado de Cloudflare
Alternativa: ingestión HTTP directaCloudflare Logpush también permite enviar logs directamente a endpoints HTTP. Dado que Cloudflare exporta logs como JSON delimitado por saltos de línea (NDJSON) y ClickHouse acepta este formato de forma nativa mediante Sustituye
JSONEachRow, puedes apuntar Logpush directamente a la interfaz HTTP de ClickHouse Cloud usando el siguiente formato de URL del endpoint:YOUR_CLICKHOUSE_HOST por el hostname de tu instancia de ClickHouse Cloud y BASE64_CREDENTIALS por tus credenciales codificadas en Base64 (echo -n 'default:YOUR_PASSWORD' | base64).Esto es más sencillo de configurar (no requiere configuración de S3, SQS ni IAM), pero Cloudflare Logpush no puede recuperar datos históricos si la entrega falla, por lo que, si ClickHouse no está disponible durante un envío, esos logs se pierden de forma permanente.Integración con Cloudflare Logpush existente
Requisitos previos
- servicio de ClickHouse Cloud en ejecución (ClickPipes es una funcionalidad exclusiva de Cloud; no está disponible en ClickStack OSS)
- Cloudflare Logpush escribiendo logs activamente en un bucket de S3
- Nombre del bucket de S3 y la región donde Cloudflare escribe los logs
Configurar la autenticación de S3
ClickPipes necesita permiso para leer desde tu bucket de S3. Sigue la guía Acceso seguro a datos de S3 para configurar acceso basado en roles de IAM o acceso basado en credenciales.Para obtener información detallada sobre la autenticación de S3 y los permisos en ClickPipes, consulta la documentación de referencia de ClickPipes para S3.Crear trabajo de ClickPipes
- ClickHouse Cloud Console → Fuentes de datos → Create ClickPipe
- Fuente: Amazon S3
- Ruta de archivo de S3: La ruta del bucket de Cloudflare logs con un comodín para que coincida con los archivos. Si habilitaste subcarpetas diarias en Logpush, usa
**para que coincida en todos los subdirectorios:- Sin subcarpetas:
https://your-bucket.s3.us-east-1.amazonaws.com/logs/* - Subcarpetas diarias:
https://your-bucket.s3.us-east-1.amazonaws.com/logs/**/*
- Sin subcarpetas:
- Autenticación: Selecciona tu método de autenticación y proporciona las credenciales o el ARN del IAM role
- Activa Ingestión continua
- Orden: Orden lexicográfico
20250127/...), lo que sigue de forma natural un orden lexicográfico. ClickPipes sondea en busca de archivos nuevos cada 30 segundos e ingiere cualquier archivo con un nombre mayor que el del último archivo procesado.Mapeo del esquema:Haz clic en Información de análisis. ClickPipes toma una muestra de tus archivos de logs y detecta automáticamente el esquema. Revisa las columnas asignadas y ajusta los tipos según sea necesario. Define una Clave de ordenación para la tabla de destino; para Cloudflare logs, una buena opción es (EdgeStartTimestamp, ClientCountry, EdgeResponseStatus).Haz clic en Completar configuración.Cuando se crea por primera vez, ClickPipes realiza una carga inicial de todos los archivos existentes en la ruta especificada antes de pasar al sondeo continuo. Si tu bucket contiene un gran volumen acumulado de Cloudflare logs, esta carga inicial puede tardar algún tiempo.
Configurar la fuente de datos de HyperDX
ClickPipes ingesta los logs de Cloudflare en una tabla plana con los nombres de campo nativos de Cloudflare. Para ver estos logs en HyperDX, configura una fuente de datos personalizada que asigne las columnas de Cloudflare a la vista de logs de HyperDX.- Abre HyperDX → Team Settings → Sources
- Haz clic en Add source y configura los siguientes campos. Haz clic en Configure Optional Fields para acceder a todos los campos:
| Ajuste | Valor |
|---|---|
| Name | Cloudflare Logs |
| Source Data Type | Log |
| Database | default |
| Table | cloudflare_http_logs |
| Timestamp Column | toDateTime(EdgeStartTimestamp / 1000000000) |
| Default Select | EdgeStartTimestamp, ClientRequestMethod, ClientRequestURI, EdgeResponseStatus, ClientCountry |
| Service Name Expression | 'cloudflare' |
| Log Level Expression | multiIf(EdgeResponseStatus >= 500, 'ERROR', EdgeResponseStatus >= 400, 'WARN', 'INFO') |
| Body Expression | concat(ClientRequestMethod, ' ', ClientRequestURI, ' ', toString(EdgeResponseStatus)) |
| Log Attributes Expression | map('http.method', ClientRequestMethod, 'http.status_code', toString(EdgeResponseStatus), 'http.url', ClientRequestURI, 'client.country', ClientCountry, 'client.ip', ClientIP, 'cache.status', CacheCacheStatus, 'bot.score', toString(BotScore), 'cloudflare.ray_id', RayID, 'cloudflare.colo', EdgeColoCode) |
| Resource Attributes Expression | map('cloudflare.zone', ClientRequestHost) |
| Implicit Column Expression | concat(ClientRequestMethod, ' ', ClientRequestURI) |
- Haz clic en Save Source
GET /api/v1/users 200, y todos los campos de Cloudflare están disponibles como atributos de búsqueda.Verifique los datos en HyperDX
Vaya a la vista Search y seleccione la fuente Cloudflare Logs. Configure el intervalo de tiempo para que abarque sus datos. Debería ver entradas de log con:- Resúmenes de solicitudes en la columna Body (p. ej.,
GET /api/v1/users 200) - Niveles de gravedad codificados por color según el estado HTTP (INFO para 2xx, WARN para 4xx, ERROR para 5xx)
- Atributos por los que se puede buscar, como
http.status_code,client.country,cache.statusybot.score
Dataset de demostración
Inicia ClickPipes con el dataset de demostración
- ClickHouse Cloud Console → Data Sources → Create ClickPipe
- Source: Amazon S3
- Authentication: Public
- S3 file path:
https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/cloudflare/cloudflare-http-logs.json - Haz clic en Incoming data
- Selecciona JSON como formato
- Haz clic en Parse information y revisa el esquema detectado
- Establece Table name como
cloudflare_http_logs - Haz clic en Complete Setup
Configura la fuente de datos de HyperDX
Sigue los pasos de configuración de la fuente de datos para crear una fuente de HyperDX que apunte a la tablacloudflare_http_logs. Si ya configuraste la fuente en la sección de integración de producción, este paso no es necesario.Verifica los datos de demostración
Visualización de la zona horariaHyperDX muestra las marcas de tiempo en la zona horaria local de tu navegador. Los datos de demostración abarcan 2026-02-24 00:00:00 - 2026-02-25 00:00:00 (UTC). El intervalo de tiempo amplio garantiza que verás los logs de demostración independientemente de tu ubicación. Una vez que los veas, puedes reducir el intervalo a un período de 24 horas para obtener visualizaciones más claras.
Dashboards y visualizaciones
la configuración del dashboard
Importar el dashboard
- HyperDX → Dashboards → Import Dashboard
- Cargue
cloudflare-logs-dashboard.json→ Finish Import
Ver el dashboard
Para el dataset de demostración, establezca el intervalo de tiempo en 2026-02-24 00:00:00 - 2026-02-25 00:00:00 (UTC) (ajústelo según su zona horaria local). El dashboard importado no tendrá un intervalo de tiempo especificado de forma predeterminada.
Solución de problemas
Datos que no aparecen en ClickHouse
Los logs no aparecen en HyperDX
- Verifica que exista una fuente para
cloudflare_http_logsen HyperDX → Team Settings → Sources - Asegúrate de que Timestamp Column esté configurada como
toDateTime(EdgeStartTimestamp / 1000000000)— los timestamps de Cloudflare están en nanosegundos y deben convertirse - Verifica que el rango de tiempo en HyperDX abarque los datos. Para el conjunto de datos de demostración, usa 2026-02-23 00:00:00 - 2026-02-26 00:00:00
Próximos pasos
- Configura alertas para eventos de seguridad (bloqueos del WAF, picos de tráfico de bots, umbrales de tasa de errores)
- Optimiza las políticas de retención en función del volumen de datos
- Crea dashboards adicionales para casos de uso específicos (rendimiento de la API, optimización de caché, análisis geográfico del tráfico)
Pasar a producción
**/* en el patrón de ruta de ClickPipes para que coincida con todos los subdirectorios.
Consulte la documentación de ClickPipes para S3 para ver opciones de configuración avanzadas, incluida la ingestión no ordenada basada en SQS para gestionar backfills y archivos fuera de orden.