लॉगिंग सिस्टम चुनते समय क्या देखना है, और हम ईएलके पर क्यों बसे

बाजार पर बड़ी संख्या में लॉगिंग सिस्टम प्रस्तुत किए जाते हैं - दोनों खुले और मालिकाना। उनमें से प्रत्येक की अपनी कार्यक्षमता, अपने फायदे और नुकसान हैं।

आज हमने एक लॉगिंग सिस्टम चुनने के बारे में अपने अनुभव को साझा करने का फैसला किया और हमें बताया कि हम 1cloud में ELK पर क्यों रुके


/ पिक्साबे / पिकअपयूरोफोटो / पीडी

मिनट सिद्धांत


उत्पादन पर स्विच करते समय, एप्लिकेशन एक प्रकार के "ब्लैक बॉक्स" में बदल जाते हैं। बाधाओं को रोकने के लिए संभावित आपातकालीन स्थितियों को रोकने और प्रतिक्रिया देने के लिए उनके काम की निरंतर निगरानी की आवश्यकता है।

लॉगिंग सिस्टम एक अपरिहार्य उपकरण है जिसे इस प्रक्रिया में टाला नहीं जा सकता है। एकत्र किए गए डेटा का विस्तृत विश्लेषण करके, नेटवर्क में "घुसपैठ" की पहचान करना, अनुचित तरीके से कॉन्फ़िगर किए गए उपकरणों की पहचान करना और त्वरित कार्रवाई करना संभव है। साथ ही, विभिन्न प्रकार के प्रमाणपत्रों जैसे पीसीआई डीएसएस को पारित करते समय लॉगिंग एक अनिवार्य आवश्यकता है।

लॉगिंग प्रक्रियाओं के स्वचालन के लिए विशेष फ्रेमवर्क हैं: लॉग 4 जे, लॉग 4नेट, रिट्रेस, लॉगबैक, लॉगस्टैश और अन्य - उनमें से कई हैं। उनके लॉगिंग टूल में अलग-अलग विकास उपकरण हैं, उदाहरण के लिए JDK - वहाँ java.util.log है । बेशक, विभिन्न लॉगिंग टूल की कार्यक्षमता अलग है, और व्यवसाय की आवश्यकताओं के आधार पर कार्यों के आवश्यक सेट का चयन किया जाना चाहिए। हालांकि, लॉग का विश्लेषण करने के लिए एक प्रणाली का चयन करते समय कई सामान्य बिंदु हैं जिन्हें ध्यान दिया जाना चाहिए।

उपयोग में आसानी और सामुदायिक आकार

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

यदि हम खुले स्रोत लॉगिंग सिस्टम पर विचार करते हैं, तो यह उस समुदाय का मूल्यांकन करने के लिए समझ में आता है जो इसके चारों ओर बना है। ऐसा करने के लिए, आप यह अध्ययन कर सकते हैं कि विशेष प्लेटफॉर्म ( स्टैक ओवरफ्लो ), साथ ही साथ विशेष थ्रेड्स पर इसका उल्लेख कैसे किया जाता है, उदाहरण के लिए, रेडिट पर । एक विकल्प के रूप में, GitHub (सितारों की संख्या) पर परियोजना की लोकप्रियता को देखें और देखें कि इसे कितनी बार नेटवर्क पर विभिन्न उपकरणों में संग्रहित किया जाता है ( जैसे ये )। जाहिर है, समुदाय जितना बड़ा होगा, अप्रत्याशित कठिनाइयों के मामले में आपकी मदद करने की संभावना उतनी ही अधिक होगी।

मालिकाना लॉगिंग सिस्टम की पसंद के लिए, यहां सबसे पहले यह उत्तरों की गति और चयनित समाधान के समर्थन सेवा की पर्याप्तता के साथ-साथ इसकी कीमत को भी देखने लायक है।

"विविध" इकट्ठा करने की क्षमता

सभी लॉगिंग प्लेटफ़ॉर्म बड़ी मात्रा में डेटा संसाधित करने और उपयोग किए गए सिस्टम के बारे में पूरी जानकारी प्रदान करने में सक्षम नहीं हैं।

समाधान चुनने से पहले, यह तय करने के लायक है कि आप किन लॉग को इकट्ठा करने की योजना बना रहे हैं: HTTP लॉग्स (साइट पर उपयोगकर्ताओं के व्यवहार को समझने में मदद करेगा), एपीआई लॉग्स (यह मूल्यांकन करना संभव होगा कि कौन सी सेवाएं एपीआई द्वारा सबसे अधिक बार अनुरोध की जाती हैं), त्रुटि लॉग और बस परिवर्तन दर्ज कर रहे हैं। सिस्टम (बाधाओं को इंगित करें, यदि कोई हो)।

scalability

लॉगिंग टूल को प्रत्येक सिस्टम घटक से लॉग इकट्ठा करना चाहिए और उन्हें एक स्थान पर पहुंच प्रदान करना चाहिए। यदि सिस्टम स्केलिंग के लिए उपयुक्त नहीं है, तो लॉग विश्लेषण की गुणवत्ता गिर जाएगी।

हम 1cloud में शुरू में लॉगिंग के लिए MS SQL का उपयोग करते थे। हालांकि, ग्राहकों और सेवाओं की संख्या में वृद्धि के साथ (उदाहरण के लिए, हाल ही में हमने मिन्स्क डेटा सेंटर में उपकरण तैनात किए हैं और आईपीवी 6 समर्थन जोड़ा है ), हमारे पास भौगोलिक रूप से बुनियादी ढांचे के घटक थे जो डेटाबेस तक पहुंच नहीं रखते थे। और हमारा एक मुख्य कार्य एक जगह से लॉग का विश्लेषण करने की क्षमता बनाए रखना था।

1cloud लॉगिंग सिस्टम


जैसा कि हमने पहले ही नोट किया है, एमएस एसक्यूएल का उपयोग लॉग में 1क्लॉद स्टोर करने के लिए किया गया था, और उन्हें रिकॉर्ड करने के लिए लॉग 4नेट का उपयोग किया गया था। और यह हमारे लिए कुछ मुश्किलें पैदा करने लगा। भौगोलिक रूप से बिखरे हुए घटकों के कारण, डेटाबेस के साथ नेटवर्क कनेक्टिविटी बनाए रखना और विश्लेषण के लिए एक बिंदु प्रदान करना असंभव हो गया है।

उसी समय, लॉग की एक बड़ी मात्रा और उन सभी क्षेत्रों पर अनुक्रमित बनाने में असमर्थता जो हमें लॉग विश्लेषण के अत्यधिक सरलीकरण के लिए खोज करने की आवश्यकता है - हमें प्रदर्शन के लिए कार्यक्षमता को छोड़ना पड़ा।

इस समस्या को हल करने और स्केलेबिलिटी प्रदान करने के लिए, हमने एक नया लॉगिंग सिस्टम पेश किया। कुल मिलाकर, हमने पचास से अधिक विभिन्न समाधानों का अध्ययन किया और चार की पहचान की जो पूरी तरह से हमारी आवश्यकताओं को पूरा करते हैं:

  • लॉग को स्टोर करने के लिए एकल स्थान;
  • यदि आवश्यक हो तो सिस्टम की क्षैतिज स्केलिंग;
  • बड़ी मात्रा में डेटा प्रसंस्करण;
  • शक्तिशाली लॉग विश्लेषण प्रणाली।

ये चार समाधान हैं: फ्लुएंट, ग्रेलॉग, लोगलीज़ और लॉगस्टैश।

Logstash

गीथहब पर समाधान के 9.2 हजार तारे हैं। Logstash को Apache 2.0 लाइसेंस के तहत लाइसेंस प्राप्त है और वह ELK स्टैक का हिस्सा है। इसमें बड़ी संख्या में प्लगइन्स हैं (गीथहब पर लगभग 250 हैं )। यह विंडोज और लिनक्स के तहत काम करता है और इसमें उच्च प्रदर्शन है, जो व्यावहारिक रूप से डेटा वॉल्यूम से स्वतंत्र है।

सिस्टम आपको वर्कस्टेशन, फायरवॉल, राउटर और स्विच से घटनाओं की त्वरित समीक्षा और विश्लेषण करने की अनुमति देता है । यह इस तथ्य के कारण है कि घटनाओं के "सामान्यीकरण" की कोई आवश्यकता नहीं है।

हालांकि, यह समझा जाना चाहिए कि यह एक "नंगे" इंजन है, क्योंकि यह तैयार दृश्य प्रदान नहीं करता है। अन्य कमियों के बीच, हम सभी सर्वरों पर जावा को स्थापित करने की आवश्यकता पर ध्यान देते हैं, क्योंकि लॉगस्टैश को रूबी (JRuby) में लिखा गया है।

समाधान में एक बड़ा समुदाय है: एक आईआरसी चैनल और एक अलग मंच हैपूरे सिस्टम और एपीआई के कॉन्फ़िगरेशन के लिए नेटवर्क पर उदाहरण हैं। निम्नलिखित संगठन Logstash: CERN कंट्रोल सेंटर, GitHub, SoundCloud का उपयोग करते हैं।

Fluentd

गिटहब पर 6.6 हजार तारे। सीएनसीएफ (क्लाउड नेटिव कम्प्यूटिंग फाउंडेशन) द्वारा अपाचे 2.0 लाइसेंस के तहत वितरित - यह कंटेनर तकनीक को बढ़ावा देने के लिए Google और लिनक्स फाउंडेशन द्वारा स्थापित किया गया था

धाराप्रवाह लिनक्स, विंडोज, और मैक पर चलता है और रूबी (CRuby) में लिखा जाता है। फ्लुएंट में एक लचीला प्लगइन सिस्टम है जो इसकी कार्यक्षमता को बढ़ाता है।

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

समुदाय बड़ा है: स्लैक में एक चैनल है , साथ ही साथ Google समूह में एक धागा भी है । परियोजना की आधिकारिक वेबसाइट में कॉन्फ़िगरेशन और एपीआई के उदाहरण हैं । Microsoft, Amazon, change.org, और Nintendo जैसी कंपनियां फ़्लुएंट का उपयोग करती हैं।

Graylog

गिटहब पर 4.3 हजार सितारे। GNU GPL v3 लाइसेंस के तहत वितरित किया गया। यह केवल लिनक्स के तहत काम करता है। प्लगइन्स का एक केंद्रीकृत पारिस्थितिकी तंत्र और एक कस्टम बफरिंग सिस्टम। सुविधा के लिए, यह इनकमिंग संदेशों को स्ट्रीम में संयोजित करने और अलग-अलग होस्ट से इन स्ट्रीम को समूहित करने की अनुमति देता है।

सिस्टम एलियटसर्च फ़ंक्शंस का उपयोग करता है, लेकिन ग्रेग्लोग और विकसित समुदाय के लगातार अपडेट के बावजूद (एक मंच , एक आईआरसी चैनल है , आधिकारिक परियोजना वेबसाइट पर कॉन्फ़िगरेशन और एपीआई के उदाहरण हैं ), प्रोजेक्ट में एलिटिक्स खोज के वर्तमान संस्करणों के एकीकरण में एक लंबा समय लगता है। उदाहरण के लिए, पिछले साल एक ऐसी स्थिति पैदा हुई थी, जहां ग्रेलाग 2.2.1 (उस समय अंतिम एक) ने केवल एलीटसर्च संस्करण 2.4.4 के साथ काम किया था, जिसे अप्रचलित माना जाता था।

अपने काम में, ग्रेलॉग यूरोपीय पर्यावरण एजेंसी, डायल वंस, स्टॉकोपेडिया और अन्य का उपयोग करता है।

LOGalyze

यह लिनक्स और विंडोज के तहत काम करता है। सिस्टम में उच्च प्रदर्शन है और कीवर्ड पर विस्तृत रिपोर्ट उत्पन्न कर सकता है। एक गंभीर खामी है - लॉगलाइज़ अपने फ़ाइल डेटाबेस में लॉग एकत्र करता है, जहां यह तब उन्हें अनुक्रमित करता है, डिस्क स्थान की एक महत्वपूर्ण राशि लेता है।

Logalyze Developers का अपना एक ब्लॉग है , और समाधान की चर्चा Google समूहों में होती है । सिस्टम कॉन्फ़िगरेशन और डेटा माइग्रेशन , साथ ही सीएलआई के लिए एक गाइड है।



इन चार विकल्पों का मूल्यांकन करने के बाद, हमने लॉगस्टैश का विकल्प चुना और ईएलके स्टैक (इलास्टिक खोज, लॉगस्टैश, किबाना) को व्यवस्थित करने का निर्णय लिया। इनमें से, एलियस्टिक्स एक खोज इंजन है, लॉगस्टैश लॉग को इकट्ठा करने और विश्लेषण करने के लिए एक तंत्र है, और किबना एनालिटिक्स और डेटा विज़ुअलाइज़ेशन में लगे हुए हैं।



हमने ईएलके को चुना, क्योंकि सभी तीन घटक एक "निर्माता" द्वारा विकसित किए जाते हैं, इसलिए वे एक दूसरे के साथ अच्छी तरह से एकीकृत होते हैं। यदि आवश्यक हो, तो हम अन्य समस्याओं को हल करने के लिए व्यक्तिगत रूप से इनमें से प्रत्येक उपकरण का उपयोग कर सकते हैं।

यह दृष्टिकोण उत्पाद को लचीला और बहुमुखी बनाता है। यह सब डेटा के मौजूदा संस्करणों के अधिक कुशल प्रसंस्करण और नई सेवाओं के तेजी से कार्यान्वयन की अनुमति देगा - इसे कनेक्ट करना आसान होगा।

अब परीक्षण का वातावरण तैयार है। यह उन सभी सेवाओं को "कवर" करता है जिनके लॉग हम विश्लेषण करेंगे। हम अंतिम डिबगिंग प्रक्रियाओं को पूरा कर रहे हैं और निकट भविष्य में समाधान की पूर्ण शुरूआत की योजना बना रहे हैं।

वैसे, इस तथ्य के बावजूद कि हमने विस्तार से विभिन्न विकल्पों का विश्लेषण किया और अपनी जरूरतों के लिए सबसे अच्छा एक चुना, अंत में यह मरहम में एक मक्खी के बिना नहीं था। समाधान का परीक्षण करते समय, हमें एक ऐसी स्थिति का सामना करना पड़ा जहां किबाना ने अनुरोध के द्वारा एलिटिक्स खोज को गिरा दिया - जिसे एक अत्यंत दुर्लभ और पतित मामला माना जाता है। सिस्टम की "असेंबली" के दौरान भी कई सवाल उठे, जो मुख्य रूप से सुरक्षा से संबंधित थे। मूल संस्करण में, एलीटेसर्च कुछ भी संरक्षित नहीं है - इन उद्देश्यों के लिए तीसरे पक्ष के सॉफ़्टवेयर को अनुकूलित करना आवश्यक था।

लॉन्च के बाद, हम लॉग सेवा में विफलताओं का जल्द से जल्द जवाब देने के लिए निगरानी प्रणाली स्थापित करेंगे। हमें उम्मीद है कि नई प्रौद्योगिकी स्टैक हमारे ग्राहकों के उपयोगकर्ता अनुभव को बेहतर बनाएगी और हमारी सेवाओं को और तेजी से विकसित करेगी।

हमारे कॉर्पोरेट ब्लॉग से सामग्री:

Source: https://habr.com/ru/post/hi420589/


All Articles