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

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

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-* कॉम्पोनेंट भी मिलती-जुलती फ़ाइल जनरेट करते हैं. इन फ़ाइलों का रोटेशन लॉगबैक लाइब्रेरी से नहीं होता है, बल्कि logrotate और crontab का इस्तेमाल करके किया जाता है.

शुरू करने से पहले

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

Edge for Private Cloud के 4.52 वर्शन के साथ, जब कोई edge-* कॉम्पोनेंट इंस्टॉल किया जाता है, तो इस लॉग को रोटेट करने के लिए, crontab की एंट्री apigee उपयोगकर्ता के crontab में अपने-आप बन जाती है. यह क्रॉन जॉब डिफ़ॉल्ट रूप से हर घंटे चलता है और लॉग को घुमाने के लिए logrotate का इस्तेमाल करता है. अगर एक ही नोड पर कई edge-* कॉम्पोनेंट इंस्टॉल किए जाते हैं (उदाहरण के लिए, ऑल-इन-वन इंस्टॉलेशन में या अगर राऊटर और मैसेज-प्रोसेसर एक ही नोड पर इंस्टॉल किए गए हों), तो हर कॉम्पोनेंट के पास अपने लॉग रोटेट करने के लिए, अपनी क्रॉन एंट्री होगी.

Notes:

  • अगर edge-* कॉम्पोनेंट इंस्टॉल करते समय, आपको अपने-आप logrotate का क्रॉनजॉब सेट अप नहीं करना होता, तो इंस्टॉल करने के लिए इस्तेमाल की जाने वाली अपनी साइलेंट कॉन्फ़िगरेशन फ़ाइल में फ़्लैग “ENABLE_LOGROTATE=n” सेट करें. अगर इंस्टॉल करने के दौरान क्रॉन जॉब सेट नहीं किया गया है, तो किसी कॉम्पोनेंट के logrotate क्रॉन को चालू करने के चरणों को पूरा करके इसे बाद में सेट अप किया जा सकता है.
  • कॉम्पोनेंट edge-router के लिए, एक अतिरिक्त logrotate क्रॉन जॉब भी डिफ़ॉल्ट रूप से कॉन्फ़िगर होता है. यह क्रॉन, Ngnx से जनरेट किए गए ऐक्सेस और गड़बड़ी लॉग को रोटेट करता है.

ये उदाहरण अलग-अलग कॉन्फ़िगरेशन और एडमिन कार्रवाइयों को दिखाते हैं, जिन्हें आप परफ़ॉर्म कर सकते हैं.

किसी नोड पर क्रॉन एंट्री देखें

sudo crontab -u apigee -l

किसी कॉम्पोनेंट की logrotate क्रॉन एंट्री देखना

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

उदाहरण के लिए, Edge-message-प्रोसेसर का logrotate क्रॉन देखने के लिए, इसे चलाएं:

$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 क्रॉन चालू करना

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

उदाहरण के लिए, Edge-message-प्रोसेसर के 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-प्रोसेसर के 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-प्रोसेसर के logrotate पर नया क्रॉन शेड्यूल लागू करने के लिए, इसे डालें:

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

यह पुष्टि करने के लिए कि बदलाव लागू कर दिए गए हैं, या तो क्रॉन एंट्री देखें या कॉम्पोनेंट की logrotate क्रॉन एंट्री देखें.

logrotate के अन्य कॉन्फ़िगरेशन

क्रॉन शेड्यूल में बदलाव करने के लिए ऊपर के सेक्शन में बताए गए चरणों की तरह, अन्य कॉन्फ़िगरेशन में भी बदलाव किए जा सकते हैं. यहां दी गई टेबल में इन कॉन्फ़िगरेशन के बारे में बताया गया है:

कॉन्फ़िगरेशन ब्यौरा
conf_logrotate_bin_location लॉगरेट बाइनरी की जगह. डिफ़ॉल्ट: /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 घुमाई गई फ़ाइलों को कंप्रेस करना है या नहीं. डिफ़ॉल्ट: “कंप्रेस करें”
conf_logrotate_compress_type कंप्रेशन का टाइप. डिफ़ॉल्ट: “delaycompress”. अगली बार 'घुमाव' साइकल पर जाने के लिए, सबसे हाल में घुमाई गई फ़ाइल को कंप्रेस करने के बाद.
conf_logrotate_size रोटेशन के लिए लॉग साइज़ की सीमा. डिफ़ॉल्ट: “1 करोड़”

अपने लॉग रोटेशन तकनीक और क्रॉन का इस्तेमाल करें

अगर <component>.log को घुमाने के लिए आपकी ज़रूरत, Apigee से मिले कॉन्फ़िगरेशन से पूरी नहीं होती है, तो लॉग रोटेशन जैसे टूल या दूसरे टूल का इस्तेमाल करके, लॉग रोटेशन के अपने तरीके का इस्तेमाल करें. उदाहरण के लिए, 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 निर्देश का इस्तेमाल करने का विकल्प है.