Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

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

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

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

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

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

تحقّق من إعدادات تسجيل 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>

أنشئ تهيئة مخصصة لـ 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 عبر خط أنابيب مخصّص

تهيئة 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

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

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

عرض السجلات
سجل

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

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

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

نزّل ملف السجل التجريبي:

curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/redis/redis-server.log

إنشاء تهيئة collector للاختبار

أنشئ ملفًا باسم 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

تشغيل 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
عرض السجل
سجل

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

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

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

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

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

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

لوحة معلومات نموذجية

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

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

تحقّق من ضبط متغيّر البيئة بشكل صحيح:

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 للاطلاع على إعدادات بيئة الإنتاج.

Navigation