Apache APISIX, Google Cloud Logging के साथ एकीकृत होकर लॉग प्रोसेसिंग को बेहतर बनाता है
API7.ai
December 22, 2021

लॉगिंग वितरित सिस्टम के लिए एक महत्वपूर्ण बुनियादी ढांचा है। यह डेवलपर्स को सेवा संचालन की स्थिति का निरीक्षण करने, सेवा समस्या निवारण और निदान की दक्षता में सुधार करने, और सिस्टम की समग्र स्थिरता और संचालन दक्षता में सुधार करने के लिए बहु-आयामी विश्लेषण करने में मदद कर सकता है।
Google Cloud Logging Google Cloud द्वारा प्रदान की जाने वाली एक रियल-टाइम लॉग प्रबंधन सेवा है, जो EB-स्तरीय भंडारण, खोज, विश्लेषण और अलर्टिंग सेवाएं प्रदान करती है। Google Cloud Logging का लॉग ब्राउज़र आपको लॉग्स को आसानी और कुशलता से खोजने, छांटने और विश्लेषण करने की अनुमति देता है, और Google Cloud Logging सहेजे गए प्रश्नों और समृद्ध ग्राफिकल सुविधाओं को भी प्रदान करता है ताकि लॉग स्क्रीनिंग परिणाम पुनर्प्राप्त करने योग्य और अधिक सहज हो सकें।
Apache APISIX ने पहले ही HTTP Logger, TCP Logger, Kafka Logger, UDP Logger, RocketMQ Logger, SkyWalking Logger, Aliyun Cloud Logging(SLS) और कई अन्य ओपन सोर्स और क्लाउड लॉगिंग सेवा समाधानों के साथ एकीकरण का समर्थन किया है।
हाल ही में, Apache APISIX ने Google Cloud Logging के लिए समर्थन भी जोड़ा है, जो Apache APISIX को गेटवे के रूप में उपयोग करते समय उपयोगकर्ताओं को एक नया लॉगिंग समाधान प्रदान करता है: google-cloud-logging का उपयोग करके Apache APISIX अनुरोध लॉग्स को Google Cloud Logging सेवा में विश्लेषण और भंडारण के लिए अग्रेषित करें।
जब प्लगइन सक्षम होता है, तो Apache APISIX Log Phase में अनुरोध संदर्भ जानकारी लेगा और इसे Google Cloud Logging के LogEntry में क्रमबद्ध करेगा, फिर क्रमबद्ध लॉग डेटा को बैच कतार में जमा करेगा, और जब बैच कतार उपयोगकर्ता द्वारा सेट किए गए समय या प्रविष्टि सीमा को ट्रिगर करती है, तो लॉग डेटा को Google Cloud API के माध्यम से Google Cloud Logging सेवा में अग्रेषित किया जाएगा।
यह लेख Apache APISIX में Google Cloud Logging सेवा को कॉन्फ़िगर और उपयोग करने के तरीके को समझाएगा।
Google Cloud कॉन्फ़िगर करें
- अपना ब्राउज़र खोलें और Google Cloud होमपेज पर जाएं।
- Google Cloud कंसोल में लॉग इन करने के लिए अपना उपयोगकर्ता नाम और पासवर्ड दर्ज करें।
- Google Cloud कंसोल के बाईं मेनू पर क्लिक करें और "IAM & Admin > Create a Project" चुनकर एक प्रोजेक्ट बनाना शुरू करें।

- एक प्रोजेक्ट नाम दर्ज करें, एक संगठन नाम चुनें, और "CREATE" पर क्लिक करके प्रोजेक्ट बनाएं।

- जब प्रोजेक्ट सफलतापूर्वक बन जाता है, तो कंसोल के शीर्ष दाईं ओर सूचित किया जाएगा कि निर्माण सफल रहा।

- विंडो में क्लिक करके प्रोजेक्ट चुनें, या कंसोल होमपेज के शीर्ष नेविगेशन बार में प्रोजेक्ट ऑपरेशन पथ चुनें। प्रोजेक्ट चुनने के बाद, आप कंसोल होमपेज पर पुनर्निर्देशित होंगे, जहां आप शीर्ष नेविगेशन बार में वर्तमान प्रोजेक्ट के बारे में डेटा और सूचना केंद्र में प्रोजेक्ट जानकारी देख सकते हैं।

- प्रोजेक्ट बनाने के बाद, आपको प्रोजेक्ट के लिए एक सेवा खाता बनाने की आवश्यकता है। कृपया Google Cloud कंसोल होमपेज पर वापस जाएं और बाईं मेनू पर "IAM & Admin > Service Account" पर क्लिक करके एक सेवा खाता बनाना शुरू करें।

- "CREATE SERVICE ACCOUNT" पर क्लिक करके सेवा खाता बनाएं।

- सेवा खाता नाम और ID दर्ज करें (ID आमतौर पर खाता जनरेशन के बाद होता है), और फिर "CREATE AND CONTINUE" पर क्लिक करें।

- "Role" पर क्लिक करें और खोज बॉक्स में "Logging Admin" टाइप करके इस भूमिका को खोजें और "Logging Admin" को भूमिका के रूप में चुनें।

- "DONE" पर क्लिक करके सेवा खाता निर्माण पूरा करें और सेवा खाता होमपेज पर पुनर्निर्देशित हों। इस समय आप सूची में अभी बनाए गए खाते और उसके विवरण देख सकते हैं।

- सेवा खाते के अंतिम कॉलम में "Manage keys" पर क्लिक करके गुप्त कुंजी प्रबंधन इंटरफ़ेस में प्रवेश करें।

- "ADD KEY > Create new key" पर क्लिक करके एक नई गुप्त कुंजी बनाना शुरू करें।

- पॉप-अप पृष्ठ पर गुप्त कुंजी प्रकार को "JSON" के रूप में चुनें, और फिर "CREATE" पर क्लिक करके एक नई गुप्त कुंजी बनाएं।

- निजी कुंजी जानकारी आपके ब्राउज़र के माध्यम से सिस्टम डिफ़ॉल्ट डाउनलोड्स निर्देशिका में स्वचालित रूप से डाउनलोड हो जाएगी। जब आप google-cloud-logging प्लगइन सक्षम करते हैं, तो आपको इस निजी कुंजी में जानकारी का उपयोग करने की आवश्यकता होगी, इसलिए कृपया निजी कुंजी फ़ाइल को सहेजें।

Apache APISIX कॉन्फ़िगर करें
google-cloud-logging प्लगइन सक्षम करें
विकल्प 1: कुंजी फ़ाइल अपलोड कॉन्फ़िगरेशन
- निजी कुंजी फ़ाइल को Apache APISIX नोड सर्वर पर अपलोड करें।
- फ़ाइल पथ को
google-cloud-logging.auth_fileमें कॉन्फ़िगर करें, जैसा कि नीचे दिखाया गया है:
curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "uri":"/logging.do", "upstream":{ "type":"roundrobin", "nodes":{ "127.0.0.1:1980":1 } }, "plugins":{ "google-cloud-logging":{ // Google Cloud Logging निजी कुंजी फ़ाइल "auth_file":"/path/to/apache-apisix-fcafc68c2f41.json", // प्रति बैच कतार में अधिकतम प्रविष्टियाँ। "batch_max_size": 1, // बफ़र को ताज़ा करने के लिए अधिकतम समय (सेकंड में)। "inactive_timeout": 10 } } }'
विकल्प 2: JSON में कॉन्फ़िगरेशन घोषित करें
- निजी कुंजी फ़ाइल खोलें।
project_idका मानgoogle-cloud-logging.auth_config.project_idमें कॉन्फ़िगर करें।private_keyका मानgoogle-cloud-logging.auth_config.private_keyमें कॉन्फ़िगर करें। जैसा कि नीचे दिखाया गया है:
curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "uri":"/logging.do", "upstream":{ "type":"roundrobin", "nodes":{ "127.0.0.1:1980":1 } }, "plugins":{ "google-cloud-logging":{ // Google Cloud Logging निजी कुंजी फ़ाइल "auth_config":{ "project_id":"apache-apisix", "private_key":"-----BEGIN RSA PRIVATE KEY-----your private key-----END RSA PRIVATE KEY-----" }, // प्रति बैच कतार में अधिकतम प्रविष्टियाँ। "batch_max_size": 1, // बफ़र को ताज़ा करने के लिए अधिकतम समय (सेकंड में)। "inactive_timeout": 10 } } }'
पैरामीटर्स
| नाम | आवश्यक | डिफ़ॉल्ट मान | विवरण |
|---|---|---|---|
| auth_config | नहीं | n/a | Google Cloud Logging निजी कुंजी फ़ाइल। या तो auth_config या auth_file कॉन्फ़िगर किया जाना चाहिए। |
| auth_config.private_key | हाँ | n/a | Google Cloud Logging निजी कुंजी। |
| auth_config.project_id | हाँ | n/a | Google सेवा खाता का प्रोजेक्ट ID। |
| auth_config.token_uri | नहीं | oauth2.googleapis.com/token | Google सेवाओं खाते के लिए टोकन अनुरोध URI। |
| auth_config.entries_uri | नहीं | logging.googleapis.com/v2/entries | Google लॉग सेवा लॉग प्रविष्टि API। |
| auth_config.scopes | नहीं | ["https://www.googleapis.com/auth/logging.read","https://www.googleapis.com/auth/logging.write","https://www.googleapis.com/auth/logging.admin","https://www.googleapis.com/auth/cloud-platform"] | Google सेवाओं खाते की पहुंच स्कोप, संदर्भ: Google APIs के लिए OAuth 2.0 Scopes |
| auth_file | नहीं | n/a | Google सेवाओं खाते JSON फ़ाइल का पथ (या तो auth_config या auth_file कॉन्फ़िगर किया जाना चाहिए) |
| ssl_verify | नहीं | TRUE | SSL प्रमाणीकरण सक्षम करें, OpenResty दस्तावेज़ीकरण विकल्पों के अनुसार कॉन्फ़िगर करें। |
| resource | नहीं | {"type": "global"} | Google मॉनिटर्ड संसाधन, संदर्भ: MonitoredResource। |
| log_id | नहीं | apisix.apache.org%2Flogs | Google लॉग ID, संदर्भ: LogEntry। |
| max_retry_count | नहीं | 0 | प्रसंस्करण पाइपलाइन से हटाने से पहले अधिकतम पुनः प्रयास संख्या। |
| retry_delay | नहीं | 1 | यदि निष्पादन विफल होता है तो प्रक्रिया निष्पादन में देरी होने वाले सेकंड की संख्या। |
| buffer_duration | नहीं | 60 | बैच में सबसे पुरानी प्रविष्टि की अधिकतम अवधि (सेकंड में) को पहले संसाधित किया जाना चाहिए। |
| inactive_timeout | नहीं | 10 | बफ़र को ताज़ा करने के लिए अधिकतम समय (सेकंड में)। |
| batch_max_size | नहीं | 100 | बफ़र को ताज़ा करने के लिए अधिकतम समय (सेकंड में)। |
प्लगइन सामान्य रूप से चल रहा है सत्यापित करें
-
Google Cloud Logging को अनुरोध भेजने के लिए निम्नलिखित कमांड चलाएं।
curl -i http://127.0.0.1:9080/logging.do HTTP/1.1 200 OK Content-Type: text/html; charset=utf-8 Transfer-Encoding: chunked Connection: keep-alive Date: Fri, 10 Dec 2021 09:57:52 GMT Server: APISIX/2.11.0 Hello, Google Cloud Logging -
अपना ब्राउज़र खोलें और Google Cloud होमपेज पर जाएं।
-
Google Cloud कंसोल में लॉग इन करने के लिए अपना उपयोगकर्ता नाम और पासवर्ड दर्ज करें।
-
लॉग ब्राउज़र के माध्यम से भेजे गए अनुरोधों का लॉग देखें, और लौटाए गए परिणाम नीचे दिखाए गए हैं।

google-cloud-logging प्लगइन अक्षम करें
यदि आप इसका उपयोग करना समाप्त कर चुके हैं, तो आप google-cloud-logging संबंधित कॉन्फ़िगरेशन ब्लॉक को हटाकर प्लगइन को निष्क्रिय कर सकते हैं।
curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "uri":"/logging.do", "upstream":{ "type":"roundrobin", "nodes":{ "127.0.0.1:1980":1 } }, "plugins":{ } }'
सारांश
यह लेख Apache APISIX और Google Cloud Logging को इंटरफ़ेस करने के लिए विस्तृत चरणों का वर्णन करता है। हमें उम्मीद है कि यह लेख आपको Apache APISIX में Google Cloud Logging का उपयोग करने की स्पष्ट समझ प्रदान करेगा और बाद के हाथों-हाथ संचालन को सुविधाजनक बनाएगा।
Apache APISIX न केवल अपने उच्च प्रदर्शन को बनाए रखने के लिए प्रतिबद्ध है, बल्कि हमेशा ओपन सोर्स पारिस्थितिकी तंत्र के निर्माण पर बहुत महत्व देता है। वर्तमान में, Apache APISIX में 10+ लॉगिंग-संबंधित प्लगइन्स हैं और उद्योग में मुख्यधारा के ओपन सोर्स लॉगिंग प्रोजेक्ट्स के साथ इंटरफ़ेस करने का समर्थन करता है।
यदि आपको अन्य लॉग्स को इंटरफ़ेस करने की आवश्यकता है, तो Apache APISIX के GitHub पर जाएं और issue के माध्यम से अपने सुझाव दें; या Apache APISIX मेलिंग सूची की सदस्यता लें और ईमेल के माध्यम से अपने विचार व्यक्त करें।
संबंधित लेख
Apache APISIX SkyWalking के साथ एकीकृत करके पूर्ण लॉग प्रसंस्करण बनाता है
Apache APISIX & RocketMQ उपयोगकर्ता API लॉग मॉनिटरिंग क्षमताओं में मदद करता है