التكامل مع المضيفين الحاليين
يشرح هذا القسم كيفية تهيئة المضيفين الحاليين لديك لإرسال سجلات النظام إلى ClickStack، وذلك عبر تعديل إعدادات ClickStack OTel مجمّع لقراءة جميع ملفات سجلات النظام (syslog وauth وkernel وdaemon وسجلات التطبيقات).
إذا كنت ترغب في اختبار تكامل سجلات المضيف قبل تهيئة إعدادك الحالي، فيمكنك إجراء الاختبار باستخدام الإعداد المهيأ مسبقًا وبيانات العينة في قسم "مجموعة البيانات التجريبية".
المتطلبات المسبقة
- مثيل ClickStack قيد التشغيل
- نظام يحتوي على ملفات syslog
- إمكانية تعديل ملفات تكوين ClickStack
تأكّد من وجود ملفات syslog
أولاً، تأكّد من أن نظامك يُنشئ ملفات syslog:
# Check if syslog files exist (Linux)
ls -la /var/log/syslog /var/log/messages
# Or on macOS
ls -la /var/log/system.log
# View recent entries
tail -20 /var/log/syslogالمواقع الشائعة لملفات syslog:
- Ubuntu/Debian:
/var/log/syslog - RHEL/CentOS/Fedora:
/var/log/messages - macOS:
/var/log/system.log
إنشاء تهيئة مخصصة لـ OTel collector
يتيح لك ClickStack توسيع إعداد OpenTelemetry Collector الأساسي عن طريق ربط ملف إعداد مخصص وضبط متغير بيئة.
أنشئ ملفًا باسم host-logs-monitoring.yaml يتضمن إعدادات نظامك:
receivers:
filelog/syslog:
include:
- /var/log/syslog
- /var/log/**/*.log
start_at: end
operators:
- type: regex_parser
regex: '^(?P<timestamp>\S+) (?P<hostname>\S+) (?P<unit>\S+?)(?:\[(?P<pid>\d+)\])?: (?P<message>.*)$'
parse_from: body
parse_to: attributes
- type: time_parser
parse_from: attributes.timestamp
layout_type: gotime
layout: '2006-01-02T15:04:05.999999-07:00'
- type: add
field: attributes.source
value: "host-logs"
- type: add
field: resource["service.name"]
value: "host-production"
service:
pipelines:
logs/host:
receivers: [filelog/syslog]
processors:
- memory_limiter
- transform
- batch
exporters:
- clickhousereceivers:
filelog/syslog:
include:
- /var/log/syslog
- /var/log/messages
- /var/log/**/*.log
start_at: end
operators:
- type: regex_parser
regex: '^(?P<timestamp>\w+ \d+ \d{2}:\d{2}:\d{2}) (?P<hostname>\S+) (?P<unit>\S+?)(?:\[(?P<pid>\d+)\])?: (?P<message>.*)$'
parse_from: body
parse_to: attributes
- type: time_parser
parse_from: attributes.timestamp
layout: '%b %d %H:%M:%S'
- type: add
field: attributes.source
value: "host-logs"
- type: add
field: resource["service.name"]
value: "host-production"
service:
pipelines:
logs/host:
receivers: [filelog/syslog]
processors:
- memory_limiter
- transform
- batch
exporters:
- clickhousereceivers:
filelog/syslog:
include:
- /var/log/system.log
- /host/private/var/log/*.log
start_at: end
operators:
- type: regex_parser
regex: '^(?P<timestamp>\w+ \d+ \d{2}:\d{2}:\d{2}) (?P<hostname>\S+) (?P<unit>\S+?)(?:\[(?P<pid>\d+)\])?: (?P<message>.*)$'
parse_from: body
parse_to: attributes
- type: time_parser
parse_from: attributes.timestamp
layout: '%b %d %H:%M:%S'
- type: add
field: attributes.source
value: "host-logs"
- type: add
field: resource["service.name"]
value: "host-production"
service:
pipelines:
logs/host:
receivers: [filelog/syslog]
processors:
- memory_limiter
- transform
- batch
exporters:
- clickhouseجميع الإعدادات:
- اقرأ ملفات syslog من مواقعها القياسية
- حلّل تنسيق syslog لاستخراج الحقول المنظَّمة (الطابع الزمني، اسم المضيف، الوحدة/الخدمة، PID، الرسالة)
- احتفِظ بالطوابع الزمنية الأصلية للسجلات
- أضِف السمة
source: host-logsلتسهيل التصفية في HyperDX - وجّه السجلات إلى مُصدِّر ClickHouse عبر pipeline مخصّص
هيّئ ClickStack لتحميل إعدادات مخصصة
لتمكين إعدادات المجمّع المخصصة في نشر ClickStack الحالي لديك، يجب عليك:
- ربط ملف الإعدادات المخصص في المسار
/etc/otelcol-contrib/custom.config.yaml - تعيين متغير البيئة
CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml - ربط دليل
syslogلديك لكي يتمكن المجمّع من قراءته
الخيار 1: Docker Compose
حدّث إعدادات نشر ClickStack لديك:
services:
clickstack:
# ... existing configuration ...
environment:
- CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml
# ... other environment variables ...
volumes:
- ./host-logs-monitoring.yaml:/etc/otelcol-contrib/custom.config.yaml:ro
- /var/log:/var/log:ro
# ... other volumes ...الخيار 2: Docker Run (الصورة المتكاملة)
إذا كنت تستخدم الصورة المتكاملة مع docker run:
docker run --name clickstack \
-p 8080:8080 -p 4317:4317 -p 4318:4318 \
-e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
-v "$(pwd)/host-logs-monitoring.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
-v /var/log:/var/log:ro \
clickhouse/clickstack-all-in-one:latestالتحقّق من السجلات في HyperDX
بعد إتمام الإعداد، سجّل الدخول إلى HyperDX وتحقّق من أن السجلات تتدفّق:
- انتقل إلى عرض البحث
- اضبط المصدر على Logs
- صفِّ باستخدام
source:host-logsلعرض السجلات الخاصة بالمضيف - ينبغي أن ترى إدخالات سجل منظَّمة تتضمن حقولًا مثل
unitوhostnameوpidوmessageوغيرها.


مجموعة البيانات التجريبية
للمستخدمين الذين يريدون اختبار تكامل سجلات المضيف قبل تهيئة أنظمة الإنتاج الخاصة بهم، نوفر مجموعة بيانات نموذجية من سجلات النظام المُنشأة مسبقًا بأنماط واقعية.
تنزيل مجموعة البيانات النموذجية
نزّل ملف السجل النموذجي:
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/host-logs/journal.logتتضمن مجموعة البيانات:
- تسلسل إقلاع النظام
- نشاط تسجيل الدخول عبر SSH (محاولات ناجحة وفاشلة)
- حادثة أمنية (هجوم brute force مع استجابة fail2ban)
- صيانة مجدولة (مهام cron وanacron)
- عمليات إعادة تشغيل الخدمات (rsyslog)
- رسائل النواة ونشاط الجدار الناري
- مزيج من العمليات العادية والأحداث البارزة
أنشئ تهيئة collector للاختبار
أنشئ ملفًا باسم host-logs-demo.yaml باستخدام التهيئة التالية:
cat > host-logs-demo.yaml << 'EOF'
receivers:
filelog/journal:
include:
- /tmp/host-demo/journal.log
start_at: beginning
operators:
- type: regex_parser
regex: '^(?P<timestamp>\S+) (?P<hostname>\S+) (?P<unit>\S+?)(?:\[(?P<pid>\d+)\])?: (?P<message>.*)$'
parse_from: body
parse_to: attributes
- type: time_parser
parse_from: attributes.timestamp
layout: '%Y-%m-%dT%H:%M:%S%z'
- type: add
field: attributes.source
value: "host-demo"
- type: add
field: resource["service.name"]
value: "host-demo"
service:
pipelines:
logs/host-demo:
receivers: [filelog/journal]
processors:
- memory_limiter
- transform
- batch
exporters:
- clickhouse
EOFشغّل ClickStack باستخدام التهيئة التجريبية
شغّل ClickStack باستخدام السجلات التجريبية وهذه التهيئة:
docker run --name clickstack-demo \
-p 8080:8080 -p 4317:4317 -p 4318:4318 \
-e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
-v "$(pwd)/host-logs-demo.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
-v "$(pwd)/journal.log:/tmp/host-demo/journal.log:ro" \
clickhouse/clickstack-all-in-one:latestتحقّق من السجلات في HyperDX
بعد تشغيل ClickStack:
- افتح HyperDX وسجّل الدخول إلى حسابك (قد تحتاج إلى إنشاء حساب أولًا)
- انتقل إلى Search view واضبط المصدر على
Logs - اضبط النطاق الزمني على 2025-11-10 00:00:00 - 2025-11-13 00:00:00


لوحات المعلومات والتصورات
لمساعدتك على بدء مراقبة سجلات المضيف باستخدام ClickStack، نوفر تصورات أساسية لسجلات النظام.
نزّل إعداد لوحة المعلومات
استورد لوحة المعلومات الجاهزة
- افتح HyperDX وانتقل إلى قسم لوحات المعلومات
- انقر على استيراد لوحة معلومات في الزاوية العلوية اليمنى ضمن قائمة النقاط الثلاث

- ارفع الملف
host-logs-dashboard.jsonوانقر على إتمام الاستيراد

اعرض لوحة المعلومات
ستُنشأ لوحة المعلومات مع تهيئة جميع التصورات مسبقًا:

تشمل التصورات الرئيسية ما يلي:
- حجم السجلات بمرور الوقت حسب مستوى الخطورة
- أكثر وحدات systemd توليدًا للسجلات
- نشاط تسجيل الدخول عبر SSH (الناجح مقابل الفاشل)
- نشاط جدار الحماية (المحظور مقابل المسموح)
- الأحداث الأمنية (عمليات تسجيل الدخول الفاشلة، والحظر، والحجب)
- نشاط إعادة تشغيل الخدمة
استكشاف الأخطاء وإصلاحها
تعذّر تحميل ملف الإعدادات المخصّص
تحقّق من تعيين متغير البيئة:
docker exec <container-name> printenv CUSTOM_OTELCOL_CONFIG_FILEتحقّق من أن ملف الإعدادات المخصّص مربوط ويمكن قراءته:
docker exec <container-name> cat /etc/otelcol-contrib/custom.config.yaml | head -10عدم ظهور السجلات في HyperDX
تأكّد من وجود ملفات syslog ومن استمرار الكتابة إليها:
# Check if syslog exists
ls -la /var/log/syslog /var/log/messages
# Verify logs are being written
tail -f /var/log/syslogتحقّق من قدرة المجمّع على قراءة السجلات:
docker exec <container> cat /var/log/syslog | head -20تحقّق من أن الإعدادات الفعّالة تتضمن مستقبِل filelog لديك:
docker exec <container> cat /etc/otel/supervisor-data/effective.yaml | grep -A 10 filelogتحقّق من وجود أخطاء في سجلات المجمّع:
docker exec <container> cat /etc/otel/supervisor-data/agent.log | grep -i "filelog\|syslog"إذا كنت تستخدم مجموعة البيانات التجريبية، فتأكّد من إمكانية الوصول إلى ملف السجل:
docker exec <container> cat /tmp/host-demo/journal.log | wc -lعدم تحليل السجلات بصورة صحيحة
تحقّق من أن تنسيق syslog لديك يطابق التهيئة التي اخترتها:
بالنسبة إلى Linux الحديث (Ubuntu 24.04+):
# Should show ISO8601 format: 2025-11-17T20:55:44.826796+00:00
tail -5 /var/log/syslogلأنظمة Linux القديمة أو macOS:
# Should show traditional format: Nov 17 14:16:16
tail -5 /var/log/syslog
# or
tail -5 /var/log/system.logإذا لم يكن التنسيق لديك مطابقًا، فحدّد علامة تبويب التهيئة المناسبة في قسم إنشاء تهيئة مخصصة لـ OTel مجمّع.
الخطوات التالية
- أعدّ التنبيهات لأحداث النظام الحرجة (تعطّل الخدمات، فشل المصادقة، تحذيرات القرص)
- رشّح حسب وحدات محددة لمراقبة خدمات بعينها
- اربط بين سجلات المضيف وسجلات التطبيق لاستكشاف الأخطاء وإصلاحها على نحو شامل
- أنشئ لوحات معلومات مخصصة لمراقبة الأمان (محاولات SSH، استخدام sudo، عمليات حظر جدار الحماية)
الانتقال إلى بيئة الإنتاج
يعتمد هذا الدليل على OpenTelemetry Collector المضمّن في ClickStack لتوفير إعداد سريع. أما في عمليات النشر على بيئة الإنتاج، فنوصي بتشغيل OTel Collector خاص بك وإرسال البيانات إلى نقطة نهاية OTLP الخاصة بـ ClickStack. راجع إرسال بيانات OpenTelemetry للاطلاع على إعدادات بيئة الإنتاج.