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

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

Edge for Private Cloud-এ, প্রতিটি apigee কম্পোনেন্টের কিছু প্রধান লগ ফাইল ডিফল্ট রোটেশন মেকানিজমের সাথে কনফিগার করা থাকে। যেমন, Message Processor কম্পোনেন্টে, নিম্নলিখিত ফাইলগুলি লগব্যাক ব্যবহার করে ডিফল্ট রোটেশন মেকানিজমের সাথে কনফিগার করা হয়:

  • /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-* কম্পোনেন্ট একই ধরনের ফাইল তৈরি করে। এইসব ফাইলের রোটেশন লগব্যাক লাইব্রেরির মাধ্যমে করা হয় না, বরং logrotate ও crontab ব্যবহার করে করা হয়।

শুরু করার আগে

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

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

মনে রাখবেন:

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

নিম্নলিখিত উদাহরণগুলি বিভিন্ন কনফিগারেশন এবং প্রশাসনিক অপারেশনগুলি ব্যাখ্যা করে যা আপনি করতে পারেন।

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

sudo crontab -u apigee -l

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

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

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

$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-এ পাওয়া যেতে পারে।

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

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

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

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

কোনও কম্পোনেন্টের logrotate ক্রন বন্ধ করুন

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

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

$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. কম্পোনেন্টে নতুন ক্রন শিডিউল প্রয়োগ করুন:
    $APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e

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

$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”

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

<component>.log রোটেট করার জন্য আপনার প্রয়োজনীয়তা Apigee-এর দেওয়া কনফিগারেশনের মাধ্যমে পূরণ না হলে, আপনি 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 কমান্ড ব্যবহার করতে পারেন।