الانتقال إلى المحتوى الرئيسي
باختصاراجمع سجلات خادم Redis واستعرضها بصريًا في ClickStack باستخدام receiver ‏OTel ‏filelog. يتضمن ذلك مجموعة بيانات تجريبية ولوحة معلومات جاهزة مسبقًا.

التكامل مع Redis الحالي

يتناول هذا القسم كيفية تهيئة تثبيت Redis الحالي لديك لإرسال السجلات إلى ClickStack، وذلك من خلال تعديل إعداد ClickStack OTel collector. إذا أردت اختبار تكامل Redis قبل تهيئة إعدادك الحالي، فيمكنك استخدام الإعداد المهيأ مسبقًا وبيانات العينة في قسم “مجموعة البيانات التجريبية”.

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

  • مثيل ClickStack قيد التشغيل
  • وجود Redis مثبّت (الإصدار 3.0 أو أحدث)
  • الوصول إلى ملفات سجل Redis
1

تحقّق من إعدادات تسجيل Redis

أولاً، تحقّق من إعدادات تسجيل Redis لديك. اتصل بـ Redis وتحقّق من مسار ملف السجل:
redis-cli CONFIG GET logfile
مواقع ملفات سجل Redis الشائعة:
  • Linux (apt/yum): /var/log/redis/redis-server.log
  • macOS (Homebrew): /usr/local/var/log/redis.log
  • Docker: غالبًا ما تُسجَّل السجلات في stdout، لكن يمكن تهيئته للكتابة إلى /data/redis.log
إذا كان Redis يكتب سجلاته إلى stdout، فقم بتهيئته للكتابة إلى ملف عبر تحديث redis.conf:
# Log to file instead of stdout
logfile /var/log/redis/redis-server.log

# Set log level (options: debug, verbose, notice, warning)
loglevel notice
بعد تغيير الإعدادات، أعد تشغيل Redis:
# For systemd
sudo systemctl restart redis

# For Docker
docker restart <redis-container>
2

أنشئ تهيئة مخصصة لـ OTel collector

يتيح لك ClickStack توسيع تهيئة OpenTelemetry Collector الأساسية عبر إرفاق ملف تهيئة مخصص وتعيين متغير بيئة. وتُدمَج هذه التهيئة المخصصة مع التهيئة الأساسية التي يديرها HyperDX عبر OpAMP.أنشئ ملفًا باسم redis-monitoring.yaml بالتكوين التالي:
receivers:
  filelog/redis:
    include:
      - /var/log/redis/redis-server.log
    start_at: beginning
    operators:
      - type: regex_parser
        regex: '^(?P\d+):(?P\w+) (?P\d{2} \w+ \d{4} \d{2}:\d{2}:\d{2})\.\d+ (?P[.\-*#]) (?P.*)$'
        parse_from: body
        parse_to: attributes
      
      - type: time_parser
        parse_from: attributes.timestamp
        layout: '%d %b %Y %H:%M:%S'
      
      - type: add
        field: attributes.source
        value: "redis"
      
      - type: add
        field: resource["service.name"]
        value: "redis-production"

service:
  pipelines:
    logs/redis:
      receivers: [filelog/redis]
      processors:
        - memory_limiter
        - transform
        - batch
      exporters:
        - clickhouse
هذا الإعداد:
  • يقرأ سجلات Redis من موقعها القياسي
  • يحلّل تنسيق سجلات Redis باستخدام Regex لاستخراج الحقول المنظَّمة (pid, role, timestamp, log_level, message)
  • يضيف السمة source: redis لتسهيل التصفية في HyperDX
  • يوجّه السجلات إلى مُصدِّر ClickHouse عبر خط أنابيب مخصّص
  • ما عليك سوى تعريف receivers وخطوط الأنابيب الجديدة في الإعداد المخصّص
  • إن المعالجات (memory_limiter, transform, batch) والمُصدِّرات (clickhouse) معرّفة مسبقًا في إعداد ClickStack الأساسي، وما عليك إلا الإشارة إليها بالاسم
  • يستخرج المشغّل time_parser الطوابع الزمنية من سجلات Redis للحفاظ على توقيتها الأصلي
  • يستخدم هذا الإعداد start_at: beginning لقراءة جميع السجلات الموجودة عند بدء تشغيل المُجمِّع، ما يتيح لك رؤية السجلات فورًا. أمّا في عمليات النشر في بيئات الإنتاج، حيث تريد تجنّب إعادة إدخال السجلات عند إعادة تشغيل المُجمِّع، فغيّره إلى start_at: end.
3

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

لتمكين إعدادات المجمِّع المخصّصة في عملية نشر ClickStack الحالية لديك، يجب عليك:
  1. تحميل ملف الإعدادات المخصّص إلى /etc/otelcol-contrib/custom.config.yaml
  2. تعيين متغيّر البيئة CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml
  3. تحميل دليل سجلات Redis لديك حتى يتمكّن المجمِّع من قراءتها
الخيار 1: Docker Compose
حدّث إعدادات نشر ClickStack لديك:
services:
  clickstack:
    # ... existing configuration ...
    environment:
      - CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml
      # ... other environment variables ...
    volumes:
      - ./redis-monitoring.yaml:/etc/otelcol-contrib/custom.config.yaml:ro
      - /var/log/redis:/var/log/redis:ro
      # ... other volumes ...
الخيار 2: Docker Run (الصورة الشاملة)
إذا كنت تستخدم الصورة الشاملة مع Docker، فشغّل:
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)/redis-monitoring.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
  -v /var/log/redis:/var/log/redis:ro \
  clickhouse/clickstack-all-in-one:latest
تأكد من أن مجمّع ClickStack لديه الأذونات المناسبة لقراءة ملفات سجلات Redis. في بيئة الإنتاج، استخدم نقاط تركيب للقراءة فقط (:ro) واتبع مبدأ أقل الصلاحيات.
4

التحقق من السجلات في HyperDX

بعد إكمال الإعداد، سجّل الدخول إلى HyperDX وتحقّق من أن السجلات تصل كما ينبغي:

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

للمستخدمين الذين يريدون اختبار تكامل Redis قبل تهيئة أنظمة production الخاصة بهم، نوفر مجموعة بيانات تجريبية من سجلات Redis مُولَّدة مسبقًا بأنماط واقعية.
1

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

نزّل ملف السجل التجريبي:
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/redis/redis-server.log
2

إنشاء إعداد أداة التجميع للاختبار

أنشئ ملفًا باسم redis-demo.yaml بالإعداد التالي:
cat > redis-demo.yaml << 'EOF'
receivers:
  filelog/redis:
    include:
      - /tmp/redis-demo/redis-server.log
    start_at: beginning  # اقرأ من البداية للبيانات التجريبية
    operators:
      - type: regex_parser
        regex: '^(?P<pid>\d+):(?P<role>\w+) (?P<timestamp>\d{2} \w+ \d{4} \d{2}:\d{2}:\d{2})\.\d+ (?P<log_level>[.\-*#]) (?P<message>.*)$'
        parse_from: body
        parse_to: attributes
      
      - type: time_parser
        parse_from: attributes.timestamp
        layout: '%d %b %Y %H:%M:%S'
      
      - type: add
        field: attributes.source
        value: "redis-demo"
      
      - type: add
        field: resource["service.name"]
        value: "redis-demo"

service:
  pipelines:
    logs/redis-demo:
      receivers: [filelog/redis]
      processors:
        - memory_limiter
        - transform
        - batch
      exporters:
        - clickhouse
EOF
3

تشغيل 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)/redis-demo.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
  -v "$(pwd)/redis-server.log:/tmp/redis-demo/redis-server.log:ro" \
  clickhouse/clickstack-all-in-one:latest
يؤدي ذلك إلى ربط ملف السجل مباشرةً داخل الحاوية. ويُستخدم هذا لأغراض الاختبار مع بيانات تجريبية ثابتة.

التحقق من السجلات في HyperDX

بعد تشغيل ClickStack:
  1. افتح HyperDX وسجّل الدخول إلى حسابك (قد تحتاج أولًا إلى إنشاء حساب)
  2. انتقل إلى Search view واضبط source على Logs
  3. اضبط time range على 2025-10-26 10:00:00 - 2025-10-29 10:00:00
عرض المنطقة الزمنيةيعرض HyperDX الطوابع الزمنية بحسب المنطقة الزمنية المحلية في متصفحك. تمتد البيانات التجريبية عبر 2025-10-27 10:00:00 - 2025-10-28 10:00:00 (UTC). يضمن النطاق الزمني الواسع ظهور السجلات التجريبية بغض النظر عن موقعك. وبعد ظهور السجلات، يمكنك تضييق النطاق إلى فترة 24 ساعة للحصول على مرئيات أوضح.

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

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

إعدادات لوحة المعلومات

2

استيراد لوحة معلومات مُعدّة مسبقًا

  1. افتح HyperDX وانتقل إلى قسم لوحات المعلومات.
  2. انقر على “استيراد لوحة معلومات” في الزاوية العلوية اليمنى ضمن قائمة النقاط الثلاث.
  1. ارفع ملف redis-logs-dashboard.json ثم انقر على إنهاء الاستيراد.
3

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

بالنسبة إلى مجموعة البيانات التجريبية، اضبط النطاق الزمني على 2025-10-27 10:00:00 - 2025-10-28 10:00:00 (UTC) (عدّله وفقًا لمنطقتك الزمنية المحلية). لن تتضمن لوحة المعلومات المستوردة نطاقًا زمنيًا محددًا افتراضيًا.

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

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

تحقّق من ضبط متغيّر البيئة بشكل صحيح:
docker exec <container-name> printenv CUSTOM_OTELCOL_CONFIG_FILE
# Expected output: /etc/otelcol-contrib/custom.config.yaml
تأكد من تحميل ملف الإعدادات المخصّص:
docker exec <container-name> ls -lh /etc/otelcol-contrib/custom.config.yaml
# Expected output: Should show file size and permissions
اعرض محتوى التهيئة المخصصة:
docker exec <container-name> cat /etc/otelcol-contrib/custom.config.yaml
# Should display your redis-monitoring.yaml content
تحقّق من أن التهيئة الفعّالة تتضمّن مستقبِل filelog الخاص بك:
docker exec <container> cat /etc/otel/supervisor-data/effective.yaml | grep -A 10 filelog
# Should show your filelog/redis receiver configuration

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

تأكد من أن Redis يكتب السجلات إلى ملف:
redis-cli CONFIG GET logfile
# Expected output: Should show a file path, not empty string
# Example: 1) "logfile" 2) "/var/log/redis/redis-server.log"
تحقق من أن Redis يسجّل السجلات بالفعل:
tail -f /var/log/redis/redis-server.log
# Should show recent log entries in Redis format
تحقق من أن أداة التجميع يمكنها قراءة السجلات:
docker exec <container> cat /var/log/redis/redis-server.log
# Should display Redis log entries
تحقّق من وجود أخطاء في سجلات أداة التجميع:
docker exec <container> cat /etc/otel/supervisor-data/agent.log
# Look for any error messages related to filelog or Redis
إذا كنت تستخدم docker-compose، فتحقّق من وحدات التخزين المشتركة:
# Check both containers are using the same volume
docker volume inspect <volume-name>
# Verify both containers have the volume mounted

السجلات لا تُحلَّل على نحو صحيح

تحقق من أن تنسيق سجلات Redis يطابق النمط المتوقع:
# Redis Logs should look like:
# 12345:M 28 Oct 2024 14:23:45.123 * Server started
tail -5 /var/log/redis/redis-server.log
إذا كانت سجلات Redis لديك بتنسيق مختلف، فقد تحتاج إلى تعديل نمط Regex في المعامل regex_parser. التنسيق القياسي هو:
  • pid:role timestamp level message
  • مثال: 12345:M 28 Oct 2024 14:23:45.123 * Server started

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

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

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

يستفيد هذا الدليل من OpenTelemetry Collector المدمج في ClickStack لتوفير إعداد سريع. أما لعمليات النشر في بيئة الإنتاج، فنوصي بتشغيل OTel Collector الخاص بك وإرسال البيانات إلى نقطة نهاية OTLP الخاصة بـ ClickStack. راجع إرسال بيانات OpenTelemetry للاطلاع على إعدادات الإنتاج.
آخر تعديل في ٢٥ يونيو ٢٠٢٦