تفعيل تدوير السجلّ لمكوّنات Edge

تناوب السجلات: هي عملية تناوب استخدام ملفات سجلات متعددة، وتسهّل إدارة الأنظمة التي تنشئ أعدادًا كبيرة من ملفات السجلات. تتيح ميزة "تناوب السجلات" التدوير التلقائي لملفات السجلّات وضغطها وإزالتها وإرسالها بالبريد الإلكتروني.

في Edge for Private Cloud، يتم ضبط بعض ملفات السجلّ الرئيسية في كل مكوّن apigee باستخدام آلية تدوير تلقائية. على سبيل المثال، في مكوّن معالج الرسائل، يتم ضبط الملفات التالية باستخدام آلية تدوير تلقائية باستخدام logback:

  • /opt/apigee/var/log/edge-message-processor/logs/system.log
  • /opt/apigee/var/log/edge-message-processor/logs/events.log
  • /opt/apigee/var/log/edge-message-processor/logs/startupruntimeerrors.log
  • /opt/apigee/var/log/edge-message-processor/logs/configurations.log
  • /opt/apigee/var/log/edge-message-processor/logs/transactions.log

تتوفّر ملفات مشابهة لمكوّنات edge-* الأخرى (التي تبدأ أسماؤها بـ edge-)، مثل edge-management-server وedge-router وedge-postgres-server وedge-qpid-server.

ينشئ كل مكوّن من مكوّنات edge-* هذه أيضًا ملف سجلّ إضافيًا، وهو عبارة عن مخرجات مُعاد توجيهها من وحدة التحكّم الخاصة بالمكوّن المعني. في حالة مكوّن معالج الرسائل، يُطلق على هذا الملف اسم /opt/apigee/var/log/edge-message-processor/edge-message-processor.log. تُنشئ مكوّنات edge-* الأخرى ملفًا مشابهًا. لا يتم تدوير هذه الملفات من خلال مكتبة logback، بل باستخدام logrotate وcrontab.

قبل البدء

  • إذا لم تكن على دراية بإعدادات logrotate، يُرجى الاطّلاع على دليل logrotate.
  • إذا لم تكن على دراية بإعدادات crontab، يُرجى الاطّلاع على دليل crontab.

تفعيل تناوب السجلات

بدءًا من الإصدار 4.52 من Edge for Private Cloud، عند تثبيت مكوّن edge-*، يتم تلقائيًا إنشاء إدخال crontab لتدوير هذا السجلّ في crontab الخاص بمستخدم apigee. يتم تشغيل مهمة cron هذه كل ساعة بشكل تلقائي، وتستخدم الأداة المساعدة logrotate لتدوير السجلات. في حال تثبيت عدة مكوّنات edge-* على العقدة نفسها (على سبيل المثال، في عملية تثبيت شاملة، أو في حال تثبيت جهاز التوجيه ومعالج الرسائل على عقدة واحدة)، سيكون لكل مكوّن إدخال cron خاص به لتدوير سجلّاته المعنيّة.

ملاحظات:

  • إذا كنت لا تريد إعداد مهمة cronjob في logrotate تلقائيًا أثناء تثبيت أحد مكوّنات edge-*، يمكنك ضبط العلامة "ENABLE_LOGROTATE=n" في ملف الإعداد الصامت الذي تستخدمه للتثبيت. إذا لم يتم ضبط مهمة cron أثناء التثبيت، يمكنك إعدادها لاحقًا باتّباع خطوات تفعيل مهمة cron الخاصة بالمكوّن logrotate.
  • بالنسبة إلى المكوّن edge-router، يتم أيضًا ضبط مهمة cron إضافية لـ logrotate تلقائيًا. يعمل cron هذا على تدوير سجلات الوصول والأخطاء التي تم إنشاؤها بواسطة Nginx.

توضّح الأمثلة التالية الإعدادات والعمليات الإدارية المختلفة التي يمكنك تنفيذها.

عرض إدخالات cron على عقدة

sudo crontab -u apigee -l

عرض إدخال cron الخاص بـ logrotate لمكوّن معيّن

$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -s

على سبيل المثال، لعرض cron الخاص بـ logrotate edge-message-processor، شغِّل:

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -s

عرض إعدادات logrotate الخاصة بالمكوّنات

يمكن العثور على إعدادات logrotate الخاصة بالمكوّن في الملف $APIGEE_ROOT/<component>/logrotate/logrotate.conf. على سبيل المثال، في حالة edge-message-processor، يمكن العثور على إعدادات logrotate للعقدة في $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.conf.

تفعيل cron الخاص بـ logrotate لمكوّن معيّن

$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e

على سبيل المثال، لتفعيل cron الخاص بـ logrotate في edge-message-processor، نفِّذ الأمر التالي:

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -e

إيقاف مهمة cron الخاصة بـ logrotate لمكوّن معيّن

$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -d

على سبيل المثال، لإيقاف cron الخاص بـ logrotate في edge-message-processor، شغِّل:

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -d

تغيير جدول cron لأمر logrotate معيّن

على العقدة التي تريد تغيير جدول cron لـ logrotate فيها، افتح ملف تجاوز إعدادات المكوّن المعني. يتم إدراج ملفات إلغاء إعدادات مكوّن edge-* في الجدول أدناه:

المكوّن ملف إلغاء الإعدادات
edge-message-processor $APIGEE_ROOT/customer/application/message-processor.properties
edge-management-server $APIGEE_ROOT/customer/application/management-server.properties
edge-router $APIGEE_ROOT/customer/application/router.properties
edge-postgres-server $APIGEE_ROOT/customer/application/postgres-server.properties
edge-qpid-server $APIGEE_ROOT/customer/application/qpid-serverproperties

افتح ملف الإلغاء المناسب واضبط إلغاء الإعدادات التالية. يؤدي المثال أدناه إلى إلغاء مهمة cron ليتم تشغيلها في الدقيقة 0 من كل ساعة.

conf_logrotate_cron_duration=0 * * * *

لضبط إلغاء الإعدادات:

  1. تأكَّد من أنّ الملف قابل للقراءة من قِبل المستخدم apigee.
  2. طبِّق جدول cron الأحدث على المكوّن:
    $APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e

على سبيل المثال، لتطبيق جدول cron أحدث على logrotate في edge-message-processor، أدخِل:

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -e

للتأكّد من تطبيق التغييرات، يمكنك التحقّق من إدخالات cron أو الاطّلاع على إدخال cron الخاص بالمكوّن logrotate.

إعدادات إضافية لـ logrotate

على غرار الخطوات المذكورة في القسم أعلاه لتعديل جدول cron، يمكنك أيضًا تعديل الإعدادات الإضافية. يوضّح الجدول أدناه هذه الإعدادات:

التهيئة الوصف
conf_logrotate_bin_location موقع logrotate الثنائي القيمة التلقائية: /usr/sbin/logrotate
conf_logrotate_status_file ملف الحالة الذي يسجّل حالة وقت التشغيل لأداة logrotate، ويجب أن يكون لديه أذونات القراءة/الكتابة للمستخدم apigee. القيمة التلقائية: $APIGEE_ROOT/var/run/<component>/logrotate.status
conf_logrotate_logs السجلّات التي تريد تدويرها ويمكن أن يتضمن أحرف بدل. الإعداد التلقائي: $APIGEE_ROOT/var/log/<component>/<component>.log
conf_logrotate_rotate عدد مرّات التدوير القيمة التلقائية: "5"
conf_logrotate_compress تحديد ما إذا كان سيتم ضغط الملفات التي تم تدويرها القيمة التلقائية: "compress"
conf_logrotate_compress_type نوع الضغط الإعداد التلقائي: "delaycompress"، ويؤدي إلى تأجيل ضغط أحدث ملف تم تدويره إلى دورة logrotate التالية.
conf_logrotate_size الحدّ الأقصى لحجم السجلّ المسموح به للتدوير القيمة التلقائية: "10M"

استخدام آلية تناوب السجلات وcron الخاصة بك

إذا لم تكن متطلبات تناوب سجلّ <component>.log مستوفاة من خلال الإعدادات التي توفّرها Apigee، يمكنك استخدام آليتك الخاصة لتناوب السجلات باستخدام أدوات مثل logrotate أو غيرها. على سبيل المثال، تتيح لك الإعدادات التي توفّرها Apigee تدوير السجلّات حسب الحجم، ولكنك تريد تدوير السجلّات حسب التاريخ أو الوقت أو عوامل أخرى. وفي هذه الحالات، عليك إيقاف مهمة cron الخاصة بـ logrotate التي توفّرها Apigee وإعداد مهام cron الخاصة بك حسب الحاجة.

إذا كنت بحاجة إلى الرجوع إلى إدخال cron لتناوب السجلات في Apigee، يمكنك العثور عليه في الملف $APIGEE_ROOT//logrotate/logrotate.cron. على سبيل المثال، في حالة edge-message-processor، يُطلق على هذا الملف اسم $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.cron. يتضمّن هذا الملف كلاً من إدخال cron والأمر الذي تنفّذه Apigee لتناوب السجلات. إذا أردت استخدام logrotate ولكنّك لا تريد استخدام إعدادات Apigee، يمكنك إنشاء ملف إعداد logrotate خاص بك واستخدام أمر logrotate مشابه لتنفيذ عملية تناوب السجلات.