Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

مراقبة سجلات Cloudflare باستخدام ClickStack

نظرة عامة

تُصدِّر Cloudflare Logpush سجلات طلبات HTTP إلى وجهات مثل Amazon S3. ويتيح لك توجيه هذه السجلات إلى ClickStack ما يلي:

  • تحليل حركة المرور على الحافة، وأداء ذاكرة التخزين المؤقت، وأحداث الأمان، إلى جانب بيانات observability الأخرى لديك
  • الاستعلام عن السجلات باستخدام ClickHouse SQL
  • الاحتفاظ بالسجلات لمدة تتجاوز مدة الاحتفاظ الافتراضية في Cloudflare

يستخدم هذا الدليل ClickPipes لإدخال ملفات سجلات Cloudflare باستمرار من S3 إلى ClickHouse. ويعمل S3 كمخزن مؤقت موثوق بين Cloudflare وClickHouse، مع توفير دلالات exactly-once وإمكانية إعادة التشغيل.

التكامل مع Cloudflare Logpush الحالي

يفترض هذا القسم أن Cloudflare Logpush مُعدّ لديك لتصدير السجلات إلى S3. وإذا لم يكن كذلك، فاتبع أولًا دليل إعداد AWS S3 من Cloudflare.

المتطلبات الأساسية

  • ClickHouse Cloud service قيد التشغيل (ClickPipes ميزة متاحة في Cloud فقط — وغير متوفرة في ClickStack OSS)
  • يقوم Cloudflare Logpush بكتابة السجلات بشكل نشط إلى حاوية S3
  • اسم حاوية S3 والمنطقة التي يكتب فيها Cloudflare السجلات

تهيئة المصادقة على S3

تحتاج ClickPipes إلى إذن قراءة من حاوية S3 الخاصة بك. اتبع دليل الوصول إلى بيانات S3 بأمان لتهيئة الوصول المستند إلى أدوار IAM أو الوصول المستند إلى بيانات الاعتماد.

للاطلاع على التفاصيل الكاملة حول مصادقة S3 والأذونات في ClickPipes، راجع الوثائق المرجعية لـ S3 ClickPipes.

إنشاء مهمة ClickPipes

  1. ClickHouse Cloud Console → مصادر البياناتCreate ClickPipe
  2. المصدر: Amazon S3
Clickpipe s3

الاتصال:

  • مسار ملف S3: مسار bucket سجلات Cloudflare لديك مع حرف بدل لمطابقة الملفات. إذا فعّلت المجلدات الفرعية اليومية في Logpush، فاستخدم ** للمطابقة عبر المجلدات الفرعية:
    • بدون مجلدات فرعية: https://your-bucket.s3.us-east-1.amazonaws.com/logs/*
    • مجلدات فرعية يومية: https://your-bucket.s3.us-east-1.amazonaws.com/logs/**/*
  • المصادقة: اختر طريقة المصادقة وقدّم بيانات الاعتماد أو IAM Role ARN

إعدادات الإدخال:

انقر على البيانات الواردة، ثم اضبط ما يلي:

  • فعّل الإدخال المستمر
  • الترتيب: الترتيب المعجمي
Continuous ingestion

يكتب Cloudflare Logpush الملفات بأسماء تعتمد على التاريخ (مثل 20250127/...)، وهذا يتوافق طبيعيًا مع الترتيب المعجمي. ويتحقق ClickPipes من وجود ملفات جديدة كل 30 ثانية، ثم يُدخل أي ملف يحمل اسمًا أكبر من اسم آخر ملف تمت معالجته.

مطابقة المخطط:

انقر على تحليل المعلومات. يأخذ ClickPipes عينات من ملفات السجل ويكتشف المخطط تلقائيًا. راجع الأعمدة المُعيّنة واضبط الأنواع حسب الحاجة. حدّد مفتاح ترتيب للجدول الوجهة — وبالنسبة إلى سجلات Cloudflare، يُعد (EdgeStartTimestamp, ClientCountry, EdgeResponseStatus) خيارًا جيدًا.

Parse information

انقر على إكمال الإعداد.

تهيئة مصدر بيانات HyperDX

يقوم ClickPipes بإدخال سجلات Cloudflare إلى جدول مسطّح بأسماء الحقول الأصلية الخاصة بـ Cloudflare. لعرض هذه السجلات في HyperDX، قم بتهيئة مصدر بيانات مخصص يربط أعمدة Cloudflare بعرض السجلات في HyperDX.

  1. افتح HyperDX → Team SettingsSources
إضافة مصدر
  1. انقر على Add source ثم هيّئ الإعدادات التالية. انقر على Configure Optional Fields للوصول إلى جميع الحقول:
تهيئة الحقول الاختيارية
الإعداد القيمة
الاسم Cloudflare Logs
نوع بيانات المصدر Log
قاعدة البيانات default
الجدول cloudflare_http_logs
عمود الطابع الزمني toDateTime(EdgeStartTimestamp / 1000000000)
التحديد الافتراضي EdgeStartTimestamp, ClientRequestMethod, ClientRequestURI, EdgeResponseStatus, ClientCountry
تعبير اسم الخدمة 'cloudflare'
تعبير مستوى السجل multiIf(EdgeResponseStatus >= 500, 'ERROR', EdgeResponseStatus >= 400, 'WARN', 'INFO')
تعبير النص concat(ClientRequestMethod, ' ', ClientRequestURI, ' ', toString(EdgeResponseStatus))
تعبير سمات السجل 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)
تعبير سمات المورد map('cloudflare.zone', ClientRequestHost)
تعبير العمود الضمني concat(ClientRequestMethod, ' ', ClientRequestURI)
  1. انقر على Save Source
حفظ المصدر

يؤدي ذلك إلى ربط أعمدة Cloudflare الأصلية مباشرةً بعارض السجلات في HyperDX من دون أي تحويل للبيانات أو تكرار لها. ويعرض Body ملخصًا للطلب مثل GET /api/v1/users 200، كما تبقى جميع حقول Cloudflare متاحة كسمات قابلة للبحث.

تحقّق من البيانات في HyperDX

انتقل إلى عرض Search وحدّد المصدر Cloudflare Logs. اضبط النطاق الزمني بحيث يغطي بياناتك. يُفترض أن ترى إدخالات سجل تتضمن:

  • ملخصات الطلبات في عمود Body (على سبيل المثال، GET /api/v1/users 200)
  • مستويات الشدة ملوّنة حسب حالة HTTP (INFO لرموز 2xx، وWARN لرموز 4xx، وERROR لرموز 5xx)
  • سمات قابلة للبحث مثل http.status_code وclient.country وcache.status وbot.score
عرض Search
عرض السجل

مجموعة بيانات تجريبية

للمستخدمين الذين يريدون اختبار التكامل قبل إعداد Cloudflare Logpush في بيئة الإنتاج، نوفر مجموعة بيانات نموذجية تتضمن سجلات واقعية لطلبات HTTP.

ابدأ ClickPipes باستخدام مجموعة البيانات التجريبية

  1. ClickHouse Cloud Console → Data SourcesCreate 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. انقر على Incoming data
  6. اختر JSON كـ format
  7. انقر على Parse information وراجع schema المكتشفة
  8. اضبط Table name على cloudflare_http_logs
  9. انقر على Complete Setup

تتضمن مجموعة البيانات 5,000 سجل لطلبات HTTP على مدى 24 ساعة، مع أنماط واقعية تشمل حركة مرور من عدة بلدان، وحالات cache hit وcache miss، وطلبات API والموارد الثابتة، واستجابات الأخطاء، وأحداثًا أمنية.

هيّئ data source في HyperDX

اتبع خطوات تهيئة data source لإنشاء source في HyperDX يشير إلى table ‏cloudflare_http_logs. إذا كنت قد أعددت source بالفعل في قسم تكامل الإنتاج، فلا حاجة إلى هذه الخطوة.

تحقّق من البيانات التجريبية

SELECT count() FROM cloudflare_http_logs;
-- يجب أن تُرجع 5000

انتقل إلى عرض Search في HyperDX، وحدد source ‏Cloudflare Logs، واضبط النطاق الزمني على 2026-02-23 00:00:00 - 2026-02-26 00:00:00.

يُفترض أن ترى log entries تتضمن ملخصات الطلبات، وattributes خاصة بـ Cloudflare قابلة للبحث، ومستويات خطورة تستند إلى رموز حالة HTTP.

عرض Search
عرض السجل

لوحات المعلومات والتصورات

تنزيل إعدادات لوحة المعلومات

استيراد لوحة معلومات

  1. HyperDX → DashboardsImport Dashboard
استيراد لوحة معلومات
  1. حمّل cloudflare-logs-dashboard.jsonFinish Import
استيراد لوحة معلومات

عرض لوحة المعلومات

مثال على لوحة معلومات

استكشاف الأخطاء وإصلاحها

عدم ظهور البيانات في ClickHouse

تحقّق من أن الجدول قد أُنشئ ويحتوي على بيانات:

SHOW TABLES FROM default LIKE 'cloudflare_http_logs';
SELECT count() FROM cloudflare_http_logs;

إذا كان الجدول موجودًا لكنه فارغ، فتحقّق من ClickPipes بحثًا عن أخطاء: ClickHouse Cloud Console → Data Sources → ClickPipe الخاص بك → السجلات. ولمشكلات المصادقة المتعلقة بالحاويات الخاصة، راجع وثائق التحكم في الوصول الخاصة بـ S3 ClickPipes.

عدم ظهور السجلات في HyperDX

إذا كانت البيانات موجودة في ClickHouse لكنها لا تظهر في HyperDX، فتحقق من إعدادات data source:

  • تأكد من وجود source باسم cloudflare_http_logs ضمن HyperDX → Team SettingsSources
  • تأكد من ضبط Timestamp Column على toDateTime(EdgeStartTimestamp / 1000000000) — إذ إن الطوابع الزمنية في Cloudflare تكون بالنانوثانية وتحتاج إلى تحويل
  • تأكد من أن النطاق الزمني في HyperDX يشمل البيانات. بالنسبة إلى مجموعة البيانات التجريبية، استخدم 2026-02-23 00:00:00 - 2026-02-26 00:00:00

الخطوات التالية

  • أعدّ التنبيهات لأحداث الأمان (عمليات الحظر من WAF، والارتفاعات المفاجئة في حركة مرور الروبوتات، وعتبات معدلات الخطأ)
  • حسّن سياسات الاحتفاظ استنادًا إلى حجم بياناتك
  • أنشئ لوحات معلومات إضافية لحالات استخدام محددة (أداء واجهة برمجة تطبيقات، وتحسين التخزين المؤقت، وتحليل حركة المرور الجغرافية)

الانتقال إلى بيئة الإنتاج

يوضح هذا الدليل كيفية إدخال سجلات Cloudflare باستخدام مجموعة بيانات تجريبية عامة. أما في عمليات النشر الإنتاجية، فقم بتهيئة Cloudflare Logpush للكتابة إلى حاوية S3 الخاصة بك، وأعِدّ ClickPipes باستخدام المصادقة المستندة إلى دور IAM للوصول الآمن. حدِّد فقط حقول Logpush التي تحتاج إليها لتقليل تكاليف التخزين وحجم الإدخال. فعِّل المجلدات الفرعية اليومية في Logpush لتحسين تنظيم الملفات، واستخدم **/* في نمط المسار في ClickPipes للمطابقة عبر المجلدات الفرعية.

راجع وثائق S3 ClickPipes للاطلاع على خيارات التهيئة المتقدمة، بما في ذلك الإدخال غير المرتب المستند إلى SQS للتعامل مع عمليات التحميل الاستدراكي والملفات غير المرتبة.

Navigation