Log Explorer
Ham Cloudflare loglarını Cloudflare'in kendi altyapısında saklayıp panelden SQL benzeri sorgularla inceler. Ama dataset'i açmadan önceki olayları asla göremezsin.
- DurumGenel kullanımda
- FiyatAlınan ve saklanan log hacmi üzerinden (GB) — sorgu başına ek ücret yok
- Doğrulama
Log Explorer nedir?
“Store and explore your Cloudflare logs directly within the Cloudflare dashboard or API.”
“Cloudflare’s native observability and forensics product… without the expense and complexity of forwarding logs to third-party tools.”
Çözdüğü problem: bir olay incelemesi için normalde logları Splunk, Datadog veya kendi ELK yığınına taşıman gerekiyor — boru hattı kurmak, depolama ödemek, alan eşlemesi yapmak. Log Explorer bu adımı atlayıp sorguyu Cloudflare’in içine getiriyor.
Nasıl çalışır?
Loglar nerede duruyor
“The data is stored in Cloudflare R2. Each Log Explorer dataset is stored on a per-customer level, similar to Cloudflare D1… In the future, this single-tenant storage model will provide you with the flexibility to… decide in which regions you want to store your data.”
Üç kısıt bu cümlenin hemen ardından geliyor:
| Kısıt | Resmî ifade |
|---|---|
| Kendi R2 panelinde görünmüyor | “they are not visible in your account’s R2 interface” |
| CMB uyumlu değil | “Customer Metadata Boundary is currently not supported for Log Explorer” |
| Bölge seçilemiyor | “customers do not have the ability to choose the location of the Cloudflare-managed R2 bucket for Log Explorer” |
Sorgu dili — kısıtlı SQL
| Kısıt | Değer |
|---|---|
Varsayılan LIMIT | 10.000 |
Maks WHERE koşulu | 25 |
JOIN | yok |
| Alt sorgu | yok |
| Pencere fonksiyonu | yok |
| Geriye dönük doldurma | yok |
| Alım tavanı | saniyede 50.000 kayıt |
Sorgulanabilir dataset’ler
audit_logs · audit_logs_v2 · email_security_alerts · firewall_events · zaraz_events ·
http_requests · gateway_dns · gateway_http · gateway_network · dex_application_tests ·
dex_device_state_events · casb_findings · page_shield_events · network_analytics_logs ·
zero_trust_network_sessions · device_posture_results · spectrum_events ·
sinkhole_http_logs · access_requests · dns_firewall_logs · dns_logs ·
magic_ids_detections · warp_toggle_changes · ipsec_logs
Saklama
“Contract customers can choose to store their logs in Log Explorer for up to two years.”
Sözleşmesiz müşteriler için bir süre belirtilmiyor. İnternette dolaşan “30 gün varsayılan saklama” rakamı yalnızca Haziran 2025 GA blogunda geçiyor ve güncel dokümanlarda tekrarlanmıyor — doğrulanamamıştır.
Log ailesindeki yeri
| Ürün | Ne yapıyor | Durum |
|---|---|---|
| Log Explorer | Cloudflare saklıyor, panelde sorguluyorsun | GA — 18 Haziran 2025 |
| Logpush | Senin hedefine itiyor (R2, S3, GCS, Azure, Splunk, Datadog, Sumo Logic, New Relic, HTTP) | güncel |
| Instant Logs | Yalnızca http_requests canlı akışı | Business ve Enterprise |
| Logpull | Eski indirme API’si | legacy — “now superseded by Logpush” |
| Logs Engine | R2’den log alma | emekliye ayrılıyor — “going to be replaced by Log Explorer” |
Logpush limitleri: zone başına 4 iş · filtre karmaşıklığı ~30 operatör / ~1.000 bayt ·
max_upload_records varsayılan 100.000 · geriye dönük doldurma yok.
Logpull limitleri: Enterprise · 7 gün saklama · maks 1 saatlik sorgu penceresi · zone başına dakikada 15 istek. Ve CMB kısıtı: “Logpull available when using CMB = US only” ile “To configure Customer Metadata Boundary to EU, you must disable Log Retention for all zones.”
Instant Logs: zone başına 1 oturum, oturum başına en fazla 60 dakika.
Ne zaman kullanılır, ne zaman kullanılmaz
Kullanılır
- Cloudflare tarafındaki bir olayı hızlıca incelemek istiyorsan — 5xx artışı, bir uç noktayı zorlayan trafik, bir WAF kuralının neyi yakaladığı.
- Boru hattı kurmak istemiyorsan. Logpush işi, hedef kimlik bilgileri, depolama yönetimi — hiçbiri gerekmiyor.
- Sorgu maliyetinden endişe ediyorsan. Alım ve saklama ücretli, sorgu değil.
- WAF kuralı ayarlıyorsan.
firewall_eventsüzerindeRuleIDveActionbazlı sayım, kural ayarının en hızlı yolu.
Kullanılmaz
Veri yerleşimi şartsa. Bölge seçilemiyor, CMB desteklenmiyor. Logpush kullan.
Olay zaten yaşandıysa. Geriye dönük doldurma yok. Dataset açık değilse o veri yok — hiçbir yerde.
SIEM arıyorsan. JOIN yok, alt sorgu yok, pencere fonksiyonu yok, 25 koşul tavanı var. Ama asıl mesele şu: Cloudflare dışı hiçbir veri kaynağı yok. Uygulama loglarınla, sunucu loglarınla, kimlik sağlayıcı loglarınla korelasyon kuramıyorsun. Bir güvenlik olayının Cloudflare tarafını görüyorsun, tamamını değil.
Karmaşık analitik sorgular yazacaksan. Tek tablo, JOIN yok. Oturum yeniden yapılandırma, kohort analizi, pencere üzerinden hareketli ortalama — hiçbiri mümkün değil.
Log içeriğine göre uyarı kurmak istiyorsan. Belgelenen uyarılar kullanım ve fatura uyarıları. Log içeriğine dayalı uyarı doğrulanamamıştır.
Yalnızca L7 DDoS trafiğini incelemek istiyorsan. “Logs generated from Layer 7 (L7) DDoS attack traffic are not ingested by default.”
Bütçen darsa ve hacmin yüksekse. Saldırı trafiği faturalanıyor — ve bir saldırı sırasında log hacmi normalin katlarına çıkıyor. Tam da faturalanmasını istemeyeceğin anda.
Somut örnekler
Dataset’i etkinleştirmek
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/logs/explorer/datasets" \
--request POST --header "Authorization: Bearer $CF_API_TOKEN" \
--json '{"dataset":"http_requests","zone_id":"'"$ZONE_ID"'","enabled":true}'
Gereken yetki: Logs Edit.
5xx artışının arkasındaki istekler
SELECT ClientRequestPath,
EdgeResponseStatus,
count() AS adet
FROM http_requests
WHERE EdgeResponseStatus >= 500
AND Datetime >= NOW() - INTERVAL '1' HOUR
GROUP BY ClientRequestPath, EdgeResponseStatus
ORDER BY adet DESC
LIMIT 50
Login uç noktasını kim zorluyor
SELECT ClientIP,
ClientRequestUserAgent,
count() AS deneme
FROM http_requests
WHERE ClientRequestPath = '/giris'
AND ClientRequestMethod = 'POST'
AND Datetime >= NOW() - INTERVAL '6' HOUR
GROUP BY ClientIP, ClientRequestUserAgent
ORDER BY deneme DESC
LIMIT 100
Hangi WAF kuralı ne kadar yakalıyor
SELECT RuleID, Action, count() AS vurus
FROM firewall_events
WHERE Datetime >= NOW() - INTERVAL '24' HOUR
GROUP BY RuleID, Action
ORDER BY vurus DESC
LIMIT 50
Logpush alternatifi (veri yerleşimi gerekiyorsa)
# 1) Sahiplik doğrulaması — bucket'a bir token dosyası yazılıyor
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/logpush/ownership" \
--request POST -H "Authorization: Bearer $CF_API_TOKEN" \
--json '{"destination_conf":"s3://loglar/cf?region=eu-central-1&access-key-id=...&secret-access-key=..."}'
# 2) O token ile işi oluştur
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/logpush/jobs" \
--request POST -H "Authorization: Bearer $CF_API_TOKEN" \
--json '{
"name":"http-istekleri",
"dataset":"http_requests",
"destination_conf":"s3://loglar/cf?region=eu-central-1&access-key-id=...&secret-access-key=...",
"ownership_challenge":"<TOKEN>",
"output_options":{"field_names":["Datetime","ClientIP","ClientRequestHost",
"ClientRequestPath","EdgeResponseStatus"],
"timestamp_format":"rfc3339"},
"enabled":true
}'
Demo 1: Geriye dönük doldurmanın olmadığını kanıtlamak
Bu demo, ürünün en pahalı kısıtını deneysel olarak gösteriyor — ve bir ekibin Log Explorer’ı ne zaman kurması gerektiğini tartışmasız hale getiriyor.
Adım 1 — Dataset KAPALIYKEN trafik üret
# Dataset'in kapalı olduğunu doğrula
curl -sS ".../accounts/$ACCOUNT_ID/logs/explorer/datasets" \
-H "Authorization: Bearer $CF_API_TOKEN" | jq '.result[] | {dataset, enabled}'
# Ayırt edilebilir trafik üret — bu yol daha önce hiç istek almamış olmalı
T0=$(date -u +%Y-%m-%dT%H:%M:%SZ)
for i in $(seq 1 50); do
curl -sS -o /dev/null "https://ornek.com.tr/log-demo-oncesi?n=$i"
done
T1=$(date -u +%Y-%m-%dT%H:%M:%SZ)
echo "ÖNCESİ penceresi: $T0 → $T1"
Adım 2 — Şimdi dataset’i aç
curl ".../accounts/$ACCOUNT_ID/logs/explorer/datasets" --request POST \
-H "Authorization: Bearer $CF_API_TOKEN" \
--json '{"dataset":"http_requests","zone_id":"'"$ZONE_ID"'","enabled":true}'
Adım 3 — Aynı türden trafik daha üret
T2=$(date -u +%Y-%m-%dT%H:%M:%SZ)
for i in $(seq 1 50); do
curl -sS -o /dev/null "https://ornek.com.tr/log-demo-sonrasi?n=$i"
done
T3=$(date -u +%Y-%m-%dT%H:%M:%SZ)
echo "SONRASI penceresi: $T2 → $T3"
Adım 4 — İki pencereyi de sorgula
SELECT ClientRequestPath, count() AS adet
FROM http_requests
WHERE ClientRequestPath LIKE '/log-demo-%'
GROUP BY ClientRequestPath
Adım 5 — Zone analytics ile karşılaştır
Aynı zaman aralığını GraphQL’den sorgula — orada her iki pencere de görünüyor.
Bu karşılaştırma, verinin “kaybolmadığını” ama Log Explorer’a alınmadığını gösteriyor — ikisi farklı şeyler ve fark önemli.
Adım 6 — Logpush’un aynı kısıtı taşıdığını göster
Logpush’ta da geriye dönük doldurma yok. Bir Logpush işi oluşturup daha önceki verinin gelmediğini göster.
Bu demoda ölçülenler:
| Ölçüt | Dataset kapalıyken (50 istek) | Dataset açıkken (50 istek) |
|---|---|---|
| Log Explorer’da görünüyor mu | ✘ hiç | ✅ 50 |
| Zone analytics’te görünüyor mu | ✅ | ✅ |
| GraphQL’de görünüyor mu | ✅ | ✅ |
| Logpush hedefinde | ✘ | ✅ (iş kurulduktan sonrası) |
| Geri getirme yolu | yok | — |
Demo 2: Kısıtlı SQL’in duvarlarını yoklamak
Bu demonun amacı, ürünü SIEM sanan bir ekibin duvarlara kurulum öncesinde çarpması.
Adım 1 — Çalışan bir temel sorgu
SELECT ClientCountry, count() AS adet
FROM http_requests
WHERE Datetime >= NOW() - INTERVAL '1' HOUR
GROUP BY ClientCountry
ORDER BY adet DESC
LIMIT 20
Adım 2 — JOIN dene
-- Bu ÇALIŞMAYACAK
SELECT h.ClientIP, f.RuleID
FROM http_requests h
JOIN firewall_events f ON h.RayID = f.RayID
LIMIT 10
Adım 3 — Alt sorgu dene
-- Bu da ÇALIŞMAYACAK
SELECT ClientIP FROM http_requests
WHERE ClientIP IN (SELECT ClientIP FROM firewall_events WHERE Action = 'block')
LIMIT 10
Adım 4 — Pencere fonksiyonu dene
-- Bu da ÇALIŞMAYACAK
SELECT ClientIP, count() OVER (PARTITION BY ClientCountry) FROM http_requests LIMIT 10
Adım 5 — 25 koşul tavanına çarp
# 26 koşullu bir WHERE üret
python3 - <<'PY'
kosullar = " OR ".join(f"ClientIP = '203.0.113.{i}'" for i in range(1, 27))
print(f"SELECT count() FROM http_requests WHERE {kosullar}")
PY
Aynı sorguyu 25 koşulla tekrarla — çalışıyor. Sınırın tam yerini böyle belgeliyorsun.
Adım 6 — Cloudflare dışı korelasyonun imkânsızlığını göster
Kendi uygulama loglarında bir hata var; Log Explorer’da o hataya karşılık gelen isteği bulmak istiyorsun. Yapabildiğin tek şey: elle, zaman damgası ve IP üzerinden eşleştirmek.
Bu demoda ölçülenler:
| Sorgu tipi | Sonuç |
|---|---|
SELECT … GROUP BY … LIMIT | ✅ |
JOIN | ✘ reddediliyor |
| Alt sorgu | ✘ reddediliyor |
Pencere fonksiyonu (OVER) | ✘ reddediliyor |
25 WHERE koşulu | ✅ |
26 WHERE koşulu | ✘ limit hatası |
Varsayılan LIMIT | 10.000 |
| Cloudflare dışı kaynakla korelasyon | ✘ mümkün değil |
Fiyatlandırma
Kesin olan:
“charges are not based on how often you search or scan your data. Once logs are ingested and stored, you can query them without additional cost.”
Saldırı trafiği:
“Because Log Explorer is a forensics product, attack traffic is considered valuable data for analysis and is included in your billable usage.”
“Logs generated from Layer 7 (L7) DDoS attack traffic are not ingested by default and do not count toward your Log Explorer usage.”
Boyut planlaması için ortalama kayıt boyutları:
| Dataset | Ortalama | Maksimum |
|---|---|---|
http_requests | 1,56 kB | 9,76 kB |
firewall_events | 1,36 kB | 47,2 kB |
zaraz_events | 7,30 kB | 11,7 kB |
dns_logs | 199 B | — |
audit_logs | 2,69 kB | 172 kB |
Kaba hesap: günde 10 milyon istek × 1,56 kB ≈ 15,6 GB/gün ≈ 468 GB/ay yalnızca http_requests
için.
Plan ve yetki
“Log Explorer is available as a paid add-on for any Application Services or Zero Trust purchase. There is no free version or trial available at this time.”
| İşlem | Yetki |
|---|---|
| Dataset yönetimi | Logs Edit |
| Log Search | Logs Read |
| Sorgu kaydetme | Logs Write |
| Özel panolar | Analytics Read |
Lisanslama ve hukuki çerçeve
Hizmet tescillidir ve Cloudflare Hizmet Şartları’na tabidir.
Veri yerelliği — bu ürünün en sert kısıtı. Loglar Cloudflare’in yönettiği tek kiracılı bir R2 bucket’ında duruyor ama:
- Bölgesini seçemiyorsun.
- Customer Metadata Boundary desteklenmiyor.
- Bucket kendi R2 panelinde görünmüyor — yani doğrudan erişimin, kendi yaşam döngüsü kuralın veya kendi şifreleme anahtarın yok.
KVKK kapsamında verinin nerede işlendiğini ve saklandığını beyan etmen gerekiyorsa Log Explorer bu beyanı destekleyecek bir kontrol sunmuyor. Bu durumda Logpush ile Türkiye’deki bir hedefe yazdırman gerekiyor.
Kişisel veri içeriği. http_requests ve firewall_events istemci IP adresi, User-Agent ve tam
URL yolu içeriyor. Query string’ler de kaydediliyor — yani formda gönderilen veriler URL’ye
düşüyorsa loglara da düşüyor. Logpush’ta field_names ile alan seçebiliyorsun; Log Explorer’da
alan seçimi yok, dataset ne içeriyorsa o alınıyor. Veri minimizasyonu açısından bu bir dezavantaj.
Saklama süresi. Sözleşmeli müşteriler iki yıla kadar saklayabiliyor. KVKK’nın veri minimizasyonu ilkesi açısından uzun bir süre — saklama politikanı bilinçli belirle, varsayılana bırakma.
Sık yapılan hatalar
Dataset’i olaydan sonra etkinleştirmek. En pahalı hata. Geriye dönük doldurma yok; o veri hiçbir yerde yok.
JOIN beklemek. Yok. Ve Cloudflare dışı veri kaynağı da yok.
25 WHERE koşulunu aşmak. Sessiz değil, hata veriyor — ama sınırı bilmeden yazılan sorgu boşa
gidiyor.
AB’de veya Türkiye’de saklandığını varsaymak. Bölge seçilemiyor.
Customer Metadata Boundary ile birlikte çalışacağını sanmak. Desteklenmiyor.
L7 DDoS loglarının orada olduğunu sanmak. Varsayılan olarak alınmıyor.
$0,10/GB rakamını her şey dahil fiyat sanmak. Üç ayrı resmî rakam var; panelden doğrula.
Emekliye ayrılan /logs/log-explorer/ adresini alıntılamak. Yeni kök /log-explorer/.
Saldırı trafiğinin faturalanmayacağını varsayıp bütçe kurmak. WAF’ın blokladıkları faturalanıyor — ve saldırı sırasında hacim katlanıyor.
Sütun adlarını Logpush dokümanından körlemesine kopyalamak. Büyük-küçük harf farkları var; boş sonuç üretiyor.
Logs Engine ile yeni bir kurulum yapmak. Emekliye ayrılıyor; doğrudan Log Explorer’a git.
Log içeriğine göre uyarı kurabileceğini varsaymak. Belgelenen uyarılar kullanım ve fatura uyarıları.
Alan seçimi yapabileceğini sanmak. Logpush’ta field_names var, Log Explorer’da yok.
Sıkça sorulan sorular
- Loglarım tam olarak nerede saklanıyor?
- Birebir: “The data is stored in Cloudflare R2. Each Log Explorer dataset is stored on a per-customer level, similar to Cloudflare D1.” Ama üç önemli kısıt var: “they are not visible in your account's R2 interface”, “Customer Metadata Boundary is currently not supported for Log Explorer” ve “customers do not have the ability to choose the location of the Cloudflare-managed R2 bucket.”
- Loglarımın AB'de veya Türkiye'de kalmasını sağlayabilir miyim?
- Hayır. Bölge seçimi yok ve Customer Metadata Boundary desteklenmiyor. Cloudflare gelecek için umut veriyor (“In the future, this single-tenant storage model will provide you with the flexibility to… decide in which regions you want to store your data”) ama bugün yok. Veri yerleşimi şartsa Logpush kullanıp kendi hedefine yazdırman gerekiyor — Cloudflare'in kendi veri yerelliği dokümanları da CMB açıkken çözüm olarak Logpush'u öneriyor.
- Dataset'i açmadan önceki logları görebilir miyim?
- Hayır — ve bu en pahalı hata. Birebir: “It will not display logs for events that occurred before the dataset was enabled.” Geriye dönük doldurma yok. Bir olay yaşandıktan sonra Log Explorer'ı açmak hiçbir işe yaramıyor. Kurulumu olaydan önce yapmalısın.
- SQL'in tamamını kullanabilir miyim?
- Hayır, ciddi biçimde kısıtlı: JOIN yok, alt sorgu yok, pencere fonksiyonu yok, en fazla 25 WHERE koşulu, varsayılan
LIMIT10.000. Tek tablo üzerinde çalışıyorsun. - SIEM yerine geçer mi?
- Hayır. JOIN yok, alt sorgu yok, pencere fonksiyonu yok, 25 koşul tavanı var ve — en önemlisi — Cloudflare dışı hiçbir veri kaynağı yok. Kendi uygulama veya sunucu loglarınla asla korelasyon kuramıyorsun. Geriye dönük doldurma yok, bölge kontrolü yok, CMB yok. Bir olay incelemesinin Cloudflare tarafını hızlı görmek için mükemmel; SIEM'in yerine geçmiyor.
- Fiyatı GB başına 10 sent mi?
- Belgeler çelişiyor. Genel bakış sayfası “at an additional cost of $0.10 per GB per month” diyor. Ama
/log-explorer/pricing/sayfasında hiç dolar rakamı yok (grep ile doğrulandı) — yalnızca faturalamanın “volume of logs ingested and stored, measured in gigabytes” üzerinden olduğunu söylüyor. Eklenti listesinde ise $1/GB alınan, ilk 10 GB ücretsiz yazıyor. Üç ayrı rakam. Panelden doğrula. - Sorgu çalıştırmak ek ücret mi?
- Hayır. Birebir: “charges are not based on how often you search or scan your data. Once logs are ingested and stored, you can query them without additional cost.” Maliyet alım ve saklama tarafında.
- Saldırı trafiği faturalanıyor mu?
- İkisi de var. Genel kural: “Because Log Explorer is a forensics product, attack traffic is considered valuable data for analysis and is included in your billable usage.” Ama bir istisna: “Logs generated from Layer 7 (L7) DDoS attack traffic are not ingested by default and do not count toward your Log Explorer usage.” Yani WAF'ın blokladığı istekler faturalanıyor, L7 DDoS azaltması varsayılan olarak alınmıyor.
- Ne kadar süre saklayabilirim?
- Birebir: “Contract customers can choose to store their logs in Log Explorer for up to two years.” Sözleşmesiz müşteriler için bir süre belirtilmiyor. İnternette dolaşan “30 gün varsayılan saklama” rakamı yalnızca Haziran 2025 GA blogunda geçiyor ve güncel dokümanlarda tekrarlanmıyor — doğrulanamadı.
- Logpush ile hangisini seçmeliyim?
- Alternatif değil, tamamlayıcılar. Logpush logları senin hedefine (R2, S3, Splunk, Datadog…) itiyor; depolama, saklama ve maliyet sende ama bölge kontrolü de sende. Log Explorer Cloudflare'de saklıyor ve panelden sorgulatıyor; boru hattı kurmuyorsun ama bölge seçemiyorsun. Veri yerleşimi şartsa Logpush, hız ve kolaylık öncelikliyse Log Explorer.
- Ne kadar log alabilir?
- Alım tavanı saniyede 50.000 kayıt. Boyut planlaması için ortalama kayıt boyutları:
http_requests~1,56 kB (maks 9,76 kB),firewall_events~1,36 kB (maks 47,2 kB),zaraz_events~7,30 kB,dns_logs~199 B,audit_logs~2,69 kB (maks 172 kB). - Hangi yetkiler gerekiyor?
- Dataset yönetimi Logs Edit · Log Search Logs Read · sorgu kaydetme Logs Write · özel panolar Analytics Read.
- Eski <code>/logs/log-explorer/</code> adresini kullanabilir miyim?
- Çözümleniyor ama 301 ile
/log-explorer/log-search/adresine gidiyor. Ürünün artık kendi doküman kökü var:/log-explorer/. Yeni yazılarda eski adresi alıntılama. - Logs Engine ne oldu?
- Emekliye ayrılıyor. Birebir: “Logs Engine is going to be replaced by Log Explorer.” Yeni bir kurulum yapıyorsan doğrudan Log Explorer'a git.
İlgili servisler
- AnalyticsTrafik, cache hit oranı, güvenlik olayları ve Core Web Vitals ölçümleri.
- WAFSQL injection, XSS ve bilinen zafiyet istismarlarını request origin’e ulaşmadan engeller.
- DDoS for WebHTTP katmanındaki DDoS saldırılarına özel kural setleri ve otomatik azaltma.
- R2S3 uyumlu object storage — çıkış (egress) trafiği ücretsiz.
Bu sayfadaki fiyat ve özellik bilgileri 1 Eylül 2026 tarihinde Cloudflare’in resmî kaynaklarından doğrulanmıştır. Cloudflare fiyatlandırmasını önceden haber vermeden değiştirebilir; bağlayıcı bilgi içinresmî sayfaya bakın.