الانتقال إلى المحتوى الرئيسي
هل تريد تخزين سجلات التدقيق في ClickHouse داخل Splunk؟ اتبع دليل “Storing ClickHouse Cloud Audit logs into Splunk”.
يُعد Splunk تقنية شائعة في مجال الأمن وobservability. كما أنه محرك قوي للبحث وإنشاء لوحات المعلومات. وتتوفر مئات تطبيقات Splunk لتلبية حالات استخدام مختلفة. أما بالنسبة إلى ClickHouse تحديدًا، فنحن نعتمد على Splunk تطبيق DB Connect App، الذي يوفّر تكاملًا بسيطًا مع برنامج تشغيل ClickHouse JDBC عالي الأداء للاستعلام عن الجداول في ClickHouse مباشرةً. وتكون حالة الاستخدام المثالية لهذا التكامل عندما تستخدم ClickHouse مع مصادر بيانات كبيرة، مثل بيانات NetFlow أو Avro أو Protobuf الثنائية، وDNS، وVPC flow logs، وسجلات OTel الأخرى، بحيث يمكن مشاركتها مع فريقك في Splunk للبحث وإنشاء لوحات المعلومات. وباستخدام هذا النهج، لا تُدخَل البيانات إلى طبقة الفهرسة في Splunk، بل يُستعلَم عنها مباشرةً من ClickHouse، على غرار تكاملات التصور الأخرى مثل Metabase أو Superset.

الهدف​

في هذا الدليل، سنستخدم برنامج تشغيل ClickHouse JDBC لربط ClickHouse بـ Splunk. سنثبّت إصدارًا محليًا من Splunk Enterprise، لكننا لن نفهرس أي بيانات. وبدلًا من ذلك، سنستخدم وظائف البحث عبر محرك الاستعلام في DB Connect. باستخدام هذا الدليل، ستتمكن من إنشاء لوحة معلومات متصلة بـ ClickHouse مشابهة لهذه:
يستخدم هذا الدليل مجموعة بيانات سيارات الأجرة في مدينة نيويورك. وهناك العديد من مجموعات البيانات الأخرى التي يمكنك استخدامها من وثائقنا.

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

قبل البدء، ستحتاج إلى ما يلي:
  • Splunk Enterprise لاستخدام وظائف Search Head
  • تثبيت متطلبات Java Runtime Environment (JRE) على نظام التشغيل أو الحاوية
  • Splunk DB Connect
  • صلاحية وصول Admin أو SSH إلى مثيل نظام التشغيل الخاص بـ Splunk Enterprise
  • تفاصيل الاتصال بـ ClickHouse (راجع هنا إذا كنت تستخدم ClickHouse Cloud)

ثبّت DB Connect واضبطه على Splunk Enterprise

يجب أولاً تثبيت بيئة تشغيل Java على مثيل Splunk Enterprise لديك. إذا كنت تستخدم Docker، يمكنك استخدام الأمر microdnf install java-11-openjdk. دوّن مسار java_home: java -XshowSettings:properties -version. تأكّد من أن تطبيق DB Connect App مثبّت على Splunk Enterprise. يمكنك العثور عليه في قسم Apps ضمن واجهة Splunk Web:
  • سجّل الدخول إلى Splunk Web وانتقل إلى Apps > Find More Apps
  • استخدم مربع البحث للعثور على DB Connect
  • انقر على زر “Install” الأخضر بجوار Splunk DB Connect
  • انقر على “Restart Splunk”
إذا واجهت مشكلات أثناء تثبيت تطبيق DB Connect App، فيُرجى الرجوع إلى هذا الرابط للحصول على تعليمات إضافية. بعد التأكد من تثبيت تطبيق DB Connect App، أضف مسار java_home إلى تطبيق DB Connect App ضمن Configuration -> Settings، ثم انقر على save وبعدها reset.

تهيئة JDBC لـ ClickHouse

نزّل ملف JAR لبرنامج تشغيل ClickHouse JDBC وانسخه إلى مجلد DB Connect Drivers على المسار التالي:
$SPLUNK_HOME/etc/apps/splunk_app_db_connect/drivers
لضمان توفّر جميع التبعيات المطلوبة لتطبيق DB Connect App، نزّل أحد ما يلي:
- clickhouse-jdbc-<VERSION>-shaded-all.jar (if VERSION < 0.9.0)
- clickhouse-jdbc-<VERSION>-all-dependencies.jar (if VERSION >= 0.9.0)
يجب بعد ذلك تعديل إعدادات أنواع الاتصال في $SPLUNK_HOME/etc/apps/splunk_app_db_connect/local/db_connection_types.conf لإضافة تفاصيل الفئة الخاصة بـ ClickHouse JDBC Driver. أضف المقطع التالي إلى db_connection_types.conf:
[ClickHouse]
displayName = ClickHouse
serviceClass = com.splunk.dbx2.DefaultDBX2JDBC
jdbcUrlFormat = jdbc:ch://<host>:<port>/<database>
jdbcUrlSSLFormat = jdbc:ch://<host>:<port>/<database>?ssl=true
jdbcDriverClass = com.clickhouse.jdbc.ClickHouseDriver
ui_default_catalog = $database$
أعد تشغيل Splunk باستخدام $SPLUNK_HOME/bin/splunk restart. ارجع إلى تطبيق DB Connect App، ثم انتقل إلى Configuration > Settings > Drivers. ينبغي أن ترى علامة صح خضراء بجوار ClickHouse:

ربط بحث Splunk بـ ClickHouse

انتقل إلى تطبيق DB Connect App Configuration -> Databases -> Identities، ثم أنشئ هوية لـ ClickHouse. أنشئ اتصالًا جديدًا بـ ClickHouse من Configuration -> Databases -> Connections، ثم اختر “New Connection”.
أضف بيانات مضيف ClickHouse، وتأكد من تحديد “Enable SSL”: بعد حفظ الاتصال، ستكون قد نجحت في توصيل ClickHouse بـ Splunk!
إذا ظهرت لك رسالة خطأ، فتأكد من إضافة عنوان IP الخاص بمثيل Splunk إلى IP Access List في ClickHouse Cloud. راجع الوثائق لمزيد من المعلومات.

شغّل استعلام SQL

سنشغّل الآن استعلام SQL للتأكّد من أن كل شيء يعمل كما ينبغي. حدِّد تفاصيل الاتصال في SQL Explorer ضمن قسم DataLab في تطبيق DB Connect App. سنستخدم جدول trips في هذا العرض التوضيحي: نفِّذ استعلام SQL على جدول trips لإرجاع عدد جميع السجلات في الجدول: إذا نُفِّذ الاستعلام بنجاح، فسترى النتائج.

أنشئ لوحة معلومات

لننشئ لوحة معلومات تستفيد من مزيج من SQL ولغة المعالجة القوية من Splunk ‏(SPL). قبل المتابعة، يجب أولاً تعطيل وسائل الحماية الخاصة بـ DPL. شغّل الاستعلام التالي الذي يوضّح أكثر 10 أحياء تسجيلاً لعمليات الالتقاط:
dbxquery query="SELECT pickup_ntaname, count(*) AS count
FROM default.trips GROUP BY pickup_ntaname
ORDER BY count DESC LIMIT 10;" connection="chc"
اختر علامة تبويب التصور لعرض مخطط الأعمدة الذي تم إنشاؤه: سننشئ الآن لوحة معلومات بالنقر على Save As > Save to a Dashboard. لنُضِف استعلامًا آخر يعرض متوسط الأجرة استنادًا إلى عدد الركاب.
dbxquery query="SELECT passenger_count,avg(total_amount)
FROM default.trips GROUP BY passenger_count;" connection="chc"
هذه المرة، لنُنشئ تصورًا على هيئة مخطط أعمدة ونحفظه في لوحة المعلومات السابقة. أخيرًا، لنُضِف استعلامًا آخر يُظهر العلاقة بين عدد الركاب ومسافة الرحلة:
dbxquery query="SELECT passenger_count, toYear(pickup_datetime) AS year,
round(trip_distance) AS distance, count(* FROM default.trips)
GROUP BY passenger_count, year, distance
ORDER BY year, count(*) DESC; " connection="chc"
ينبغي أن تبدو لوحة المعلومات النهائية لدينا كما يلي:

بيانات السلاسل الزمنية

يضم Splunk مئات الوظائف المضمنة التي يمكن للوحات المعلومات استخدامها لتصور بيانات السلاسل الزمنية وعرضها. يجمع هذا المثال بين SQL وSPL لإنشاء استعلام يمكنه العمل مع بيانات السلاسل الزمنية في Splunk
dbxquery query="SELECT time, orig_h, duration
FROM "demo"."conn" WHERE time >= now() - interval 1 HOURS" connection="chc"
| eval time = strptime(time, "%Y-%m-%d %H:%M:%S.%3Q")
| eval _time=time
| timechart avg(duration) as duration by orig_h
| eval duration=round(duration/60)
| sort - duration:

تعرّف على المزيد

إذا كنت ترغب في معرفة المزيد عن Splunk DB Connect وكيفية إنشاء لوحات المعلومات، فيُرجى زيارة وثائق Splunk.
آخر تعديل في ٢٩ يونيو ٢٠٢٦