आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
इस पेज पर जाएं
Apigee X दस्तावेज़. जानकारी
क्या
एपीआई रनटाइम एनवायरमेंट में समस्याओं को ट्रैक करने का सबसे अच्छा तरीका मैसेज को लॉग करना है. कस्टम मैसेज को लॉग करने के लिए, अपने एपीआई पर MessageLogging नीति अटैच और कॉन्फ़िगर करें लोकल डिस्क (सिर्फ़ प्राइवेट क्लाउड के लिए एज) या syslog में सेव करें.
सैंपल
Syslog
<MessageLogging name="LogToSyslog"> <Syslog> <Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message> <Host>logs-01.loggly.com</Host> <Port>514</Port> <Protocol>TCP</Protocol> <FormatMessage>true</FormatMessage> <DateFormat>yyyy-MM-dd'T'HH:mm:ss.SSSZ</DateFormat> </Syslog> <logLevel>ALERT</logLevel> </MessageLogging>
MessageLogging नीति का आम तौर पर इस्तेमाल, syslog खाते में लॉग इन करना है. टास्क कब शुरू होगा syslog के लिए कॉन्फ़िगर किया गया एपीआई प्रॉक्सी, Apigee Edge से रिमोट पर लॉग मैसेज को फ़ॉरवर्ड करेगा syslog सर्वर पर. आपके पास पहले से ही syslog सर्वर उपलब्ध होना चाहिए. अगर ऐसा नहीं है, तो सार्वजनिक लॉग मैनेजमेंट Splunk, Sumo Logic, और Loggly जैसी सेवाएं उपलब्ध हैं. तीसरे पक्ष की लॉग मैनेजमेंट सेवाओं को कॉन्फ़िगर करना देखें.
उदाहरण के लिए, मान लें कि आपको अनुरोध के हर उस मैसेज की जानकारी लॉग करनी होगी जो आपके
एपीआई को उपभोक्ता ऐप्लिकेशन से मिलने वाला डेटा. 3f509b58
वैल्यू एक मुख्य वैल्यू दिखाती है
लॉगजी सेवा के लिए विशिष्ट है. अगर आपके पास Loggly खाता है, तो Loggly की कुंजी बदलें. कॉन्टेंट बनाने
जनरेट होने वाला लॉग मैसेज, चार वैल्यू से अपने-आप भर जाएगा: संगठन, एपीआई
लेन-देन से जुड़े प्रॉक्सी और एनवायरमेंट का नाम. साथ ही, क्वेरी की वैल्यू
पैरामीटर की जानकारी.
अगर आपके पास प्राइवेट क्लाउड डिप्लॉयमेंट के लिए Edge है, तो फ़ाइल से लिए जाते हैं.
TLS/एसएसएल पर Syslog
<MessageLogging name="LogToSyslog"> <Syslog> <Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message> <Host>logs-01.loggly.com</Host> <Port>6514</Port> <Protocol>TCP</Protocol> <FormatMessage>true</FormatMessage> <SSLInfo> <Enabled>true</Enabled> </SSLInfo> <DateFormat>yyMMdd-HH:mm:ss.SSS</DateFormat> </Syslog> <logLevel>WARN</logLevel> </MessageLogging>
आप
<SSLInfo>
ब्लॉक.
फ़ाइल रोटेशन: आकार
<MessageLogging name="LogPolicy"> <File> <Message>This is a test message. Message id : {request.header.messageid}</Message> <FileName>test.log</FileName> <FileRotationOptions rotateFileOnStartup="true"> <FileRotationType>SIZE</FileRotationType> <MaxFileSizeInMB>10</MaxFileSizeInMB> <MaxFilesToRetain>10</MaxFilesToRetain> </FileRotationOptions> </File> <logLevel>ERROR</logLevel> </MessageLogging>
फ़ाइल के साइज़ के हिसाब से फ़ाइल का रोटेशन.
फ़ाइल रोटेशन: समय
<MessageLogging name="LogPolicy"> <File> <Message>This is a test message. Message id : {request.header.messageid}</Message> <FileName>test.log</FileName> <FileRotationOptions rotateFileOnStartup="true"> <FileRotationType>TIME</FileRotationType> <RotationFrequency unit="minute">10</RotationFrequency> <MaxFilesToRetain>10</MaxFilesToRetain> </FileRotationOptions> </File> <logLevel>ERROR</logLevel> </MessageLogging>
समय के हिसाब से फ़ाइल का रोटेशन.
फ़ाइल रोटेशन: समय और साइज़
<MessageLogging name="LogPolicy"> <File> <Message>This is a test message. Message id : {request.header.messageid}</Message> <FileName>test.log</FileName> <FileRotationOptions rotateFileOnStartup="true"> <FileRotationType>TIME_SIZE</FileRotationType> <MaxFileSizeInMB>10</MaxFileSizeInMB> <MaxFilesToRetain>10</MaxFilesToRetain> <RotationFrequency unit="minute">10</RotationFrequency> </FileRotationOptions> </File> <logLevel>ERROR</logLevel> </MessageLogging>
समय और साइज़ के हिसाब से फ़ाइल का रोटेशन.
स्ट्रीम की सुविधा चालू है
<MessageLogging name="LogPolicy"> <File> .... .... </File> <BufferMessage>true</BufferMessage> </MessageLogging>
स्ट्रीम की सुविधा वाले मैसेज लॉग करने की सुविधा
एलिमेंट का रेफ़रंस
MessageLogging नीति टाइप को कॉन्फ़िगर करने के लिए, इन एलिमेंट का इस्तेमाल करें.
फ़ील्ड का नाम | फ़ील्ड का ब्यौरा | |
---|---|---|
लोकल फ़ाइल डेस्टिनेशन. (फ़ाइल लॉगिंग की सुविधा सिर्फ़ प्राइवेट क्लाउड के लिए Edge में काम करती है deployments.) फ़ाइलें कहां सेव की जाती हैं, इस बारे में जानने के लिए लॉग फ़ाइल देखें प्राइवेट क्लाउड के लिए Edge में जगह की जानकारी. |
Message |
इन्हें मिलाकर, लॉग फ़ाइल पर भेजने के लिए मैसेज बनाएं वैरिएबल वाला टेक्स्ट, ताकि आप जो जानकारी पाना चाहते हैं उसे कैप्चर कर सकें. सैंपल देखें. |
FileName |
उस लॉग फ़ाइल का नाम जहां मैसेज लॉग किया गया है. | |
FileRotationOptions |
||
rotateFileOnStartup |
एट्रिब्यूट. मान्य वैल्यू: अगर इसे 'सही है' पर सेट किया जाता है, तो मैसेज इंजन के लिए लॉग फ़ाइल को हर बार घुमाया जाता है रीस्टार्ट हो जाता है. |
|
FileRotationType |
रोटेशन नीति के बारे में बताता है (size या
time ). |
|
MaxFileSizeInMB |
(घूर्णन प्रकार के रूप में size को चुनने पर)
उस लॉग फ़ाइल का साइज़ तय करता है जो लॉग मैसेज को
अलग फ़ाइल करें. लॉग फ़ाइल के तय साइज़ तक पहुंचने पर, सर्वर
मौजूदा लॉग फ़ाइल. |
|
RotationFrequency |
(घूर्णन प्रकार के रूप में time को चुनने पर)
उस समय के बारे में बताता है जो मिनट में सेट होता है. यह लॉग मैसेज सर्वर से अलग ले जाने के लिए ट्रिगर होता है
फ़ाइल से लिए जाते हैं. तय किया गया इंटरवल खत्म होने के बाद, मौजूदा लॉग फ़ाइल का नाम बदल दिया जाता है. |
|
MaxFilesToRetain |
इससे पता चलता है कि आपके रोटेशन के हिसाब से, ज़्यादा से ज़्यादा कितनी फ़ाइलें सेव रखनी हैं सेटिंग. डिफ़ॉल्ट वैल्यू 8 है. शून्य (0) का इस्तेमाल करने पर, लॉग फ़ाइलें हमेशा के लिए सेव रखी जाती हैं. हालांकि, यह आपकी फ़ाइल के हिसाब से ही तय होती है रोटेशन सेटिंग, हालांकि कोई भी फ़ाइल मिटाई नहीं जाती या उसका नाम नहीं बदला जाता है. इसलिए, डिस्क-फ़ुल की आगे की गड़बड़ियां, शून्य से बड़ी वैल्यू पर सेट करें या रेगुलर, सेव की गई पुरानी लॉग फ़ाइलों को पर्ज करने या संग्रहित करने का ऑटोमेटेड सिस्टम (कार्रवाइयों को अपने-आप पूरा करने वाला सिस्टम) है. |
|
BufferMessage |
अगर एचटीटीपी स्ट्रीमिंग चालू है, तो अनुरोध/जवाब वाले मैसेज बफ़र नहीं किए जाएंगे. अगर आपको लॉग में वह कॉन्टेंट डालें जिसके लिए फ़्लो मैसेज को पार्स करना ज़रूरी है. इसके बाद, बफ़रमैसेज को 'सही' पर सेट करें. "स्ट्रीम की सुविधा वाला मोड" देखें सैंपल टैब देखें. डिफ़ॉल्ट: गलत |
|
एक syslog डेस्टिनेशन. Splunk, Sumo Logic या Loggly पर syslog भेजें, तीसरे पक्ष की लॉग मैनेजमेंट सेवाओं को कॉन्फ़िगर करना देखें. |
Message |
कैप्चर करने के लिए वैरिएबल के साथ टेक्स्ट जोड़कर, syslog पर मैसेज भेजने के लिए मैसेज बनाएं जानकारी खोजें. सैंपल देखें. ध्यान दें: रिस्पॉन्स वैरिएबल गड़बड़ी के फ़्लो के बाद, PostClientFlow में उपलब्ध नहीं होता. मैसेज वैरिएबल का इस्तेमाल करना का इस्तेमाल करें. इस्तेमाल से जुड़ी जानकारी भी देखें. |
Host |
उस सर्वर का होस्टनेम या आईपी पता जहां syslog भेजा जाना चाहिए. अगर इस एलिमेंट को शामिल नहीं किया जाता है, तो लोकल होस्ट डिफ़ॉल्ट तौर पर सेट हो जाता है. | |
Port |
पोर्ट वहां करें जहां syslog चल रहा है. अगर आप अपनी दौड़ने के दौरान इस एलिमेंट में, डिफ़ॉल्ट रूप से 514 होता है. | |
Protocol |
टीसीपी या यूडीपी (डिफ़ॉल्ट). यूडीपी की परफ़ॉर्मेंस ज़्यादा बेहतर होती है, लेकिन टीसीपी प्रोटोकॉल, syslog सर्वर को मैसेज लॉग डिलीवरी की गारंटी देता है. syslog भेजने के लिए टीएलएस/एसएसएल पर मैसेज के लिए, सिर्फ़ टीसीपी ही काम करेगा. | |
FormatMessage |
ज़रूरी नहीं, लेकिन यह एलिमेंट आपको दिखाई देगा. अगर नीति को 'सही है' पर सेट किया जाता है, तो syslog मैसेज को वर्णों की एक तय संख्या से पहले जोड़ा जाता है, जिससे आप उस जानकारी को मैसेज से फ़िल्टर कर सकते है. यहां ठीक करने के लिए एक उदाहरण दिया गया है फ़ॉर्मैट:
Apigee से जनरेट की गई जानकारी में ये चीज़ें शामिल हैं:
अगर यह 'गलत' (डिफ़ॉल्ट) पर सेट है, तो मैसेज को ठीक की गई गड़बड़ियों के साथ नहीं जोड़ा जाता वर्ण |
|
PayloadOnly |
यह एलिमेंट, Apigee से जनरेट किए गए मैसेज के फ़ॉर्मैट को इस तरह सेट करता है कि उसमें सिर्फ़ syslog मैसेज, जिसमें FormatMessage के ज़रिए पहले से जोड़े गए वर्ण शामिल नहीं किए गए हैं. अगर इस एलिमेंट को शामिल नहीं किया जाता या इसे खाली छोड़ दिया जाता है, तो डिफ़ॉल्ट वैल्यू FormatMessage देखें. |
|
DateFormat |
ज़रूरी नहीं. हर लॉग मैसेज के टाइमस्टैंप को फ़ॉर्मैट करने के लिए, फ़ॉर्मैट करने वाली टेंप्लेट स्ट्रिंग.
डिफ़ॉल्ट रूप से, Apigee, |
|
SSLInfo |
यह आपको एसएसएल/टीएलएस के ज़रिए मैसेज लॉग करने देता है. इसके साथ इस्तेमाल करें
सब-एलिमेंट अगर आप इस एलिमेंट को शामिल नहीं करते या इसे खाली छोड़ देते हैं, तो डिफ़ॉल्ट वैल्यू 'गलत' होती है (नहीं TLS/एसएसएल). <SSLInfo> <Enabled>true</Enabled> </SSLInfo> <SSLInfo> टैग को आप ही कॉन्फ़िगर कर सकते हैं टारगेट-एंडपॉइंट पर काम कर सकता है, जिसमें दो-तरफ़ा TLS/SSL चालू करना शामिल है, जैसा कि एपीआई प्रॉक्सी कॉन्फ़िगरेशन के बारे में जानकारी. सिर्फ़ टीसीपी प्रोटोकॉल समर्थित हैं. |
|
logLevel |
ज़रूरी नहीं. मान्य वैल्यू: मैसेज लॉग में शामिल करने के लिए, जानकारी का एक खास लेवल सेट करें. अगर |
स्कीमा
ट्रैक के इस्तेमाल से जुड़ी जानकारी
किसी API प्रॉक्सी फ़्लो में MessageLogging नीति अटैच करते समय, इसे प्रॉक्सीएंडपॉइंट रिस्पॉन्स, एक खास फ़्लो में, जिसे PostClientFlow कहा जाता है. PostClientFlow कैंपेन को एक्ज़ीक्यूट करता है अनुरोध करने वाले क्लाइंट को रिस्पॉन्स भेजने के बाद, इससे यह पक्का होता है कि सभी मेट्रिक का इस्तेमाल करें. PostClientFlow का इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए, एपीआई प्रॉक्सी कॉन्फ़िगरेशन का रेफ़रंस देखें.
PostClientFlow दो तरीकों से खास है:
- इसे सिर्फ़ रिस्पॉन्स फ़्लो के हिस्से के तौर पर लागू किया जाता है.
- प्रॉक्सी के गड़बड़ी वाली स्थिति में जाने के बाद, सिर्फ़ यही फ़्लो लागू होता है.
क्योंकि प्रॉक्सी के सफल होने या न होने की परवाह किए बिना यह निष्पादित होता है, इसलिए आप PostClientFlow में MessageLogging नीतियां लागू करें और इस बात की गारंटी दें कि वे हमेशा लागू होती हैं.
नीचे दी गई ट्रेस इमेज, MessageLogging की नीति को दिखाती है जो defaultFaultRule के लागू होने के बाद, PostClientFlow:
इस उदाहरण में, 'एपीआई की पुष्टि करें' नीति की वजह से हुई गड़बड़ी, एक अमान्य अमान्य वैल्यू की वजह से हुई बटन दबाएं.
यहां प्रॉक्सीएंडपॉइंट की परिभाषा दी गई है, जिसमें PostClientFlow शामिल है:
<ProxyEndpoint name="default"> ... <PostClientFlow> <Response> <Step> <Name>Message-Logging-1</Name> </Step> </Response> </PostClientFlow> ... </ProxyEndpoint>
Edge, मैसेज को सामान्य टेक्स्ट के तौर पर लॉग करता है. साथ ही, लॉग को कॉन्फ़िगर करके वैरिएबल को शामिल किया जा सकता है, जैसे कि अनुरोध या जवाब मिलने की तारीख और समय, अनुरोध में उपयोगकर्ता की पहचान, वह सोर्स आईपी पता जिससे अनुरोध भेजा गया था वगैरह. Edge लॉग मैसेज इसका मतलब है कि कॉल आउट को ब्लॉक करने की वजह से इंतज़ार का समय शुरू नहीं होगा अपने एपीआई में जोड़ें.
MessageLogging नीति, मेमोरी में लॉग किए गए मैसेज को बफ़र में लिखती है. मैसेज लॉगर बफ़र के मैसेज पढ़ता है. इसके बाद, कॉन्फ़िगर किए गए डेस्टिनेशन पर भेजता है. हर डेस्टिनेशन का अपना बफ़र होता है.
अगर बफ़र में लिखने की दर, पढ़ने की दर से ज़्यादा हो जाती है, तो बफ़र ओवरफ़्लो हो जाता है और लॉगिंग विफल हो जाएगा. अगर ऐसा होता है, तो आपको लॉग में ऐसा मैसेज दिख सकता है जिसमें ये चीज़ें शामिल हों फ़ाइल:
Log message size exceeded. Increase the max message size setting
अगर प्राइवेट क्लाउड 4.15.07 और इससे पहले के वर्शन के लिए Edge में आपको यह समस्या आती है, तो
message-logging.properties
फ़ाइल करें और इस समाधान का इस्तेमाल करें:
इसे बढ़ाने के लिए, max.log.message.size.in.kb
प्रॉपर्टी (डिफ़ॉल्ट वैल्यू = 128 केबी) को बढ़ाएं
message-logging.properties
फ़ाइल.
Edge के लिए Private Cloud 4.16.01 और इसके बाद के वर्शन के लिए, /opt/apigee/customer/application/message-processor.properties फ़ाइल में conf/message-logging.properties+max.
log.message.size.in.kb
प्रॉपर्टी को सेट करें. इसके बाद, मैसेज प्रोसेसर को रीस्टार्ट करें. कृपया ध्यान दें कि शुरुआत में इस प्रॉपर्टी पर डिफ़ॉल्ट रूप से टिप्पणी की जाती है.
ध्यान दें: जवाब में दिया गया मैसेज Edge में वैरिएबल, गड़बड़ी के फ़्लो से उपलब्ध नहीं होते. ये वैरिएबल भी नहीं अगर पिछला फ़्लो गड़बड़ी फ़्लो था, तो PostClientFlow में उपलब्ध. अगर आपको जवाब लॉग करना है, तो PostClientFlow से मिली जानकारी के लिए, मैसेज ऑब्जेक्ट का इस्तेमाल करें. आप इस ऑब्जेक्ट का इस्तेमाल, रिस्पॉन्स से हेडर और अन्य जानकारी पाने के लिए करें कोई गड़बड़ी हुई. मैसेज देखें वैरिएबल सबमिट करें.
लॉग मैसेज को कंट्रोल करना प्राइवेट क्लाउड के लिए Edge में टाइमस्टैंप
डिफ़ॉल्ट रूप से, सभी लॉग मैसेज के टाइमस्टैंप का फ़ॉर्मैट ऐसा होता है:
yyyy-MM-dd'T'HH:mm:ss.SSSZ
इस सिस्टम-वाइड डिफ़ॉल्ट को syslog डेस्टिनेशन के लिए बदला जा सकता है. इसके लिए इसका इस्तेमाल किया जा सकता है:
DateFormat
एलिमेंट. इस टेंप्लेट के काम करने के तरीके के बारे में यहां बताया गया है
Java की SimpleDateFormat क्लास के लिए दस्तावेज़. उस परिभाषा के मुताबिक, yyyy
को बदल दिया जाएगा
अगर 4-अंकों का साल है, तो MM
को 2 अंकों वाले महीने की संख्या से बदल दिया जाएगा और यह क्रम इसी तरह जारी रहेगा.
ऊपर दिए गए फ़ॉर्मैट का इस्तेमाल करने पर, इस फ़ॉर्म की एक स्ट्रिंग बन सकती है:
2022-09-28T22:38:11.721+0000
conf_system_apigee.syslogger.dateFormat का इस्तेमाल किया जा सकता है प्रॉपर्टी का इस्तेमाल करें. उदाहरण के लिए, अगर आपको अपनी पसंद का मैसेज बदलना है, फ़ॉर्मैट करें:
yy/MM/dd'T'HH:mm:ss.SSSZ
..डैश को स्लैश से बदलकर, और साल को दो अंकों में छोटा करके, इस फ़ॉर्म में टाइमस्टैंप रिकॉर्ड किया जाता है:
22/09/28T22:38:11.721+0000
फ़ॉर्मैट बदलने के लिए:
- message-processor.properties फ़ाइल को
Editor. अगर फ़ाइल मौजूद नहीं है, तो इसे बनाएं:
> vi /opt/apigee/customer/application/message-processor.properties - प्रॉपर्टी को अपनी ज़रूरत के हिसाब से सेट करें:
conf_system_apigee.syslogger.dateFormat=yy/MM/dd'T'HH:mm:ss.SSSZ - बदलावों को सेव करें.
- पक्का करें कि प्रॉपर्टी फ़ाइल का मालिकाना हक 'apigee' के पास हो उपयोगकर्ता:
> chown apigee:apigee /opt/apigee/customer/application/message-processor.property - Edge मैसेज प्रोसेसर को रीस्टार्ट करें:
> /opt/apigee/apigee-service/bin/apigee-service Edge-message-प्रोसेसर रीस्टार्ट
प्राइवेट क्लाउड के लिए Edge में फ़ाइल की जगह की जानकारी लॉग करें
प्राइवेट क्लाउड 4.16.01 और इसके बाद के वर्शन के लिए Edge
डिफ़ॉल्ट रूप से, निजी क्लाउड मैसेज लॉग, मैसेज टैब की इस डायरेक्ट्री में मौजूद होते हैं प्रोसेसर नोड:
/opt/apigee/var/log/edge-message-processor/messagelogging/org_name/environment/api_proxy_name/revision/logging_policy_name/
आप Message-logging.property फ़ाइल पर जाएं:
- bin_setenv_data_dir -
लॉग फ़ाइल स्टोरेज के लिए रूट पाथ सेट करता है. उदाहरण के लिए,
bin_setenv_data_dir=/opt/apigee/var/log
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है - conf_message-logging_log.root.dir - अगर
आपने इसे एक रिलेटिव पाथ पर सेट किया है, जैसे कि
conf/message-logging.properties+log.root.dir=custom/folder/
, the path is appended to the bin_setenv_data_dir location.
अगर इसे ऐब्सलूट पाथ पर सेट किया जाता है, जैसेconf/message-logging.properties+log.root.dir=/opt/apigee/var/log/messages
, मैसेज लॉग,/opt/apigee/var/log/messages/messagelog/
में सेव किए जाएंगे. ऐब्सलूट पाथ इसेbin_setenv_data_dir
से ज़्यादा प्राथमिकता दी जाती है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है ध्यान रखें कि आपको प्रॉपर्टी को conf/message-logging.properties+log.root.dir के तौर पर बताना होगा, क्योंकि तो उस पर डिफ़ॉल्ट रूप से टिप्पणी होती है. देखें टोकन जिस पर फ़िलहाल टिप्पणी की गई है.
अगर आपको लॉग फ़ाइलों को किसी समतल फ़ाइल स्ट्रक्चर में सेव करना है, ताकि सभी लॉग फ़ाइलें
उसी डायरेक्ट्री में, conf/message-logging.properties+enable.flat.directory.structure पर सेट करें
सही का निशान लगाएं. मैसेज को इसके ज़रिए तय की गई डायरेक्ट्री में सेव किया जाता है
और फ़ाइल के नाम इस रूप में हो जाते हैं
{org}_{environment}_{api_proxy_name}_{revision}_{logging_policy_name}_{filename}
.
इन प्रॉपर्टी को सेट करने के लिए:
- message-processor.properties फ़ाइल को
Editor. अगर फ़ाइल मौजूद नहीं है, तो इसे बनाएं:
> vi /opt/apigee/customer/application/message-processor.properties - प्रॉपर्टी को अपनी ज़रूरत के हिसाब से सेट करें:
conf/message-logging.properties+log.root.dir=/opt/apigee/var/log/messages - बदलावों को सेव करें.
- पक्का करें कि प्रॉपर्टी फ़ाइल का मालिकाना हक 'apigee' के पास हो उपयोगकर्ता:
> chown apigee:apigee /opt/apigee/customer/application/message-processor.property - Edge कॉम्पोनेंट को रीस्टार्ट करें:
> /opt/apigee/apigee-service/bin/apigee-service Edge-message-प्रोसेसर रीस्टार्ट
प्राइवेट क्लाउड 4.15.07 और इससे पहले के वर्शन के लिए Edge
डिफ़ॉल्ट रूप से, मैसेज लॉग, मैसेज में नीचे दी गई जगह पर होते हैं प्रोसेसर:
/opt/apigee4/var/log/apigee/message-processor/messagelog/{org}/{environment}/{api_proxy_name}/{revision}/{logging_policy_name}/
डिफ़ॉल्ट लॉग की जगह बदलने के लिए, यहां दी गई प्रॉपर्टी में बदलाव करें: मैसेज प्रोसेसर पर message-logging.property फ़ाइल का इस्तेमाल करना:
- data.dir - रूट को सेट करता है लॉग फ़ाइल स्टोरेज के लिए पाथ. उदाहरण के लिए, data.mir=/opt/apigee4/var/log
- log.root.dir - अगर आपने सेट किया है इसे एक संबंधित पाथ से जोड़ दिया जाता है, जैसे कि log.root.ख़िलाफ़र=कस्टम/फ़ोल्डर/ पर सेट किया जाता है, तो पाथ को data.der जगह की जानकारी.
उदाहरण के लिए, दो प्रॉपर्टी का कॉम्बिनेशन, लॉगिंग डायरेक्ट्री को इस पर सेट करेगा: /opt/apigee4/var/log/custom/Folder/messagelog/ (ध्यान दें कि /messagelog जोड़ा गया है स्वचालित रूप से).
अगर आपने इसे किसी ऐब्सलूट पाथ पर सेट किया है, जैसे कि log.root.dir=/opt/apigee4/var/log/messages, मैसेज लॉग /opt/apigee4/var/log/messages/messagelog/ में संग्रहित किए जाएंगे. ऐब्सलूट पाथ, data.dir के बजाय, Log.root.आराम को ज़्यादा अहमियत दी जाती है.
अगर आपको लॉग फ़ाइलों को किसी समतल फ़ाइल स्ट्रक्चर में सेव करना है, ताकि सभी लॉग फ़ाइलें उसी डायरेक्ट्री में, enable.flat.directory.structured प्रॉपर्टी को इस पर सेट करें मैसेज पर message-logging.properties फ़ाइल में सही प्रोसेसर. मैसेज, ऊपर बताई गई प्रॉपर्टी और फ़ाइल के ज़रिए तय की गई डायरेक्ट्री में सेव किए जाते हैं नाम {org}_{environment}_{api_proxy_name}_{revision}_{logging_policy_name}_{filename} का रूप लेते हैं.
इसमें वैरिएबल के लिए डिफ़ॉल्ट वैल्यू मैसेज टेंप्लेट
मैसेज टेंप्लेट में, हर वैरिएबल के लिए अलग से डिफ़ॉल्ट वैल्यू तय की जा सकती है. उदाहरण के लिए,
अगर वैरिएबल request.header.id
को हल नहीं किया जा सकता, तो इसका मान बदल दिया जाता है
वैल्यू unknown
होनी चाहिए.
<Message>This is a test message. id = {request.header.id:unknown}</Message>
सभी न सुलझाए गए वैरिएबल के लिए एक सामान्य डिफ़ॉल्ट मान सेट करके
Message
एलिमेंट पर defaultVariableValue
एट्रिब्यूट:
<Message defaultVariableValue="unknown">This is a test message. id = {request.header.id}</Message>अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
तीसरे पक्ष की लॉग मैनेजमेंट सेवाओं को कॉन्फ़िगर करना
MessageLogging नीति की मदद से, तीसरे पक्ष के लॉग मैनेजमेंट को सिस्टम लॉग मैसेज भेजे जा सकते हैं Splunk, Sumo Logic, और Loggly जैसी सेवाएं शामिल हैं. अगर आपको इनमें से किसी एक को syslog भेजना है देखी जा सकती है, तो सेवा के होस्ट, पोर्ट और प्रोटोकॉल को कॉन्फ़िगर करने के लिए उस सेवा के दस्तावेज़ को देखें, उसके हिसाब से इस नीति के लिए Syslog एलिमेंट सेट करें.
तीसरे पक्ष के लॉग मैनेजमेंट कॉन्फ़िगरेशन के बारे में जानने के लिए, नीचे दिया गया दस्तावेज़ देखें:
- Splunk (प्रॉडक्ट का वर्शन चुनें)
यह Apigee कम्यूनिटी पोस्ट भी देखें: https://community.apigee.com/content/kbentry/13298/log-messages-into-splunk.html -
Sumo
लॉजिक
- यह Apigee कम्यूनिटी पोस्ट भी देखें: https://community.apigee.com/questions/5226/setting-up-logging-with-sumo-logic-which-host-shou.html
- लॉग करने की सेवा के तौर पर Sumo Logic का इस्तेमाल करने का पूरा उदाहरण देखने के लिए, यह तरीका देखें Apigee कम्यूनिटी पोस्ट. यह समाधान, एचटीटीपी पीओएसटी बनाने के लिए एक ही JavaScript नीति का इस्तेमाल करता है Sumo Logic एचटीटीपी सोर्स कलेक्टर को मिले अनुरोध: https://community.apigee.com/articles/32286/logging-to-sumo-logic-using-javascript-and-http.html
- लॉगगली
Loggly का इस्तेमाल करते समय,<FormatMessage>true</FormatMessage>
की ज़रूरत होती है<Syslog>
एलिमेंट के चाइल्ड के तौर पर नीति.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है साथ ही, Loggly में मैसेज लॉग करने के बारे में ज़्यादा जानने के लिए, Apigee कम्यूनिटी की यह पोस्ट देखें: https://community.apigee.com/content/kbentry/14798/log-messages-into-loggly.html
गड़बड़ी का रेफ़रंस
इस सेक्शन में, गड़बड़ी के कोड और गड़बड़ी के मैसेज के बारे में बताया गया है. साथ ही, इन गड़बड़ियों के वैरिएबल के बारे में भी बताया गया है, जो Edge की मदद से सेट किए जाते हैं. यह जानकारी जानना ज़रूरी है कि क्या आप गड़बड़ियों को ठीक करता है. ज़्यादा जानने के लिए, आपके लिए ज़रूरी जानकारी देखें नीति से जुड़ी गड़बड़ियों और हैंडलिंग के बारे में जानकारी गलतियां.
रनटाइम की गड़बड़ियां
नीति के लागू होने पर ये गड़बड़ियां हो सकती हैं.
गड़बड़ी कोड | एचटीटीपी कोड स्थिति | वजह |
---|---|---|
steps.messagelogging.StepDefinitionExecutionFailed |
500 | गड़बड़ी वाली स्ट्रिंग देखें. |
डिप्लॉयमेंट से जुड़ी गड़बड़ियां
ये गड़बड़ियां तब हो सकती हैं, जब इस नीति वाली प्रॉक्सी को डिप्लॉय किया जाता है.
गड़बड़ी का नाम | वजह | ठीक करें |
---|---|---|
InvalidProtocol |
इस गड़बड़ी की वजह से, MessageLogging नीति को लागू नहीं किया जा सकता, अगर प्रोटोकॉल
<Protocol> एलिमेंट में बताया गया, मान्य नहीं है. मान्य प्रोटोकॉल, टीसीपी और यूडीपी हैं.
TLS/एसएसएल पर syslog मैसेज भेजने के लिए, सिर्फ़ टीसीपी का इस्तेमाल किया जा सकता है. |
build |
InvalidPort |
इस गड़बड़ी की वजह से हो सकता है कि MessageLogging नीति को लागू न करें: पोर्ट नंबर
को <Port> एलिमेंट में नहीं बताया गया है या वह मान्य नहीं है. पोर्ट नंबर
शून्य से बड़ा पूर्णांक. |
build |
गड़बड़ी के वैरिएबल
रनटाइम की गड़बड़ी होने पर ये वैरिएबल सेट किए जाते हैं. ज़्यादा जानकारी के लिए, आपके लिए ज़रूरी जानकारी देखें नीति से जुड़ी गड़बड़ियों के बारे में जानकारी.
वैरिएबल | कहां | उदाहरण |
---|---|---|
fault.name="fault_name" |
fault_name गड़बड़ी का नाम है, जैसा कि ऊपर रनटाइम में गड़बड़ियां टेबल में बताया गया है. गड़बड़ी का नाम, गड़बड़ी के कोड का आखिरी हिस्सा होता है. | fault.name Matches "StepDefinitionExecutionFailed" |
messagelogging.policy_name.failed |
policy_name, उपयोगकर्ता की ओर से बताया गया उस नीति का नाम है जिसमें गड़बड़ी हुई है. | messagelogging.ML-LogMessages.failed = true |
गड़बड़ी के रिस्पॉन्स का उदाहरण
{ "fault":{ "detail":{ "errorcode":"steps.messagelogging.StepDefinitionExecutionFailed" }, "faultstring":"Execution failed" } }
गड़बड़ी के नियम का उदाहरण
<FaultRule name="MessageLogging"> <Step> <Name>ML-LogMessages</Name> <Condition>(fault.name Matches "StepDefinitionExecutionFailed") </Condition> </Step> <Condition>(messagelogging.ML-LogMessages.failed = true) </Condition> </FaultRule>
फ़्लो वैरिएबल
नीति के लागू न होने पर, ये वैरिएबल अपने-आप भर जाते हैं.
messagelogging.failed
messagelogging.{stepdefinition-name}.failed
मिलते-जुलते विषय
- एज से दिखाए गए वैरिएबल: वैरिएबल रेफ़रंस