एज कॉम्पोनेंट के लिए लॉग रोटेशन की सुविधा चालू करें

लॉग रोटेशन—इस्तेमाल में मौजूद और इस्तेमाल में नहीं होने वाली कई लॉग फ़ाइलों को रोटेट करने की प्रोसेस— उन सिस्टम के एडमिनिस्ट्रेशन को आसान बनाती है जो बड़ी संख्या में लॉग फ़ाइलें जनरेट करते हैं. लॉग रोटेशन की सुविधा से, लॉग फ़ाइलों को अपने-आप रोटेट, कंप्रेस, और हटाया जा सकता है. साथ ही, उन्हें ईमेल से भेजा जा सकता है.

Edge for Private Cloud में, हर apigee कॉम्पोनेंट की कुछ मुख्य लॉग फ़ाइलों को डिफ़ॉल्ट रोटेशन मैकेनिज़्म के साथ कॉन्फ़िगर किया जाता है. उदाहरण के लिए, मैसेज प्रोसेसर कॉम्पोनेंट पर, इन फ़ाइलों को लॉगबैक का इस्तेमाल करके, डिफ़ॉल्ट रोटेशन मैकेनिज़्म के साथ कॉन्फ़िगर किया जाता है:

  • /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 मैन्युअल पढ़ें.

लॉग रोटेशन की सुविधा चालू करना

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

सही ओवरराइड फ़ाइल खोलें और यहां दिया गया कॉन्फ़िगरेशन ओवरराइड सेट करें. नीचे दिए गए उदाहरण में, क्रॉन जॉब को हर घंटे के 0वें मिनट पर चलाने के लिए बदला गया है.

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 लॉग रोटेट की रनटाइम स्थिति को कैप्चर करने वाली स्टेटस फ़ाइल - 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”

अपने लॉग रोटेशन मैकेनिज़्म और क्रॉन का इस्तेमाल करना

अगर 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 कमांड का इस्तेमाल किया जा सकता है.