नमस्ते, मेरा नाम यूजीन है, मैं सिटीमोबिल में बी2बी टीम लीडर हूं। हमारी टीम का एक कार्य भागीदारों से टैक्सी ऑर्डर करने के लिए एकीकरण का समर्थन करना है, और एक स्थिर सेवा सुनिश्चित करने के लिए, हमें हमेशा यह समझना चाहिए कि हमारे माइक्रोसर्विसेज में क्या हो रहा है। और इसके लिए आपको लॉग्स की लगातार निगरानी करने की आवश्यकता है।
सिटीमोबिल में, हम लॉग के साथ काम करने के लिए ईएलके स्टैक (इलास्टिकसर्च, लॉगस्टैश, किबाना) का उपयोग करते हैं, और वहां आने वाले डेटा की मात्रा बहुत बड़ी है। नए कोड के परिनियोजन के बाद आने वाले अनुरोधों के इस समूह में समस्याओं का पता लगाना काफी कठिन है। और उनकी दृश्य पहचान के लिए, किबाना में एक डैशबोर्ड अनुभाग है।
डेटा प्राप्त करने और संग्रहीत करने के लिए ईएलके स्टैक कैसे स्थापित करें, इसके उदाहरणों के साथ हैबे पर काफी लेख हैं, लेकिन डैशबोर्ड बनाने पर कोई प्रासंगिक सामग्री नहीं है। इसलिए, मैं यह दिखाना चाहता हूं कि किबाना में आने वाले लॉग के आधार पर डेटा का दृश्य प्रतिनिधित्व कैसे बनाया जाए।
समायोजन
इसे स्पष्ट करने के लिए, मैंने ईएलके और फाइलबीट के साथ एक डॉकर छवि बनाई। और एक छोटे से कन्टेनर में रख दीजिये
कॉन्फ़िगरेशन रिपॉजिटरी को क्लोन करें docker-compose
और ELK सेटिंग्स, और इसे कमांड के साथ लॉन्च करें docker-compose up
. जानबूझकर कुंजी नहीं जोड़ रहा हूँ -d
ईएलके स्टैक की प्रगति देखने के लिए।
git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up
यदि सब कुछ सही ढंग से कॉन्फ़िगर किया गया है, तो हम लॉग में एक प्रविष्टि देखेंगे (शायद तुरंत नहीं, पूरे स्टैक के साथ एक कंटेनर लॉन्च करने की प्रक्रिया में कई मिनट लग सकते हैं):
{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}
पते से localhost:5061
किबाना खुलना चाहिए.
केवल एक चीज जिसे हमें कॉन्फ़िगर करने की आवश्यकता है वह किबाना के लिए एक इंडेक्स पैटर्न बनाना है जिसमें यह जानकारी हो कि कौन सा डेटा प्रदर्शित करना है। ऐसा करने के लिए, हम एक कर्ल अनुरोध निष्पादित करेंगे या ग्राफ़िकल इंटरफ़ेस में क्रियाओं की एक श्रृंखला निष्पादित करेंगे।
$ curl -XPOST -D- 'http://localhost:5601/api/saved_objects/index-pattern'
-H 'Content-Type: application/json'
-H 'kbn-xsrf: true'
-d '{"attributes":{"title":"logstash-*","timeFieldName":"@timestamp"}}'
GUI के माध्यम से एक इंडेक्स पैटर्न बनाना
कॉन्फ़िगर करने के लिए, बाएं मेनू में डिस्कवर अनुभाग का चयन करें, और इंडेक्स पैटर्न निर्माण पृष्ठ पर जाएं।
"इंडेक्स पैटर्न बनाएं" बटन पर क्लिक करके, हम इंडेक्स निर्माण पृष्ठ पर पहुंच जाते हैं। "इंडेक्स पैटर्न नाम" फ़ील्ड में, "लॉगस्टैश-*" दर्ज करें। यदि सब कुछ सही ढंग से कॉन्फ़िगर किया गया है, तो किबाना के नीचे वे अनुक्रमणिकाएँ दिखाई देंगी जो नियम के अंतर्गत आती हैं।
अगले पृष्ठ पर, टाइमस्टैम्प के साथ कुंजी फ़ील्ड का चयन करें, हमारे मामले में यह है @timestamp
.
इससे इंडेक्स सेटिंग पेज खुल जाएगा, लेकिन इस समय हमें किसी और कार्रवाई की आवश्यकता नहीं है।
अब हम फिर से डिस्कवर सेक्शन में जा सकते हैं, जहां हम लॉग प्रविष्टियां देखेंगे।
डैशबोर्ड
बाएं मेनू में, डैशबोर्ड निर्माण अनुभाग पर क्लिक करें और संबंधित पृष्ठ पर जाएं।
"नया डैशबोर्ड बनाएं" पर क्लिक करें और डैशबोर्ड में ऑब्जेक्ट जोड़ने के लिए पेज पर जाएं।
"नया बनाएं" बटन पर क्लिक करें, और सिस्टम आपको डेटा डिस्प्ले के प्रकार का चयन करने के लिए संकेत देगा। किबाना में उनकी बड़ी संख्या है, लेकिन हम "वर्टिकल बार" और एक सारणीबद्ध "डेटा टेबल" का ग्राफिकल प्रतिनिधित्व बनाने पर विचार करेंगे। अन्य प्रकार की प्रस्तुति को इसी तरह से कॉन्फ़िगर किया गया है।
कुछ उपलब्ध वस्तुओं को बी और ई लेबल किया गया है, जिसका अर्थ है कि प्रारूप प्रयोगात्मक है या बीटा परीक्षण में है। समय के साथ, प्रारूप बदल सकता है या किबाना से पूरी तरह गायब हो सकता है।
सीधी खड़ी रेखा
"वर्टिकल बार" उदाहरण के लिए, आइए अपनी सेवा की सफल और असफल प्रतिक्रिया स्थितियों के अनुपात का एक हिस्टोग्राम बनाएं। सेटिंग्स के अंत में, हमें निम्नलिखित ग्राफ़ मिलता है:
हम प्रतिक्रिया स्थिति वाले सभी अनुरोधों को <400 सफल के रूप में, और >=400 को समस्याग्रस्त के रूप में वर्गीकृत करेंगे।
"वर्टिकल बार" चार्ट बनाने के लिए, हमें एक डेटा स्रोत का चयन करना होगा। वह इंडेक्स पैटर्न चुनें जो हमने पहले बनाया था।
डिफ़ॉल्ट रूप से, डेटा स्रोत का चयन करने के बाद एक एकल ठोस ग्राफ़ दिखाई देगा। आइए इसे सेट करें.
"बकेट" ब्लॉक में, "जोड़ें" बटन दबाएं, "एक्स-एसिस" चुनें और एक्स अक्ष सेट करें। आइए लॉग में प्रविष्टियों की प्राप्ति के लिए टाइमस्टैम्प को अलग रखें। "एकत्रीकरण" फ़ील्ड में, "दिनांक हिस्टोग्राम" चुनें, और "फ़ील्ड" में "@timestamp" चुनें, जो समय फ़ील्ड को दर्शाता है। आइए "न्यूनतम अंतराल" को "ऑटो" स्थिति में छोड़ दें, और यह स्वचालित रूप से हमारे डिस्प्ले पर समायोजित हो जाएगा।
"अपडेट" बटन पर क्लिक करके, हम हर 30 सेकंड में अनुरोधों की संख्या के साथ एक ग्राफ़ देखेंगे।
अब Y-अक्ष के साथ कॉलम सेट करते हैं। अब हम चयनित समय अंतराल में अनुरोधों की कुल संख्या प्रदर्शित कर रहे हैं।
आइए "एकत्रीकरण" मान को "सम बकेट" में बदलें, जो हमें सफल और असफल अनुरोधों के लिए डेटा को संयोजित करने की अनुमति देगा। बकेट -> एकत्रीकरण ब्लॉक में, "फ़िल्टर" द्वारा एकत्रीकरण का चयन करें और फ़िल्टरिंग को "statusCode >= 400" द्वारा सेट करें। और "कस्टम लेबल" फ़ील्ड में, हम चार्ट पर लेजेंड और सामान्य सूची में अधिक समझने योग्य प्रदर्शन के लिए संकेतक का अपना नाम इंगित करते हैं।
सेटिंग्स ब्लॉक के अंतर्गत "अपडेट" बटन पर क्लिक करने पर, हमें समस्या अनुरोधों वाला एक ग्राफ़ मिलेगा।
यदि आप लेजेंड के आगे वाले वृत्त पर क्लिक करते हैं, तो एक विंडो दिखाई देगी जिसमें आप कॉलम का रंग बदल सकते हैं।
अब चार्ट में सफल अनुरोधों पर डेटा जोड़ें। "मेट्रिक्स" अनुभाग में, "जोड़ें" बटन पर क्लिक करें और "वाई-अक्ष" चुनें।
निर्मित मीट्रिक में, हम गलत अनुरोधों के समान ही सेटिंग्स बनाते हैं। केवल फ़िल्टर में हम "statusCode <400" निर्दिष्ट करते हैं।
नए कॉलम का रंग बदलने से हमें समस्याग्रस्त और सफल अनुरोधों के अनुपात का प्रदर्शन मिलता है।
स्क्रीन के शीर्ष पर "सहेजें" बटन पर क्लिक करके और नाम निर्दिष्ट करके, हम डैशबोर्ड पर पहला चार्ट देखेंगे।
डेटा तालिका
अब सारणीबद्ध दृश्य "डेटा तालिका" पर विचार करें। आइए अनुरोध किए गए सभी यूआरएल की सूची और उन अनुरोधों की संख्या के साथ एक तालिका बनाएं। वर्टिकल बार उदाहरण की तरह, हम पहले एक डेटा स्रोत का चयन करते हैं।
उसके बाद, स्क्रीन पर एक कॉलम वाली एक तालिका प्रदर्शित होगी, जो चयनित समय अंतराल के लिए अनुरोधों की कुल संख्या दिखाती है।
हम केवल "बकेट" ब्लॉक को बदलेंगे। "जोड़ें" बटन पर क्लिक करें और "स्प्लिट पंक्तियाँ" चुनें।
"एकत्रीकरण" फ़ील्ड में, "शर्तें" चुनें। और दिखाई देने वाले फ़ील्ड "फ़ील्ड" में "url.keyword" चुनें।
"कस्टम लेबल" फ़ील्ड में "यूआरएल" मान निर्दिष्ट करके और "अपडेट" पर क्लिक करके, हमें चयनित अवधि के लिए प्रत्येक यूआरएल के लिए अनुरोधों की संख्या के साथ वांछित तालिका प्राप्त होगी।
स्क्रीन के शीर्ष पर, "सहेजें" बटन पर फिर से क्लिक करें और तालिका का नाम निर्दिष्ट करें, उदाहरण के लिए यूआरएल। आइए डैशबोर्ड पर वापस जाएं और बनाए गए दोनों दृश्यों को देखें।
डैशबोर्ड के साथ कार्य करना
डैशबोर्ड बनाते समय, हम डिस्प्ले ऑब्जेक्ट सेटिंग्स में केवल मुख्य दृश्य पैरामीटर सेट करते हैं। ऑब्जेक्ट में फ़िल्टर के लिए डेटा निर्दिष्ट करने का कोई मतलब नहीं है, उदाहरण के लिए, "दिनांक सीमा", "यूजरएजेंट द्वारा फ़िल्टरिंग", "अनुरोध देश द्वारा फ़िल्टरिंग", आदि। वांछित समय अवधि निर्दिष्ट करना या क्वेरी पैनल में आवश्यक फ़िल्टरिंग सेट करना अधिक सुविधाजनक है, जो ऑब्जेक्ट के ऊपर स्थित है।
इस पैनल पर जोड़े गए फ़िल्टर पूरे डैशबोर्ड पर लागू किए जाएंगे, और सभी डिस्प्ले ऑब्जेक्ट वास्तविक फ़िल्टर किए गए डेटा के अनुसार फिर से बनाए जाएंगे।
निष्कर्ष
किबाना एक शक्तिशाली उपकरण है जो आपको किसी भी डेटा को सुविधाजनक तरीके से देखने की अनुमति देता है। मैंने दो मुख्य प्रकार के डिस्प्ले की सेटिंग दिखाने का प्रयास किया। लेकिन अन्य प्रकार भी इसी तरह से कॉन्फ़िगर किए गए हैं। और सेटिंग्स की प्रचुरता जो मैंने "पर्दे के पीछे" छोड़ी है, आपको अपनी आवश्यकताओं के अनुरूप चार्ट को बहुत लचीले ढंग से अनुकूलित करने की अनुमति देगी।
स्रोत: www.habr.com