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.
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
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.
Criar job no ClickPipes
- ClickHouse Cloud Console → Fontes de dados → Criar ClickPipe
- 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/**/*
- Sem subpastas:
- 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.
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.
- Abra o HyperDX → Team Settings → Sources

- Clique em Add source e configure as seguintes opções. Clique em Configure Optional Fields para acessar todos os campos:

| Configuração | Valor |
|---|---|
| Nome | Cloudflare Logs |
| Tipo de dados da fonte | Log |
| Banco de dados | default |
| Tabela | cloudflare_http_logs |
| Coluna de timestamp | toDateTime(EdgeStartTimestamp / 1000000000) |
| Seleção padrão | EdgeStartTimestamp, ClientRequestMethod, ClientRequestURI, EdgeResponseStatus, ClientCountry |
| Expressão do nome do serviço | 'cloudflare' |
| Expressão do nível de log | multiIf(EdgeResponseStatus >= 500, 'ERROR', EdgeResponseStatus >= 400, 'WARN', 'INFO') |
| Expressão do corpo | concat(ClientRequestMethod, ' ', ClientRequestURI, ' ', toString(EdgeResponseStatus)) |
| Expressão de atributos de log | 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) |
| Expressão de atributos de recurso | map('cloudflare.zone', ClientRequestHost) |
| Expressão de coluna implícita | concat(ClientRequestMethod, ' ', ClientRequestURI) |
- 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.
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.statusebot.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.
Inicie o ClickPipes com o dataset de demonstração
- Console do ClickHouse Cloud → Fontes de dados → 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 - Clique em Incoming data
- Selecione JSON como formato
- Clique em Parse information e revise o esquema detectado
- Defina Table name como
cloudflare_http_logs - 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.
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.
Verifique os dados de demonstração
SELECT count() FROM cloudflare_http_logs;
-- Deve retornar 5000Navegue 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.


Dashboards e visualização
Baixar a configuração do dashboard
Importar dashboard
- HyperDX → Dashboards → Import Dashboard

- Faça upload de
cloudflare-logs-dashboard.json→ Finish Import

Ver dashboard

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_logsem HyperDX → Team Settings → Sources - 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)
Colocando em produção
Este guia demonstra a ingestão de logs do Cloudflare usando um dataset público de demonstração. Para implantações de 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 organizar melhor os arquivos e use **/* no padrão de caminho do ClickPipes para corresponder a arquivos em todos os subdiretórios.
Consulte a documentação do S3 ClickPipes para opções avançadas de configuração, incluindo a ingestão não ordenada com base em SQS para lidar com backfills e arquivos fora de ordem.