0Pricing
SQL Academy · درس

pgBadger لتحليل السجلات

شغّل pgBadger على سجلات Postgres لإنشاء تقارير HTML عن الاستعلامات البطيئة وانتظار الأقفال وأنماط الاتصالات

pgBadger لتحليل السجلات درس مجاني في SQL Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في SQL Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة SQL Academy 4 دروس في المجموع.

ما هو pgBadger

أداة لتحليل سجلات PostgreSQL مبنية على Perl، وتنتج تقارير HTML منسقة عن الاستعلامات البطيئة، وانتظارات الأقفال، والأخطاء، وأنماط الاتصالات. شغّلها دوريًا على سجلاتك.

تهيئة التسجيل

postgresql.conf:

log_destination = 'csvlog'
logging_collector = on
log_directory = 'pg_log'
log_min_duration_statement = '500ms'
log_lock_waits = on
log_temp_files = 0
log_checkpoints = on
log_connections = on
log_disconnections = on
log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h '

تشغيل pgBadger

أنشئ تقريرًا:

pgbadger /var/log/postgresql/postgresql-2024-03-15.csv \
  -o report.html

# Multiple files:
pgbadger /var/log/postgresql/*.csv -o report.html

محتويات التقرير

  • أبطأ الاستعلامات مع أمثلة
  • أكثر الاستعلامات تكرارًا
  • الاستعلامات التي تستهلك أكبر وقت
  • انتظارات الأقفال
  • الأخطاء
  • أنماط الاتصالات بمرور الوقت
  • استخدام الملفات المؤقتة
  • نشاط نقاط التحقق وعمليات vacuum

الوضع التزايدي

لتحليل السجلات باستمرار، أنشئ تقارير يومية:

pgbadger -I -O /var/www/pgbadger/ /var/log/postgresql/*.csv
# Updates an HTML dashboard incrementally.

التشغيل التلقائي عبر Cron

مهمة ليلية:

0 1 * * * pgbadger -I -O /var/www/pgbadger/ /var/log/postgresql/postgresql-`date +%F`.csv

مقابل pg_stat_statements

pg_stat_statements: مقاييس مجمّعة داخل قاعدة البيانات.
pgBadger: يحلل السجلات الأولية ويكتشف أنماطًا لا تظهر في البيانات المجمّعة، مثل انتظارات الأقفال والأخطاء واندفاعات الاتصالات.

استخراج أنماط انتظار الأقفال

يلخّص pgBadger انتظارات الأقفال، موضحًا أي الاستعلامات حَجبت استعلامات أخرى ومدة ذلك. وهذا مفيد جدًا لتشخيص مشكلات التعارض وحالات الجمود.

قسم الأخطاء

يعرض عدد مرات حدوث كل رمز خطأ. «23505 unique_violation: 12,000 مرة» علامة على أن التطبيق يعيد محاولة عمليات الإدراج المكررة.

الملفات المؤقتة

الاستعلامات التي تفيض إلى القرص، لأن عملية الترتيب أو التجزئة أكبر من أن تستوعبها work_mem:

log_temp_files = 0     -- log all temp file usage
-- pgBadger summarises queries that created temp files.

البدائل السحابية

تجري RDS Performance Insights وCloud SQL Query Insights وغيرها تحليلات مماثلة في البيئات المُدارة، وعادةً ما تعتمد على مصادر الإحصاءات نفسها.

خلاصة

يحوّل pgBadger سجلات Postgres إلى لوحة معلومات.

  • اضبط log_min_duration_statement
  • أنشئ تقارير HTML دورية
  • اكتشف انتظارات الأقفال والملفات المؤقتة وأنماط الأخطاء
  • استخدمه مكملًا لـ pg_stat_statements

اختبار سريع

لاحظت أن تطبيقك يعيد محاولة العديد من عمليات INSERT. ما إعداد سجل Postgres الذي يساعدك على تأكيد ذلك؟

الأسئلة الشائعة

هل درس «pgBadger لتحليل السجلات» مجاني؟

نعم — نص درس «pgBadger لتحليل السجلات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة SQL Academy، انتقل إلى CoddyKit PRO. تتضمن دورة SQL Academy 4 دروس في المجموع.

ماذا ستتعلم في «pgBadger لتحليل السجلات»؟

شغّل pgBadger على سجلات Postgres لإنشاء تقارير HTML عن الاستعلامات البطيئة وانتظار الأقفال وأنماط الاتصالات تتمرن على SQL Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ SQL Academy؟

لا تُشترط خبرة سابقة. SQL Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «pgBadger لتحليل السجلات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس SQL Academy هذا؟

نعم. كل درس في SQL Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. pg_stat_statements: أهم الاستعلامات
  2. pgBadger لتحليل السجلات
  3. تجميع الاتصالات: PgBouncer
  4. تخطيط السعة وتدقيق التضخم
← العودة إلى SQL Academy