Cloudflare

Información general

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

Log Collection: además de estas métricas, Cloudflare permite a los clientes enviar logs directamente a Datadog mediante Cloudflare Logpush. Estos logs detallados contienen metadatos generados por los productos de Cloudflare y son útiles para la depuración y la creación de 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 detección de amenazas lista para usar 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 Cloudflare, sigue la documentación del token de API 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 servicio de asistencia 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 utilizando el cuadro de la integración Cloudflare de Datadog, introduciendo el token de API creado anteriormente.

Configuración

  1. Ve a la pestaña Configurar en el cuadro de la integración Cloudflare de Datadog
  2. Introduce tu dirección de correo electrónico y el token de API creado anteriormente para las cuentas que quieres monitorizar. Puedes encontrar tu token de API Cloudflare en tu cuenta de Cloudflare, en My Profile > API Tokens (Mi perfil** > **Tokens de API). Ten en cuenta que las claves de API Cloudflare ahora se consideran métodos de autenticación legacy. 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. Ve a los 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>: Endpoint de entrada de logs HTTP de Datadog, que puede ser cualquiera de los que se indican a continuación. Puedes encontrar la diferencia en la referencia de la API 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: Categoría de logs que quieres recibir. Para obtener una lista de los conjuntos de datos admitidos, consulta los campos de log de Cloudflare.
    • logpull_options (opcional): Para configurar campos, frecuencias de muestreo y formatos de marcas de tiempo, consulta las opciones de API Logpush. Datadog exige 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)
Total request count
Shown as request
cloudflare.requests.cached
(count)
Cached requests count
Shown as request
cloudflare.requests.uncached
(count)
Uncached requests count
Shown as request
cloudflare.requests.ssl.encrypted
(count)
SSL encrypted requests count
Shown as request
cloudflare.requests.ssl.unencrypted
(count)
Unencrypted requests count
Shown as request
cloudflare.requests.country
(count)
Request count, tagged by IATA country code
Shown as request
cloudflare.requests.status
(count)
Request count, tagged by HTTP response code
Shown as request
cloudflare.requests.content_type
(count)
Request count, tagged by Content-Type
Shown as request
cloudflare.requests.ip_class
(count)
Request count, tagged by IP class
Shown as request
cloudflare.requests.cross_zone_sub_requests.avg
(gauge)
The proportion of requests that were inititiated by a Cloudflare Worker on another zone
Shown as request
cloudflare.requests.edge_dns_response_time.avg
(gauge)
Average edge dns response time in milliseconds
Shown as millisecond
cloudflare.requests.edge_time_to_first_byte.avg
(gauge)
Average time to first byte in milliseconds
Shown as millisecond
cloudflare.requests.origin_response_duration.avg
(gauge)
The average originResponseDuration in milliseconds excluding 0 values (i.e. cached ones)
Shown as millisecond
cloudflare.bandwidth.all
(count)
Total bandwidth
Shown as byte
cloudflare.bandwidth.cached
(count)
Cached bandwidth
Shown as byte
cloudflare.bandwidth.uncached
(count)
Uncached bandwidth
Shown as byte
cloudflare.bandwidth.ssl.encrypted
(count)
SSL encrypted bandwidth
Shown as byte
cloudflare.bandwidth.ssl.unencrypted
(count)
Unencrypted bandwidth
Shown as byte
cloudflare.bandwidth.country
(count)
Bandwidth tagged by IATA country code
Shown as byte
cloudflare.bandwidth.content_type
(count)
Bandwidth tagged by Content-Type
Shown as byte
cloudflare.threats.all
(count)
Total threats
Shown as operation
cloudflare.threats.type
(count)
Threats tagged by type
Shown as operation
cloudflare.threats.country
(count)
Threats tagged by IATA country code
Shown as operation
cloudflare.pageviews.all
(count)
Total page views
Shown as page
cloudflare.pageviews.search_engine
(count)
Page views tagged by search engine
Shown as page
cloudflare.uniques.all
(count)
Unique visitors count
Shown as connection
cloudflare.dns.query.all
(count)
DNS query count
Shown as request
cloudflare.dns.query.uncached
(count)
Uncached DNS query count
Shown as request
cloudflare.dns.query.stale
(count)
Stale DNS query count
Shown as request
cloudflare.dns.response_time.avg
(gauge)
DNS query average response time
Shown as millisecond
cloudflare.dns.response_time.median
(gauge)
DNS query median response time
Shown as millisecond
cloudflare.dns.response_time.90p
(gauge)
DNS query response time to the 90th percentile
Shown as millisecond
cloudflare.dns.response_time.99p
(gauge)
DNS query response time to the 99th percentile
Shown as millisecond
cloudflare.workers.requests.all
(count)
The request count to the worker script (metrics may not show without enabled API Key permissions)
Shown as request
cloudflare.workers.requests.errors
(count)
The error count to the worker script (metrics may not show without enabled API Key permissions)
Shown as request
cloudflare.workers.requests.subrequests
(count)
The subrequest count to the worker script (metrics may not show without enabled API Key permissions)
Shown as request
cloudflare.workers.response_time.75p
(gauge)
The worker response time to the 75th percentile (metrics may not show without enabled API Key permissions)
Shown as microsecond
cloudflare.workers.response_time.99p
(gauge)
The worker response time to the 99th percentile (metrics may not show without enabled API Key permissions)
Shown as microsecond
cloudflare.load_balancer.pool.round_trip_time.average
(gauge)
The average round trip time to reach the load balancer pool
Shown as millisecond
cloudflare.load_balancer.pool.health.status
(count)
The load balancer pool health status
Shown as request

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 servicios

La integración Cloudflare no incluye checks de servicios.

Solucionar problemas

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

PREVIEWING: drodriguezhdez/add_public_docs_log_summarization