الخلاصةاجمع سجلات أخطاء MySQL وسجلات الاستعلامات البطيئة واعرضها بصريًا في ClickStack باستخدام مستقبِل
filelog من OTel. يتضمن ذلك مجموعة بيانات تجريبية ولوحة معلومات جاهزة مسبقًا.التكامل مع MySQL الحالي
المتطلبات الأساسية
- مثيل ClickStack قيد التشغيل
- تثبيت MySQL موجود (الإصدار 5.7 أو أحدث)
- إمكانية تعديل ملفات إعداد MySQL
- مساحة قرص كافية لملفات السجل
تهيئة تسجيل MySQL
يدعم MySQL عدة أنواع من السجلات. وللحصول على مراقبة شاملة باستخدام OpenTelemetry، نوصي بتمكين سجل الأخطاء وسجل الاستعلامات البطيئة.يوجد ملف التهيئةmy.cnf أو my.ini عادةً في:- Linux (apt/yum):
/etc/mysql/my.cnfأو/etc/my.cnf - macOS (Homebrew):
/usr/local/etc/my.cnfأو/opt/homebrew/etc/my.cnf - Docker: تُضبط التهيئة عادةً عبر متغيرات البيئة أو من خلال ملف تهيئة يتم ربطه
[mysqld]:يلتقط سجل الاستعلامات البطيئة الاستعلامات التي تستغرق أكثر من
long_query_time ثانية. اضبط هذه العتبة وفقًا لمتطلبات أداء تطبيقك. سيؤدي ضبطها على قيمة منخفضة جدًا إلى إنشاء عدد مفرط من السجلات.أنشئ إعدادًا مخصصًا لـ OTel collector
يتيح لك ClickStack توسيع إعداد OpenTelemetry Collector الأساسي من خلال تركيب ملف إعداد مخصص وتعيين متغير بيئة. ويُدمج الإعداد المخصص مع الإعداد الأساسي الذي يديره HyperDX عبر OpAMP.أنشئ ملفًا باسمmysql-logs-monitoring.yaml يتضمن الإعداد التالي:- يقرأ سجلات أخطاء MySQL وسجلات الاستعلامات البطيئة من مواقعها القياسية
- يتعامل مع إدخالات السجل متعددة الأسطر (إذ تمتد الاستعلامات البطيئة عبر عدة أسطر)
- يحلّل كِلا تنسيقي السجل لاستخراج الحقول المنظَّمة (level, error_code, query_time, rows_examined)
- يحتفظ بالطوابع الزمنية الأصلية للسجلات
- يضيف السمات
source: mysql-errorوsource: mysql-slowلاستخدامها في التصفية داخل HyperDX - يوجّه السجلات إلى ClickHouse exporter عبر
pipelineمخصّص
يلزم استخدام receiverَين لأن سجلات أخطاء MySQL وسجلات الاستعلامات البطيئة لها تنسيقات مختلفة تمامًا. يستخدم
time_parser تخطيط gotime للتعامل مع تنسيق الطابع الزمني ISO8601 الخاص بـ MySQL مع إزاحات المنطقة الزمنية.هيّئ ClickStack لتحميل تهيئة مخصصة
لتمكين تهيئة collector مخصصة في نشر ClickStack الحالي، اربط ملف التهيئة المخصص عند/etc/otelcol-contrib/custom.config.yaml واضبط متغير البيئة CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml.حدّث تهيئة نشر ClickStack:تأكد من أن ClickStack collector لديه الأذونات المناسبة لقراءة ملفات سجلّات MySQL. استخدم نقاط تحميل للقراءة فقط (
:ro) والتزم بمبدأ الحد الأدنى من الامتيازات.التحقق من السجلات في HyperDX
بمجرد اكتمال الإعداد، سجّل الدخول إلى HyperDX وتحقق من تدفق السجلات:- انتقل إلى عرض البحث
- اضبط المصدر على Logs
- صفِّ باستخدام
source:mysql-errorأوsource:mysql-slowلعرض السجلات الخاصة بـ MySQL - ينبغي أن ترى إدخالات سجل مهيكلة تتضمن حقولًا مثل
levelوerror_codeوmessage(لسجلات الأخطاء)، وquery_timeوrows_examinedوquery(لسجلات الاستعلامات البطيئة)
مجموعة بيانات تجريبية
نزّل مجموعة البيانات التجريبية
نزّل ملفات السجل التجريبية:- سجلات الأخطاء (رسائل بدء التشغيل، والتحذيرات، وأخطاء الاتصال، ورسائل InnoDB)
- الاستعلامات البطيئة ذات خصائص الأداء الواقعية
- أحداث دورة حياة الاتصال
- تسلسلات بدء تشغيل خادم قاعدة البيانات وإيقافه
تحقّق من السجلات في HyperDX
بمجرد تشغيل ClickStack:- انتظر بضع لحظات حتى يكتمل تهيئة ClickStack بالكامل (عادةً خلال 30 إلى 60 ثانية)
- افتح HyperDX وسجّل الدخول إلى حسابك (قد تحتاج إلى إنشاء حساب أولًا)
- انتقل إلى عرض Search واضبط المصدر على
Logs - اضبط النطاق الزمني على 2025-11-13 00:00:00 - 2025-11-16 00:00:00
- من المفترض أن ترى ما مجموعه 40 سجلًا (30 سجل error مع
source:mysql-demo-error+ 10 queries بطيئة معsource:mysql-demo-slow)
إذا لم تظهر لك السجلات الأربعون كلها فورًا، فانتظر نحو دقيقة حتى ينتهي collector من المعالجة. وإذا لم تظهر السجلات بعد الانتظار، فنفّذ
docker restart clickstack-demo ثم تحقّق مرة أخرى بعد دقيقة إضافية. هذه مشكلة معروفة في filelog receiver الخاص بـ OpenTelemetry عند التحميل المجمّع لملفات موجودة مسبقًا باستخدام start_at: beginning. أما عمليات النشر في بيئة production التي تستخدم start_at: end فتعالج السجلات لحظة كتابتها بشكل real-time، ولا تواجه هذه المشكلة.عرض المنطقة الزمنيةيعرض HyperDX الطوابع الزمنية وفق المنطقة الزمنية المحلية في متصفحك. تمتد بيانات العرض التوضيحي عبر 2025-11-14 00:00:00 - 2025-11-15 00:00:00 (UTC). ويضمن النطاق الزمني الواسع ظهور سجلات العرض التوضيحي بغض النظر عن موقعك. وبعد ظهور السجلات، يمكنك تضييق النطاق إلى فترة 24 ساعة للحصول على تصورات أوضح.
لوحات المعلومات والتصورات
إعداد لوحة المعلومات
استيراد لوحة المعلومات المعدّة مسبقًا
- افتح HyperDX وانتقل إلى قسم Dashboards
- انقر على Import Dashboard في الزاوية العلوية اليمنى من قائمة النقاط الثلاث
- ارفع ملف
mysql-logs-dashboard.jsonثم انقر على Finish Import
عرض لوحة المعلومات
سيتم إنشاء لوحة المعلومات مع إعداد جميع التصورات مسبقًا.بالنسبة إلى مجموعة البيانات التجريبية، اضبط النطاق الزمني على 2025-11-14 00:00:00 - 2025-11-15 00:00:00 (UTC) (عدّله وفق منطقتك الزمنية المحلية). لن تتضمن لوحة المعلومات المستوردة نطاقًا زمنيًا محددًا افتراضيًا.
استكشاف الأخطاء وإصلاحها
تعذّر تحميل التهيئة المخصّصة
عدم ظهور أي سجلات في HyperDX
عدم ظهور سجلات الاستعلامات البطيئة
عدم تحليل السجلات بشكل صحيح
الخطوات التالية
- أعدّ التنبيهات للأحداث الحرجة (مثل حالات فشل الاتصال، والاستعلامات البطيئة التي تتجاوز الحدود المحددة، والارتفاع المفاجئ في الأخطاء)
- أنشئ لوحات معلومات مخصصة لتحليل الاستعلامات البطيئة حسب نمط الاستعلام
- اضبط
long_query_timeبناءً على الأنماط المرصودة في أداء الاستعلامات