Edge কম্পোনেন্টের জন্য লগ রোটেশন চালু করা

লগ রোটেশন—ব্যবহারের মধ্যে ও বাইরে একাধিক লগ ফাইল রোটেট করার প্রসেস— যেসব সিস্টেম অসংখ্য লগ ফাইল তৈরি করে সেগুলির অ্যাডমিনিস্ট্রেশনকে সহজ করে। লগ রোটেশন অটোমেটিক রোটেশন, কম্প্রেশন, সরানো এবং লগ ফাইল ইমেল করার সুবিধা চালু করে।

প্রাইভেট ক্লাউডের জন্য Edge-এ, প্রতিটি 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 ব্যবহার করে করা হয়।

শুরু করার আগে

লগ রোটেশন চালু করা

Edge for Private Cloud ভার্সন 4.52 থেকে শুরু করে, আপনি কোনও edge-* কম্পোনেন্ট ইনস্টল করলে, এই লগ রোটেট করার জন্য crontab এন্ট্রি apigee ব্যবহারকারীর crontab-এ অটোমেটিক তৈরি হয়ে যায়। এই ক্রন জব সাধারণত প্রতি ঘণ্টায় রান করে এবং লগ রোটেট করার জন্য logrotate ইউটিলিটি ব্যবহার করে। একই নোডে একাধিক edge-* কম্পোনেন্ট ইনস্টল করা থাকলে (যেমন, অল-ইন-ওয়ান ইনস্টলেশনে অথবা রাউটার ও মেসেজ-প্রসেসর একটি নোডে ইনস্টল করা থাকলে), প্রতিটি কম্পোনেন্টের নিজস্ব লগ রোটেট করার জন্য নিজস্ব ক্রন এন্ট্রি থাকবে।

মনে রাখবেন:

  • edge-* কম্পোনেন্ট ইনস্টল করার সময়, আপনি যদি logrotate cronjob অটোমেটিক সেট-আপ করতে না চান, তাহলে ইনস্টল করার জন্য আপনি যে সাইলেন্ট কনফিগারেশন ফাইল ব্যবহার করেন সেটিতে “ENABLE_LOGROTATE=n” ফ্ল্যাগ সেট করুন। ইনস্টলেশনের সময় ক্রন জব সেট করা না হয়ে থাকলে, আপনি পরে কোনও কম্পোনেন্টের logrotate ক্রন চালু করার ধাপগুলি অনুসরণ করে এটি সেট-আপ করতে পারবেন।
  • কম্পোনেন্ট edge-router-এর জন্য, অতিরিক্ত logrotate ক্রন জবও ডিফল্ট হিসেবে কনফিগার করা হয়। এই cron Nginx-এর মাধ্যমে তৈরি অ্যাক্সেস ও সমস্যার লগ রোটেট করে।

নিচে দেওয়া উদাহরণ থেকে বিভিন্ন কনফিগারেশন ও অ্যাডমিনিস্ট্রেটিভ অপারেশন সম্পর্কে জানতে পারবেন যা আপনি করতে পারেন।

কোনও নোডে ক্রন এন্ট্রি দেখা

sudo crontab -u apigee -l

কোনও কম্পোনেন্টের logrotate ক্রন এন্ট্রি দেখা

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

যেমন, edge-message-processor-এর logrotate cron দেখতে, এগুলি রান করান:

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

কোনও কম্পোনেন্টের logrotate কনফিগারেশন দেখা

কোনও কম্পোনেন্টের logrotate কনফিগারেশন এই ফাইলে পাওয়া যাবে $APIGEE_ROOT/<component>/logrotate/logrotate.conf। যেমন, এজ-মেসেজ-প্রসেসরের ক্ষেত্রে, নোডের logrotate কনফিগারেশন $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.conf-এ পাওয়া যেতে পারে।

কোনও কম্পোনেন্টের logrotate cron চালু করা

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

যেমন, edge-message-processor-এর logrotate cron চালু করতে, এগুলি রান করান:

$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

যেমন, edge-message-processor-এর logrotate cron বন্ধ করতে, এগুলি রান করান:

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

নির্দিষ্ট logrotate কমান্ডের ক্রন শিডিউল পরিবর্তন করা

আপনি যে নোডে 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

উপযুক্ত ওভাররাইড ফাইল খুলুন এবং নিম্নলিখিত কনফিগারেশন ওভাররাইড সেট করুন। নিচের উদাহরণে প্রতি ঘণ্টার ০তম মিনিটে চালানোর জন্য ক্রন জব ওভাররাইড করা হয়েছে।

conf_logrotate_cron_duration=0 * * * *

কনফিগারেশন ওভাররাইড সেট করতে:

  1. apigee ব্যবহারকারী ফাইলটি পড়তে পারছেন কিনা তা নিশ্চিত করুন।
  2. কম্পোনেন্টে নতুন cron শিডিউল প্রয়োগ করুন:
    $APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e

যেমন, edge-message-processor-এর logrotate-এ নতুন cron শিডিউল প্রয়োগ করতে, এগুলি লিখুন:

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

পরিবর্তনগুলি প্রয়োগ করা হয়েছে কিনা তা যাচাই করতে, ক্রন এন্ট্রি চেক করুন অথবা কম্পোনেন্টের logrotate ক্রন এন্ট্রি দেখুন।

অতিরিক্ত logrotate কনফিগারেশন

ক্রন শিডিউল পরিবর্তন করার জন্য উপরে উল্লেখ করা ধাপগুলির মতো, আপনি অতিরিক্ত কনফিগারেশনও পরিবর্তন করতে পারবেন। নিচের সারণীতে এইসব কনফিগারেশন সম্পর্কে বর্ণনা করা হয়েছে:

কনফিগারেশন বিবরণ
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”

আপনার নিজস্ব লগ রোটেশন মেকানিজম ও ক্রন ব্যবহার করুন

Apigee-এর দেওয়া কনফিগারেশনের মাধ্যমে <component>.log রোটেট করার প্রয়োজনীয়তা পূরণ না হলে, logrotate বা অন্যান্য টুলের সাহায্যে আপনি নিজের লগ রোটেশন মেকানিজম ব্যবহার করতে পারেন। যেমন, Apigee-এর দেওয়া কনফিগারেশন আপনাকে সাইজ অনুযায়ী লগ রোটেট করতে দেয়, কিন্তু আপনি তারিখ/সময় বা অন্যান্য ফ্যাক্টরের উপর ভিত্তি করে লগ রোটেট করতে চান। এই ধরনের ক্ষেত্রে, আপনাকে Apigee-এর দেওয়া logrotate ক্রোন বন্ধ করে দিতে হবে এবং প্রয়োজনমতো নিজের ক্রোন জব সেট-আপ করতে হবে।

Apigee-এর লগ রোটেশন ক্রন এন্ট্রি সম্পর্কে আপনার জানার প্রয়োজন হলে, আপনি এটি এই ফাইলে খুঁজে পাবেন $APIGEE_ROOT//logrotate/logrotate.cron। যেমন, edge-message-processor-এর ক্ষেত্রে, এই ফাইলকে $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.cron বলা হয়। এই ফাইলে লগ রোটেশনের জন্য Apigee-এর এক্সিকিউট করা কমান্ড ও ক্রন এন্ট্রি, দুটিই অন্তর্ভুক্ত থাকে। আপনি যদি logrotate ব্যবহার করতে চান কিন্তু Apigee-এর কনফিগারেশন ব্যবহার করতে না চান, তাহলে আপনি নিজের logrotate কনফিগারেশন ফাইল তৈরি করতে পারেন এবং লগ রোটেশন পারফর্ম করতে একই ধরনের logrotate কমান্ড ব্যবহার করতে পারেন।