Cloudflare

Versión de la integración1.2.2

Información general

Integra con Cloudflare para obtener las métricas de tu zona, incluido el tráfico web, las consultas DNS y la información sobre amenazas. La integración se basa en la API de análisis de Cloudflare. Encuentre más información sobre qué recursos se corresponden con qué métricas en nuestra documentación.

Recopilación de logs: además de estas métricas, Cloudflare permite a los clientes enviar logs directamente a Datadog utilizando Cloudflare Logpush. Estos logs detallados contienen metadatos generados por los productos de Cloudflare y son útiles para depurar y crear análisis, especialmente cuando se combinan con logs de otras fuentes. Habilita la recopilación de logs de Cloudflare en combinación con estas métricas para obtener una visibilidad completa de tu entorno de Cloudflare.

El dashboard listo para usar mejora la seguridad y el rendimiento de tus aplicaciones. Este panel único te brinda visibilidad de:

  • amenazas a la seguridad
  • volumen de solicitudes HTTP y tasas de error
  • balanceo de carga, incluido el tiempo de ida y vuelta y cualquier cambio en el flujo de tráfico
  • problemas de rendimiento en los scripts de workers

Con logs enriquecidos y métricas detalladas que te brindan una visión profunda de tu infraestructura de Cloudflare, puedes crear el contexto que necesitas para resolver problemas.

La integración funciona con Datadog Cloud SIEM para proporcionar una detección de amenazas predeterminada para

  • viaje imposible
  • errores de configuración peligrosos
  • ataques DDoS

Mitiga las amenazas de seguridad más rápidamente con los planes de automatización de flujo de trabajo incluidos, como bloquear una dirección IP o crear un caso en Datadog.

Configuración

Antes de empezar, necesitas una cuenta de Datadog, con un token de API y acceso a Cloudflare Logpush, que requiere un plan de cuenta Enterprise.

Para crear un token de API de Cloudflare, sigue la documentación de token de API de Cloudflare y asegúrate de que tienes los permisos necesarios que se indican a continuación para cada cuenta. Si tienes problemas de autenticación con tu token, ponte en contacto con el soporte de Cloudflare.

Permisos

ContextoPermisoEstado
CuentaAnálisis de cuentasLeer
CuentaConfiguración de la cuentaLeer
CuentaScripts de workersLeer
CuentaCola de workersLeer
ZonaAnálisisLeer
ZonaBalanceadores de cargaLeer
ZonaRutas de los workersLeer
ZonaZonaLeer

Instalación

Instala la integración con el [cuadro de integración de Cloudflare] de Datadog (https://app.datadoghq.com/integrations/cloudflare) introduciendo el token de API que creaste anteriormente.

Configuración

  1. Ve a la pestaña Configure (Configurar) en el [cuadro de integración de Cloudflare] de Datadog (https://app.datadoghq.com/integrations/cloudflare).
  2. Introduce tu dirección de correo electrónico y el token de API creado anteriormente para las cuentas que deseas monitorizar. Puedes encontrar tu token de API de Cloudflare en tu cuenta de Cloudflare en My Profile > API Tokens (Mi perfil > Token de API). Ten en cuenta que las claves de API de Cloudflare se consideran ahora métodos de autenticación heredados. Si estás utilizando una clave de API, te recomendamos que la sustituyas por un token de API.
  3. Proporciona un nombre para la cuenta. Este nombre es arbitrario y se utilizará en la etiqueta (tag) account en tus métricas.

Recopilación de logs

Cloudflare permite a los clientes enviar logs directamente a Datadog mediante Cloudflare Logpush. Puedes gestionar el trabajo de Logpush con la API Cloudflare o directamente en tu dashboard de Cloudflare.

Si instalas el pipeline de la integración Cloudflare, se reasignarán automáticamente determinados atributos. Para ver los atributos reasignados:

  1. Navega hasta Pipelines de logs.
  2. Haz clic en Browse Pipeline Library (Consultar la biblioteca del pipeline) en la esquina superior derecha.
  3. Introduce Cloudflare en la barra de búsqueda.
  4. Haz clic en Cloudflare para ver la lista de reasignadores y otros procesadores instalados.

API Cloudflare

  1. Crea un trabajo de Logpush realizando una solicitud POST al endpoint de trabajos de Logpush. Incluye los siguientes campos:

    • name (opcional): Utiliza tu nombre de dominio como nombre del trabajo.
    • destination_conf: Destino de logs que consta de los siguientes parámetros:
      • <DATADOG_ENDPOINT_URL>: el endpoint de admisión de logs HTTP de Datadog, que puede ser cualquiera de los siguientes. Puedes encontrar la diferencia en la referencia de API de Datadog.
        • v1: http-intake.logs./v1/input
        • v2 (más reciente): http-intake.logs./api/v2/logs
      • <DATADOG_API_KEY>: Tu clave de API Datadog.
      • ddsource: Configurar como cloudflare.
      • service (opcional): Especifica el nombre del servicio.
      • host (opcional): Especifica el nombre del host.
      • ddtags (opcional): Especifica etiquetas.
    • dataset: la categoría de logs que deseas recibir. Consulta los campos de logs de Cloudflare para obtener una lista de los conjuntos de datos admitidos.
    • logpull_options (opcional): para configurar los campos, la frecuencia de muestreo y el formato de la marca de tiempo, consulta las opciones de la API de Logpush. Datadog ordena el uso del formato RFC 3339 para las marcas de tiempo de Cloudflare, que es la opción predeterminada utilizada por Cloudflare.

    Ejemplo de solicitud:

    curl -s -X POST 'https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/logpush/jobs' \
    --header 'X-Auth-Key: <CLOUDFLARE_AUTH_KEY>' \
    --header 'X-Auth-Email: <CLOUDFLARE_AUTH_EMAIL>' \
    --header 'Content-Type: application/json' \
    --data-raw '{
       "name": "<NAME>",
       "destination_conf": "datadog://<DATADOG_ENDPOINT_URL>?header_DD-API-KEY=<DATADOG_API_KEY>&ddsource=cloudflare&service=cloudflare&ddtags=env:dev",
       "logpull_options": "fields=RayID,EdgeStartTimestamp&timestamps=rfc3339",
       "dataset": "http_requests"
    }'
    

    Ejemplo de respuesta:

    {
     "errors": [],
     "messages": [],
     "result": {
       "id": 100,
       "dataset": "http_requests",
       "enabled": false,
       "name": "<DOMAIN_NAME>",
       "logpull_options": "fields=RayID,EdgeStartTimestamp&timestamps=rfc3339",
       "destination_conf": "datadog://http-intake.logs./v1/input?header_DD-API-KEY=<DD-API-KEY>&ddsource=cloudflare&service=cloudflare&ddtags=env:dev",
       "last_complete": null,
       "last_error": null,
       "error_message": null
     },
     "success": true
    }
    

    Fíjate en el valor de id. En el ejemplo anterior, es 100.

  2. Habilita el trabajo. Utiliza el ID de trabajo devuelto en la respuesta y envía {"enabled": true} en el cuerpo de la solicitud.

    Ejemplo de solicitud:

    curl -s -X PUT \
    https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/logpush/jobs/<JOB_ID> -d'{"enabled":true}' | jq .
    

    Ejemplo de respuesta:

    {
      "errors": [],
      "messages": [],
      "result": {
        "id": 100,
        "dataset": "http_requests",
        "enabled": true,
        "name": "<DOMAIN_NAME>",
        "logpull_options": "fields=RayID,EdgeStartTimestamp&timestamps=rfc3339",
        "destination_conf": "datadog://?header_DD-API-KEY=<DATADOG-API-KEY>",
        "last_complete": null,
        "last_error": null,
        "error_message": null
      },
      "success": true
    }
    

Dashboard de Cloudflare

  1. Una vez que hayas conectado un servicio con la sección Logpush del dashboard de Cloudflare, selecciona el conjunto de datos, los campos de datos y, a continuación, en seleccionar destino, elige Datadog.

  2. En Introducir información del destino, introduce el endpoint de la URL de Datadog:

    http-intake.logs./api/v2/logs?ddsource=cloudflare
    

    Nota: ddsource=cloudflare es obligatorio. Para diferenciar entre logs, también puedes añadir los parámetros opcionales de service, host y ddtags.

    Ejemplo:

    http-intake.logs./api/v2/logs?service=<SERVICE>&host=<HOST>&ddsource=cloudflare
    
  3. Introduce la clave de API Datadog que utilizaste para configurar el cuadro de la integración Cloudflare en Datadog.

  4. Después de validar el acceso, deberías ver “Listo para enviar” en Probar propiedad. Haz clic en Push para finalizar.

Datos recopilados

Métricas

cloudflare.requests.all
(count)
Recuento total de solicitudes
Se muestra como solicitud
cloudflare.requests.cached
(count)
Recuento de solicitudes en caché
Se muestra como solicitud
cloudflare.requests.uncached
(count)
Recuento de solicitudes no almacenadas
Se muestra como solicitud
cloudflare.requests.ssl.encrypted
(count)
Recuento de solicitudes encriptadas SSL
Se muestra como solicitud
cloudflare.requests.ssl.unencrypted
(count)
Recuento de solicitudes no cifradas
Se muestra como solicitud
cloudflare.requests.country
(count)
Recuento de solicitudes, etiquetado por código de país IATA
Se muestra como solicitud
cloudflare.requests.status
(count)
Recuento de solicitudes, etiquetado por código de respuesta HTTP
Se muestra como solicitud
cloudflare.requests.content_type
(count)
Recuento de solicitudes, etiquetado por tipo de contenido
Se muestra como solicitud
cloudflare.requests.ip_class
(count)
Recuento de solicitudes, etiquetado por clase IP
Se muestra como solicitud
cloudflare.requests.cross_zone_sub_requests.avg
(gauge)
La proporción de solicitudes que fueron iniciadas por un worker de Cloudflare en otra zona
Se muestra como solicitud
cloudflare.requests.edge_dns_response_time.avg
(gauge)
Tiempo medio de respuesta dns edge en milisegundos
Se muestra en milisegundos
cloudflare.requests.edge_time_to_first_byte.avg
(gauge)
Tiempo medio hasta el primer byte en milisegundos
Se muestra en milisegundos
cloudflare.requests.origin_response_duration.avg
(gauge)
La media de originResponseDuration en milisegundos excluyendo los valores 0 (es decir, los almacenados en caché)
Se muestra en milisegundos
cloudflare.bandwidth.all
(count)
Ancho de banda total
Se muestra como byte
cloudflare.bandwidth.cached
(count)
Ancho de banda en caché
Se muestra como byte
cloudflare.bandwidth.uncached
(count)
Ancho de banda sin caché
Se muestra como byte
cloudflare.bandwidth.ssl.encrypted
(count)
Ancho de banda cifrado SSL
Se muestra como byte
cloudflare.bandwidth.ssl.unencrypted
(count)
Ancho de banda sin cifrar
Se muestra como byte
cloudflare.bandwidth.country
(count)
Ancho de banda etiquetado por código de país IATA
Se muestra como byte
cloudflare.bandwidth.content_type
(count)
Ancho de banda etiquetado por tipo de contenido
Se muestra como byte
cloudflare.threats.all
(count)
Total de amenazas
Se muestra como operación
cloudflare.threats.type
(count)
Amenazas etiquetadas por tipo
Se muestra como operación
cloudflare.threats.country
(count)
Amenazas etiquetadas con el código de país de la IATA
Se muestra como operación
cloudflare.pageviews.all
(count)
Total de vistas de la página
Se muestra como página
cloudflare.pageviews.search_engine
(count)
Vistas de la página etiquetadas por motor de búsqueda
Se muestra como página
cloudflare.uniques.all
(count)
Recuento de visitantes únicos
Se muestra como conexión
cloudflare.dns.query.all
(count)
Recuento de consultas DNS
Se muestra como solicitud
cloudflare.dns.query.uncached
(count)
Recuento de consultas DNS no almacenadas
Se muestra como solicitud
cloudflare.dns.query.stale
(count)
Recuento de consultas DNS antiguas
Se muestra como solicitud
cloudflare.dns.response_time.avg
(gauge)
Tiempo medio de respuesta a una consulta DNS
Se muestra en milisegundos
cloudflare.dns.response_time.median
(gauge)
Tiempo medio de respuesta de una consulta DNS
Se muestra en milisegundos
cloudflare.dns.response_time.90p
(gauge)
Tiempo de respuesta de la consulta DNS al percentil 90
Se muestra en milisegundos
cloudflare.dns.response_time.99p
(gauge)
Tiempo de respuesta de la consulta DNS al percentil 99
Se muestra en milisegundos
cloudflare.workers.requests.all
(count)
El recuento de solicitudes al script del worker (las métricas pueden no mostrarse sin permisos de clave de API activados)
Se muestra como solicitud
cloudflare.workers.requests.errors
(count)
El recuento de errores para el script del worker (las métricas pueden no mostrarse sin permisos de clave de API habilitados)
Se muestra como solicitud
cloudflare.workers.requests.subrequests
(count)
El recuento de subsolicitudes al script del worker (las métricas pueden no mostrarse sin permisos de clave de API habilitados)
Se muestra como solicitud
cloudflare.workers.response_time.75p
(gauge)
El tiempo de respuesta del worker al percentil 75 (es posible que las métricas no se muestren sin permisos de clave de API activados)
Se muestra en microsegundos
cloudflare.workers.response_time.99p
(gauge)
El tiempo de respuesta del worker al percentil 99 (es posible que las métricas no se muestren sin permisos de clave de API activados)
Se muestra en microsegundos
cloudflare.load_balancer.pool.round_trip_time.average
(gauge)
El tiempo medio de ida y vuelta para llegar al grupo de equilibradores de carga
Se muestra en milisegundos
cloudflare.load_balancer.pool.health.status
(count)
El estado del equilibrador de carga
Se muestra como solicitud

Categorías de métricas

En la siguiente tabla se describen los tipos de métricas recopiladas y sus prefijos de métricas asociados.

TipoDescripciónPrefijos de métricas recopilados
Análisis webMétricas relacionadas con el tráfico web y el rendimiento.cloudflare.requests.all
cloudflare.requests.cached
cloudflare.requests.uncached
cloudflare.requests.ssl.encrypted
cloudflare.requests.ssl.unencrypted
cloudflare.requests.country
cloudflare.requests.status
cloudflare.requests.content_type
cloudflare.requests.ip_class
cloudflare.bandwidth.all
cloudflare.bandwidth.cached
cloudflare.bandwidth.uncached
cloudflare.bandwidth.ssl.encrypted
cloudflare.bandwidth.ssl.unencrypted
cloudflare.bandwidth.country
cloudflare.bandwidth.content_type
cloudflare.threats.all
cloudflare.threats.type
cloudflare.threats.country
cloudflare.pageviews.all
cloudflare.pageviews.search_engine
cloudflare.uniques.all
cloudflare.requests.cross_zone_sub_requests.avg
cloudflare.requests.edge_dns_response_time.avg
cloudflare.requests.edge_time_to_first_byte.avg
cloudflare.requests.origin_response_duration.avg
DNSMétricas relacionadas con las consultas DNS y los tiempos de respuesta.cloudflare.dns.query.all
cloudflare.dns.query.uncached
cloudflare.dns.query.stale
cloudflare.dns.response_time.avg
cloudflare.dns.response_time.median
cloudflare.dns.response_time.90p
cloudflare.dns.response_time.99p
Balanceador de cargaMétricas relacionadas con grupos de balanceo de carga.cloudflare.load_balancer.pool.round_trip_time.average
cloudflare.load_balancer.pool.health.status
Script del workerMétricas relacionadas con scripts de workers de Cloudflare.cloudflare.workers.requests.all
cloudflare.workers.requests.errors
cloudflare.workers.requests.subrequests
cloudflare.workers.response_time.75p
cloudflare.workers.response_time.99p

Eventos

La integración Cloudflare no incluye eventos.

Checks de servicio

La integración Cloudflare no incluye checks de servicios.

Solucionar problemas

¿Necesitas ayuda? Ponte en contacto con el servicio de asistencia de Datadog.