लॉग रोटेशन—इस्तेमाल में मौजूद और इस्तेमाल में नहीं होने वाली कई लॉग फ़ाइलों को रोटेट करने की प्रोसेस— उन सिस्टम के एडमिनिस्ट्रेशन को आसान बनाती है जो बड़ी संख्या में लॉग फ़ाइलें जनरेट करते हैं. लॉग रोटेशन की सुविधा से, लॉग फ़ाइलों को अपने-आप रोटेट, कंप्रेस, और हटाया जा सकता है. साथ ही, उन्हें ईमेल से भेजा जा सकता है.
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 * * * *
कॉन्फ़िगरेशन बदलने की सुविधा सेट करने के लिए:
- पक्का करें कि
apigeeउपयोगकर्ता, फ़ाइल को पढ़ सके. - कॉम्पोनेंट पर नया क्रॉन शेड्यूल लागू करें:
$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/ फ़ाइल में देखा जा सकता है. उदाहरण के लिए, edge-message-processor के मामले में, इस फ़ाइल को $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.cron कहा जाता है. इस फ़ाइल में, क्रॉन एंट्री और लॉग रोटेशन के लिए Apigee से चलाया गया कमांड, दोनों शामिल हैं. अगर आपको logrotate का इस्तेमाल करना है, लेकिन Apigee के कॉन्फ़िगरेशन का इस्तेमाल नहीं करना है, तो अपनी logrotate कॉन्फ़िगरेशन फ़ाइल बनाई जा सकती है. साथ ही, लॉग रोटेशन करने के लिए, मिलते-जुलते logrotate कमांड का इस्तेमाल किया जा सकता है.