أين يخزن ويعرض Discourse السجلات؟

عند استكشاف مشكلات أو أخطاء Discourse، من المهم مراجعة السجلات (logs). فيما يلي قائمة بمواقعها وما تحتويه.

نطاق موقعك

سجلات الإدارة المعروضة في واجهة المستخدم

تحتوي لوحة تحكم إدارة Discourse على عدة أشكال من التسجيل (logging):

واجهة المستخدم الرسومية لعرض السجلات Logster

يأتي كل تثبيت لـ Discourse مزودًا بعارض سجلات بواجهة رسومية (GUI). وهو موجود على: https://=DOMAIN=/logs

ملاحظة: إذا كنت تستخدم خطة مستضافة، فقد تكون هذه الصفحة مخفية عنك. بدلاً من ذلك، اتصل بالدعم عندما تواجه هذا النوع من المشكلات!

إذا كنت تحقق في خطأ غامض 500 (500 error) في المنتديات، فيجب عليك دائمًا تجربة هذا المكان أولاً!

حدد سطر الخطأ للحصول على تفاصيل عنه. قد يُطلب منك تقديم محتويات علامات التبويب env و backtrace هنا على Meta.

سجلات Rails / Pitchfork

يحتوي Ruby on Rails على سجل مفصل للغاية يتم كتابته على القرص. بالإضافة إلى ذلك، يقوم خادم الويب pitchfork (وهو نسخة مشتقة من unicorn) أيضًا بالتسجيل على القرص.

للوصول إليها:

cd /var/discourse
./launcher enter app
cd /shared/log/rails

يحتوي هذا المجلد على “production.log” و “unicorn.stderr.log” بالإضافة إلى ملفات السجل “المُدارة” (rotated). يمكنك استخدام أدوات Unix القياسية مثل less production.log لفحصها.

هذا المجلد متاح أيضًا دون الدخول إلى الحاوية عبر المسار /var/discourse/shared/standalone/log/rails.

سجلات NGINX

قد تحتوي سجلات NGINX في بعض الأحيان على بعض التلميحات الإضافية، وهي موجودة في:

cd /var/discourse
./launcher enter app
cd /var/log/nginx

سيكون الملفان access.log و error.log موجودين هناك بالإضافة إلى مجموعة من الملفات المضغوطة التي تم تدويرها. سيؤدي تشغيل less access.log.2.gz إلى فك ضغط ملف السجل وعرضه تلقائيًا لك.

هذا الدليل متاح أيضًا على المضيف عبر المسار /var/discourse/shared/standalone/log/var-log/nginx.

سجلات Redis

على الرغم من أنه من النادر جدًا الحاجة إلى رؤية سجلات Redis، إذا احتجت إليها، فإنها تذهب إلى /var/log/redis داخل الحاوية و /var/discourse/shared/standalone/log/var-log/redis على المضيف. ستكون أحدث إدخالات السجل موجودة في ملف current في ذلك الدليل.

سجلات PostgreSQL

إذا كنت بحاجة إلى مراجعة سجلات خادم قاعدة البيانات، فهي موجودة في /var/log/postgres داخل الحاوية و /var/discourse/shared/standalone/log/var-log/postgres على المضيف؛ تكون أحدث الإدخالات في الملف current في ذلك الدليل.

46 إعجابًا

Is there any option/console in admin ui to run these command and get logs in web? I do not see any option.

إعجابَين (2)

I have also found this log to be useful:

./launcher logs app

This shows any errors during the build process if you don’t know which app to look at.

7 إعجابات

I don’t have a postgres folder in /var/log/postgres or /var/discourse/shared/standalone/log/var-log/postgres. Is there some configuration I need to make to generate DB logs?

إعجاب واحد (1)

If You’re using a 2 container install or external postgres, then the logs will not be there.

For 2 container install, the logs should be in the
/var/discourse/shared/data/log/var-log/postgres

For external postgres, your logs should be with the managed db provider.

4 إعجابات

عندما يتسبب مكون إضافي في حدوث فشل أثناء إعادة البناء، أين توجد السجلات التي تعرض الخطأ المحدد داخل المكون الإضافي؟

إعجاب واحد (1)

إنهم يعيشون في نافذة الطرفية حيث قمت بتشغيل إعادة البناء. إذا لم يكن لديك مساحة كافية للتمرير في الطرفية الخاصة بك، فسيتعين عليك الانتباه أثناء إعادة البناء (أو البحث في جوجل لمعرفة كيفية زيادة مساحة التمرير، أو لتوجيه المخرجات إلى مكان يمكنك العثور عليه لاحقًا).

إعجاب واحد (1)

يبدو أن العنصر النائب لا يعمل في القائمة

إعجاب واحد (1)

أحاول معرفة أي من هذه السجلات تحتوي على بيانات شخصية وكم من الوقت يتم الاحتفاظ بها. يبدو أن:

  • يتم الاحتفاظ بسجلات البريد الإلكتروني لمدة 90 يومًا افتراضيًا
  • تحتوي سجلات Rails على عناوين IP ويتم تدويرها بعد 7 أيام (من \* logrotate.d)
  • ينطبق الشيء نفسه على NGINX
  • قد تحتوي سجلات الموظفين/الفحص على بيانات شخصية ويتم الاحتفاظ بها إلى الأبد

هل فاتني أي شيء هنا؟

هل يمكن أن تحتوي سجلات الأخطاء (discourse.example.com/logs) على بيانات شخصية أيضًا، وإذا كان الأمر كذلك، فهل يتم تدويرها؟
هل يمكن أن تحتوي سجلات الحاوية على معلومات شخصية؟ (أي \\./launcher logs app\` إلخ.) أعتقد أنه يجب تكوين هذه السجلات يدويًا عبر docker لتدويرها.