Pular para o conteúdo principal
ResumoEste guia mostra como fazer a ingestão de logs da Cloudflare no ClickStack usando o ClickPipes. O Cloudflare Logpush grava logs no S3, e o ClickPipes ingere continuamente novos arquivos no ClickHouse. Diferentemente da maioria dos guias de integração do ClickStack que usam o OpenTelemetry Collector, este guia usa ClickPipes para extrair dados diretamente do S3.Há um dataset de demonstração disponível caso você queira explorar os dashboards antes de configurar a ingestão em produção.

Visão geral

O Logpush da Cloudflare exporta logs de requisições HTTP para destinos como o Amazon S3. Encaminhar esses logs para o ClickStack permite:
  • Analisar o tráfego de borda, o desempenho do cache e os eventos de segurança junto com seus outros dados de observabilidade
  • Consultar os logs usando ClickHouse SQL
  • Reter logs além do período de retenção padrão da Cloudflare
Este guia usa ClickPipes para fazer a ingestão contínua de arquivos de log da Cloudflare do S3 para o ClickHouse. O S3 atua como um buffer durável entre a Cloudflare e o ClickHouse, fornecendo semântica exactly-once e capacidade de reprocessamento.
Alternativa: ingestão direta via HTTPO Cloudflare Logpush também oferece suporte ao envio de logs diretamente para endpoints HTTP. Como a Cloudflare exporta logs como JSON delimitado por novas linhas (NDJSON) e o ClickHouse aceita esse formato nativamente por meio de JSONEachRow, você pode apontar o Logpush diretamente para a interface HTTP do seu ClickHouse Cloud usando o seguinte formato de endpoint URL:
https://YOUR_CLICKHOUSE_HOST:8443/?query=INSERT+INTO+cloudflare_http_logs+FORMAT+JSONEachRow&header_Authorization=Basic+BASE64_CREDENTIALS
Substitua YOUR_CLICKHOUSE_HOST pelo hostname do seu ClickHouse Cloud e BASE64_CREDENTIALS pelas suas credenciais codificadas em Base64 (echo -n 'default:YOUR_PASSWORD' | base64).Essa opção é mais simples de configurar (não requer configuração de S3, SQS nem IAM), mas o Cloudflare Logpush não consegue fazer backfill de dados históricos se a entrega falhar — portanto, se o ClickHouse ficar indisponível durante um envio, esses logs serão perdidos permanentemente.

Integração com o Cloudflare Logpush já existente

Esta seção pressupõe que o Cloudflare Logpush esteja configurado para exportar logs para o S3. Caso contrário, siga primeiro o guia de configuração do AWS S3 da Cloudflare.

Pré-requisitos

  • serviço do ClickHouse Cloud em execução (ClickPipes é um recurso exclusivo do Cloud — não disponível no ClickStack OSS)
  • Cloudflare Logpush gravando logs ativamente em um bucket do S3
  • Nome do bucket do S3 e da região onde a Cloudflare grava os logs
1

Configurar a autenticação para o S3

O ClickPipes precisa de permissão para ler no seu bucket do S3. Siga o guia Acessar dados do S3 com segurança para configurar acesso baseado em IAM role ou acesso baseado em credenciais.Para conferir todos os detalhes sobre autenticação e permissões do S3 no ClickPipes, consulte a documentação de referência do S3 ClickPipes.
2

Criar job no ClickPipes

  1. ClickHouse Cloud Console → Fontes de dadosCriar ClickPipe
  2. Origem: Amazon S3
Conexão:
  • Caminho do arquivo no S3: O caminho do bucket dos seus logs do Cloudflare com um curinga para corresponder aos arquivos. Se você ativou subpastas diárias no Logpush, use ** para corresponder em todos os subdiretórios:
    • Sem subpastas: https://your-bucket.s3.us-east-1.amazonaws.com/logs/*
    • Subpastas diárias: https://your-bucket.s3.us-east-1.amazonaws.com/logs/**/*
  • Autenticação: Selecione o método de autenticação e forneça as credenciais ou o ARN da IAM Role
Configurações de ingestão:Clique em Dados de entrada e configure:
  • Ative Ingestão contínua
  • Ordenação: Ordem lexicográfica
O Cloudflare Logpush grava arquivos com nomes baseados em data (por exemplo, 20250127/...), o que naturalmente segue a ordem lexicográfica. O ClickPipes verifica novos arquivos a cada 30 segundos e faz a ingestão de qualquer arquivo com nome maior que o do último arquivo processado.Mapeamento de esquema:Clique em Informações de parsing. O ClickPipes faz uma amostragem dos seus arquivos de log e detecta automaticamente o esquema. Revise as colunas mapeadas e ajuste os tipos conforme necessário. Defina uma Chave de ordenação para a tabela de destino — para logs do Cloudflare, uma boa escolha é (EdgeStartTimestamp, ClientCountry, EdgeResponseStatus).Clique em Concluir Setup.
Ao ser criado, o ClickPipes realiza uma carga inicial de todos os arquivos existentes no caminho especificado antes de passar para a verificação contínua. Se o seu bucket contiver um grande volume acumulado de logs do Cloudflare, essa carga inicial pode levar algum tempo.
3

Configurar a fonte de dados do HyperDX

O ClickPipes faz a ingestão de logs do Cloudflare em uma tabela plana com os nomes nativos de campo do Cloudflare. Para visualizar esses logs no HyperDX, configure uma fonte de dados personalizada que mapeie as colunas do Cloudflare para a visualização de logs do HyperDX.
  1. Abra o HyperDX → Team SettingsSources
  1. Clique em Add source e configure as seguintes opções. Clique em Configure Optional Fields para acessar todos os campos:
ConfiguraçãoValor
NomeCloudflare Logs
Tipo de dados da fonteLog
Banco de dadosdefault
Tabelacloudflare_http_logs
Coluna de timestamptoDateTime(EdgeStartTimestamp / 1000000000)
Seleção padrãoEdgeStartTimestamp, ClientRequestMethod, ClientRequestURI, EdgeResponseStatus, ClientCountry
Expressão do nome do serviço'cloudflare'
Expressão do nível de logmultiIf(EdgeResponseStatus >= 500, 'ERROR', EdgeResponseStatus >= 400, 'WARN', 'INFO')
Expressão do corpoconcat(ClientRequestMethod, ' ', ClientRequestURI, ' ', toString(EdgeResponseStatus))
Expressão de atributos de logmap('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)
Expressão de atributos de recursomap('cloudflare.zone', ClientRequestHost)
Expressão de coluna implícitaconcat(ClientRequestMethod, ' ', ClientRequestURI)
  1. Clique em Save Source
Isso mapeia as colunas nativas do Cloudflare diretamente para o visualizador de logs do HyperDX, sem nenhuma transformação ou duplicação de dados. O Body exibe um resumo da requisição, como GET /api/v1/users 200, e todos os campos do Cloudflare ficam disponíveis como atributos pesquisáveis.
4

Verifique os dados no HyperDX

Navegue até a Busca e selecione a fonte Cloudflare Logs. Defina o intervalo de tempo para abranger seus dados. Você deverá ver entradas de log com:
  • Resumos de requisições na coluna Body (por exemplo, GET /api/v1/users 200)
  • Níveis de severidade codificados por cores de acordo com o status HTTP (INFO para 2xx, WARN para 4xx, ERROR para 5xx)
  • Atributos pesquisáveis, como http.status_code, client.country, cache.status e bot.score

Dataset de demonstração

Para usuários que querem testar a integração antes de configurar o Cloudflare Logpush em produção, fornecemos um dataset de exemplo com logs realistas de requisições HTTP.
1

Inicie o ClickPipes com o dataset de demonstração

  1. ClickHouse Cloud Console → Fontes de dadosCreate ClickPipe
  2. Source: Amazon S3
  3. Authentication: Public
  4. S3 file path: https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/cloudflare/cloudflare-http-logs.json
  5. Clique em Incoming data
  6. Selecione JSON como formato
  7. Clique em Parse information e revise o esquema detectado
  8. Defina Table name como cloudflare_http_logs
  9. Clique em Complete Setup
O dataset inclui 5.000 entradas de log de requisições HTTP ao longo de 24 horas, com padrões realistas, incluindo tráfego de vários países, hits e misses de cache, requisições de API e de ativos estáticos, respostas de erro e eventos de segurança.
2

Configure a fonte de dados do HyperDX

Siga as etapas de configuração da fonte de dados para criar uma fonte no HyperDX apontando para a tabela cloudflare_http_logs. Se você já configurou a fonte na seção da integração de produção, esta etapa não é necessária.
3

Verifique os dados de demonstração

SELECT count() FROM cloudflare_http_logs;
-- Deve retornar 5000
Navegue até a visualização Busca no HyperDX, selecione a fonte Cloudflare Logs e defina o intervalo de tempo como 2026-02-23 00:00:00 - 2026-02-26 00:00:00.Você deverá ver entradas de log com resumos de requisições, atributos pesquisáveis do Cloudflare e níveis de severidade com base nos códigos de status HTTP.
Exibição de fuso horárioO HyperDX exibe os timestamps no fuso horário local do seu navegador. Os dados de demonstração abrangem 2026-02-24 00:00:00 - 2026-02-25 00:00:00 (UTC). O intervalo de tempo amplo garante que você verá os logs de demonstração independentemente da sua localização. Depois de visualizar os logs, você pode restringir o intervalo para um período de 24 horas para obter visualizações mais claras.

Dashboards e visualização

1

a configuração do dashboard

2

Importar dashboard

  1. HyperDX → DashboardsImport Dashboard
  1. Faça upload de cloudflare-logs-dashboard.jsonFinish Import
3

Ver dashboard

Para o dataset de demonstração, defina o intervalo de tempo como 2026-02-24 00:00:00 - 2026-02-25 00:00:00 (UTC) (ajuste com base no seu fuso horário local). Por padrão, o dashboard importado não terá um intervalo de tempo definido.

Solução de problemas

Dados não estão aparecendo no ClickHouse

Verifique se a tabela foi criada e contém dados:
SHOW TABLES FROM default LIKE 'cloudflare_http_logs';
SELECT count() FROM cloudflare_http_logs;
Se a tabela existir, mas estiver vazia, verifique no ClickPipes se há erros: Console do ClickHouse Cloud → Fontes de dados → Seu ClickPipe → Logs. Para problemas de autenticação com buckets privados, consulte a documentação de controle de acesso do S3 ClickPipes.

Logs não aparecem no HyperDX

Se os dados estiverem no ClickHouse, mas não estiverem visíveis no HyperDX, verifique a configuração da fonte de dados:
  • Verifique se existe uma fonte para cloudflare_http_logs em HyperDX → Team SettingsSources
  • Certifique-se de que a Timestamp Column esteja definida como toDateTime(EdgeStartTimestamp / 1000000000) — os timestamps da Cloudflare estão em nanossegundos e precisam ser convertidos
  • Verifique se o intervalo de tempo no HyperDX abrange os dados. Para o dataset de demonstração, use 2026-02-23 00:00:00 - 2026-02-26 00:00:00

Próximos passos

  • Configure alertas para eventos de segurança (bloqueios do WAF, picos de tráfego de bots, limiares de taxa de erro)
  • Otimize as políticas de retenção com base no volume de dados
  • Crie dashboards adicionais para casos de uso específicos (desempenho de API, otimização de cache, análise geográfica de tráfego)

Em produção

Este guia demonstra a ingestão de logs do Cloudflare usando um dataset público de demonstração. Para implantações em produção, configure o Cloudflare Logpush para gravar no seu próprio bucket do S3 e configure o ClickPipes com autenticação baseada em IAM role para acesso seguro. Selecione apenas os campos do Logpush de que você precisa para reduzir os custos de armazenamento e o volume de ingestão. Ative subpastas diárias no Logpush para melhorar a organização dos arquivos e use **/* no padrão de caminho do ClickPipes para corresponder em todos os subdiretórios. Consulte a documentação do S3 ClickPipes para ver opções avançadas de configuração, incluindo ingestão não ordenada baseada em SQS para lidar com backfills e arquivos fora de ordem.
Última modificação em 10 de junho de 2026