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
- 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
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 Substitua
JSONEachRow, você pode apontar o Logpush diretamente para a interface HTTP do seu ClickHouse Cloud usando o seguinte formato de endpoint URL: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
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
- 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
- Ative Ingestão contínua
- Ordenação: Ordem lexicográfica
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.
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
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
Inicie o ClickPipes com o dataset de demonstração
- ClickHouse Cloud Console → 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
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 tabelacloudflare_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
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
a configuração do dashboard
Importar dashboard
- HyperDX → Dashboards → Import Dashboard
- Faça upload de
cloudflare-logs-dashboard.json→ Finish Import
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
Logs não aparecem no HyperDX
- 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)
Em produção
**/* 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.