التكامل مع 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 الحالية لديك، يجب عليك:
- تحميل ملف الإعدادات المخصّص إلى
/etc/otelcol-contrib/custom.config.yaml - تعيين متغيّر البيئة
CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml - تحميل دليل سجلات 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:
- افتح HyperDX وسجّل الدخول إلى حسابك (قد تحتاج أولًا إلى إنشاء حساب)
- انتقل إلى Search view واضبط source على
Logs - اضبط time range على 2025-10-26 10:00:00 - 2025-10-29 10:00:00


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

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