Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

مراقبة سجلات المضيف باستخدام ClickStack

التكامل مع المضيفين الحاليين

يشرح هذا القسم كيفية تهيئة المضيفين الحاليين لديك لإرسال سجلات النظام إلى 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:
        - clickhouse

جميع الإعدادات:

  • اقرأ ملفات syslog من مواقعها القياسية
  • حلّل تنسيق syslog لاستخراج الحقول المنظَّمة (الطابع الزمني، اسم المضيف، الوحدة/الخدمة، PID، الرسالة)
  • احتفِظ بالطوابع الزمنية الأصلية للسجلات
  • أضِف السمة source: host-logs لتسهيل التصفية في HyperDX
  • وجّه السجلات إلى مُصدِّر ClickHouse عبر pipeline مخصّص

هيّئ ClickStack لتحميل إعدادات مخصصة

لتمكين إعدادات المجمّع المخصصة في نشر ClickStack الحالي لديك، يجب عليك:

  1. ربط ملف الإعدادات المخصص في المسار /etc/otelcol-contrib/custom.config.yaml
  2. تعيين متغير البيئة CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml
  3. ربط دليل 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 وتحقّق من أن السجلات تتدفّق:

  1. انتقل إلى عرض البحث
  2. اضبط المصدر على Logs
  3. صفِّ باستخدام source:host-logs لعرض السجلات الخاصة بالمضيف
  4. ينبغي أن ترى إدخالات سجل منظَّمة تتضمن حقولًا مثل 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:

  1. افتح HyperDX وسجّل الدخول إلى حسابك (قد تحتاج إلى إنشاء حساب أولًا)
  2. انتقل إلى Search view واضبط المصدر على Logs
  3. اضبط النطاق الزمني على 2025-11-10 00:00:00 - 2025-11-13 00:00:00
Search view
Log view

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

لمساعدتك على بدء مراقبة سجلات المضيف باستخدام ClickStack، نوفر تصورات أساسية لسجلات النظام.

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

استورد لوحة المعلومات الجاهزة

  1. افتح HyperDX وانتقل إلى قسم لوحات المعلومات
  2. انقر على استيراد لوحة معلومات في الزاوية العلوية اليمنى ضمن قائمة النقاط الثلاث
زر استيراد لوحة المعلومات
  1. ارفع الملف 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 للاطلاع على إعدادات بيئة الإنتاج.

Navigation