چرخش گزارشات—فرایند چرخش چندین فایل گزارش به داخل و خارج از استفاده— مدیریت سیستمهایی را که تعداد زیادی فایل گزارش تولید میکنند ساده میکند. چرخش گزارشات امکان چرخش خودکار، فشردهسازی، حذف، و ارسال فایلهای گزارش را فراهم میکند.
در Edge for Private Cloud، برخیاز فایلهای گزارش اصلی در هر apigee
مؤلفه با سازوکار چرخش پیشفرض پیکربندی شدهاند. برای مثال، در مؤلفه Message Processor، فایلهای زیر با سازوکار چرخش پیشفرض بااستفاده از 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 را بخوانید.
فعال کردن چرخش گزارشات
Starting with Edge for Private Cloud version 4.52, when you install an edge-*
component, a crontab entry for
rotating this log is automatically created in the apigee user's crontab. این cron job بهطور پیشفرض هر
ساعت اجرا میشود و از ابزار logrotate برای چرخش گزارشها استفاده میکند. If multiple edge-*
components are installed on the same node (for example, in an all-in-one installation, or if
the router and message-processor are installed on one node), every component will have its own cron entry for
rotating its respective logs.
نکتهها:
- اگر درطول نصب مؤلفه
edge-*نمیخواهید cronjoblogrotateرا بهطور خودکار راهاندازی کنید، پرچم «ENABLE_LOGROTATE=n» را در فایل پیکربندی بیصدایی که برای نصب استفاده میکنید تنظیم کنید. اگر cron job درطول نصب تنظیم نشده است، میتوانید آن را بعداً با دنبال کردن مراحل فعال کردن cronlogrotateمؤلفه راهاندازی کنید. - برای مؤلفه
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
غیرفعال کردن logrotate cron مؤلفه
$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 job را لغو میکند تا در دقیقه صفرم هر ساعت اجرا شود.
conf_logrotate_cron_duration=0 * * * *
برای تنظیم کردن لغو پیکربندی:
- مطمئن شوید فایل برای کاربر
apigeeخوانا باشد. - زمانبندی 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 |
تعداد چرخش. پیشفرض: «۵» |
conf_logrotate_compress |
فشرده کردن یا نکردن فایلهای چرخیده. پیشفرض: «compress» |
conf_logrotate_compress_type |
نوع فشردهسازی. پیشفرض: «delaycompress». فشردهسازی جدیدترین فایل چرخشی را به چرخه logrotate بعدی موکول میکند. |
conf_logrotate_size |
حد اندازه گزارش برای چرخش. پیشفرض: «10M» |
از سازوکار چرخش گزارشات و cron خودتان استفاده کنید
اگر الزامات شما برای چرخش <component>.log با پیکربندیهای ارائهشده توسط Apigee برآورده نشود، میتوانید از سازوکار خودتان برای چرخش گزارشات بااستفاده از ابزارهایی مانند logrotate یا ابزارهای دیگر استفاده کنید. برای مثال، پیکربندیهای ارائهشده توسط Apigee به شما امکان میدهد گزارشها را براساس اندازه بچرخانید، اما
شما میخواهید گزارشها را براساس تاریخ/زمان یا عوامل دیگر بچرخانید. در چنین مواردی، باید
کرون logrotate ارائهشده توسط Apigee را غیرفعال کنید و کرونجابهای خود را درصورت نیاز راهاندازی کنید.
اگر لازم است به ورودی cron چرخش گزارشات Apigee مراجعه کنید، میتوانید آن را در فایل
$APIGEE_ROOT/ پیدا کنید. برای مثال، در مورد
edge-message-processor، این فایل
$APIGEE_ROOT/edge-message-processor/logrotate/logrotate.cron نامیده میشود. این فایل
شامل ورودی cron و فرمان اجراشده توسط Apigee برای چرخش گزارشات است. اگر میخواهید از logrotate استفاده کنید اما نمیخواهید از پیکربندیهای Apigee استفاده کنید، میتوانید فایل پیکربندی logrotate خودتان را ایجاد کنید و از فرمان logrotate مشابهی برای انجام چرخش گزارشات استفاده کنید.