MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

क्लस्टर नियंत्रण प्रदर्शन और स्वास्थ्य निगरानी

पिछले दो ब्लॉग पोस्ट में हमने चार प्रकार के क्लस्टरिंग/प्रतिकृति (MySQL/Galera, MySQL प्रतिकृति, MongoDB और PostgreSQL) को परिनियोजित करने और आपके मौजूदा डेटाबेस और क्लस्टर का प्रबंधन/निगरानी दोनों को कवर किया। इसलिए, इन दो पहले ब्लॉग पोस्ट को पढ़ने के बाद, आप अपने 20 मौजूदा प्रतिकृति सेटअप को ClusterControl में जोड़ सकते हैं, उनका विस्तार कर सकते हैं और साथ ही कई अन्य काम करते हुए दो नए गैलेरा क्लस्टर भी तैनात कर सकते हैं। या हो सकता है कि आपने मोंगोडीबी और/या पोस्टग्रेएसक्यूएल सिस्टम तैनात किए हों। तो अब, आप उन्हें कैसे स्वस्थ रखते हैं?

यह ब्लॉग पोस्ट ठीक इसी बारे में है:अपने MySQL, MongoDB और/या PostgreSQL डेटाबेस और क्लस्टर को स्वस्थ रखने के लिए ClusterControl प्रदर्शन निगरानी और सलाहकार कार्यक्षमता का लाभ कैसे उठाएं। तो यह ClusterControl में कैसे किया जाता है?

डेटाबेस क्लस्टर सूची

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

मान लीजिए कि आप ClusterControl में लॉग इन करेंगे और इस तरह एक क्लस्टर सूची देखेंगे, तो आपके पास निश्चित रूप से जांच करने के लिए कुछ होगा:उदाहरण के लिए गैलेरा क्लस्टर में एक नोड नीचे है और प्रत्येक क्लस्टर में विभिन्न अलार्म हैं:

एक बार जब आप किसी एक अलार्म पर क्लिक करते हैं, तो आप क्लस्टर के सभी अलार्मों के विस्तृत पृष्ठ पर पहुंच जाएंगे। अलार्म विवरण समस्या की व्याख्या करेगा और अधिकांश मामलों में समस्या को हल करने के लिए कार्रवाई की सलाह भी देगा।

आप कस्टम एक्सप्रेशन बनाकर अपने स्वयं के अलार्म सेट कर सकते हैं, लेकिन यह हमारे नए डेवलपर स्टूडियो के पक्ष में बहिष्कृत कर दिया गया है जो आपको कस्टम Javascripts लिखने और उन्हें सलाहकार के रूप में निष्पादित करने की अनुमति देता है। हम इस पोस्ट में बाद में इस विषय पर वापस आएंगे।

क्लस्टर अवलोकन - डैशबोर्ड

क्लस्टर ओवरव्यू खोलते समय, हम तुरंत टैब में क्लस्टर के लिए सबसे महत्वपूर्ण प्रदर्शन मेट्रिक्स देख सकते हैं। यह अवलोकन प्रति क्लस्टर प्रकार में भिन्न हो सकता है, उदाहरण के लिए, गैलेरा में पारंपरिक MySQL, PostgreSQL या MongoDB की तुलना में देखने के लिए अलग-अलग प्रदर्शन मीट्रिक हैं।

डिफ़ॉल्ट अवलोकन और पूर्व-चयनित टैब दोनों अनुकूलन योग्य हैं। अवलोकन -> डैश सेटिंग . पर क्लिक करके आपको एक संवाद दिया जाता है जिससे आप डैशबोर्ड को परिभाषित कर सकते हैं:

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

इस नए डैशबोर्ड से हमें हमारे गैलेरा क्लस्टर की औसत कतार लंबाई के बारे में अच्छी जानकारी मिलनी चाहिए।

एक बार जब आप सेव दबा देते हैं, तो इस क्लस्टर के लिए नया डैशबोर्ड उपलब्ध हो जाएगा:

इसी तरह आप PostgreSQL के लिए भी ऐसा कर सकते हैं, उदाहरण के लिए हम साझा किए गए ब्लॉक हिट बनाम ब्लॉक पढ़ने की निगरानी कर सकते हैं:

इसलिए जैसा कि आप देख सकते हैं, अपने स्वयं के (डिफ़ॉल्ट) डैशबोर्ड को अनुकूलित करना अपेक्षाकृत आसान है।

क्लस्टर अवलोकन - क्वेरी मॉनिटर

क्वेरी मॉनिटर टैब MySQL और PostgreSQL आधारित सेटअप दोनों के लिए उपलब्ध है और इसमें तीन डैशबोर्ड शामिल हैं:टॉप क्वेरीज़, रनिंग क्वेरीज़ और क्वेरी आउटलेयर।

रनिंग क्वेरीज़ डैशबोर्ड में, आपको चल रही सभी मौजूदा क्वेरीज़ मिलेंगी। यह मूल रूप से MySQL डेटाबेस में SHOW FULL PROCESSLIST स्टेटमेंट के बराबर है।

शीर्ष क्वेरी और क्वेरी आउटलेयर दोनों धीमी क्वेरी लॉग या प्रदर्शन स्कीमा के इनपुट पर निर्भर करते हैं। प्रदर्शन स्कीमा का उपयोग करने की हमेशा अनुशंसा की जाती है और सक्षम होने पर स्वचालित रूप से उपयोग किया जाएगा। अन्यथा, चल रहे प्रश्नों को कैप्चर करने के लिए ClusterControl MySQL स्लो क्वेरी लॉग का उपयोग करेगा। ClusterControl को बहुत अधिक घुसपैठ और धीमी क्वेरी लॉग को बहुत बड़ा होने से रोकने के लिए, ClusterControl धीमी क्वेरी लॉग को चालू और बंद करके उसका नमूना लेगा। यह लूप डिफ़ॉल्ट रूप से 1 सेकंड कैप्चरिंग और long_query_time . पर सेट है 0.5 सेकंड पर सेट है। यदि आप अपने क्लस्टर के लिए इन सेटिंग्स को बदलना चाहते हैं, तो आप इसे सेटिंग्स -> क्वेरी मॉनिटर के माध्यम से बदल सकते हैं। ।

शीर्ष क्वेरी, जैसा कि नाम से पता चलता है, उन शीर्ष प्रश्नों को दिखाएंगी जिनका नमूना लिया गया था। आप उन्हें विभिन्न स्तंभों पर क्रमबद्ध कर सकते हैं:उदाहरण के लिए आवृत्ति, औसत निष्पादन समय, कुल निष्पादन समय या मानक विचलन समय:

आप इसे चुनकर क्वेरी के बारे में अधिक जानकारी प्राप्त कर सकते हैं और यह क्वेरी निष्पादन योजना (यदि उपलब्ध हो) और अनुकूलन संकेत/सलाह प्रस्तुत करेगा। क्वेरी आउटलेयर शीर्ष क्वेरी के समान है लेकिन फिर आपको प्रति होस्ट प्रश्नों को फ़िल्टर करने और समय पर उनकी तुलना करने की अनुमति देता है।

क्लस्टर अवलोकन - संचालन

PostgreSQL और MySQL सिस्टम के समान ही MongoDB क्लस्टर में ऑपरेशन ओवरव्यू होता है और यह MySQL की रनिंग क्वेरीज़ के समान होता है। यह सिंहावलोकन MongoDB के भीतर db.currentOp() कमांड जारी करने के समान है।

क्लस्टर अवलोकन - प्रदर्शन

MySQL/गैलेरा

प्रदर्शन टैब शायद आपके क्लस्टर के समग्र प्रदर्शन और स्वास्थ्य का पता लगाने के लिए सबसे अच्छी जगह है। MySQL और Galera के लिए इसमें एक सिंहावलोकन पृष्ठ, सलाहकार, स्थिति/चर अवलोकन, स्कीमा विश्लेषक और लेन-देन लॉग शामिल हैं।

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

सलाहकार क्लस्टर कंट्रोल की प्रमुख विशेषताओं में से एक है:सलाहकार स्क्रिप्टेड चेक होते हैं जिन्हें मांग पर चलाया जा सकता है। सलाहकार मेजबान और/या क्लस्टर के बारे में ज्ञात लगभग किसी भी तथ्य का मूल्यांकन कर सकते हैं और मेजबान और/या क्लस्टर के स्वास्थ्य पर अपनी राय दे सकते हैं और यहां तक ​​कि मुद्दों को हल करने या अपने मेजबानों को बेहतर बनाने के बारे में सलाह भी दे सकते हैं!

सबसे अच्छा हिस्सा अभी आना बाकी है:आप डेवलपर स्टूडियो में अपने स्वयं के चेक बना सकते हैं (ClusterControl -> प्रबंधित करें -> डेवलपर स्टूडियो ), उन्हें नियमित अंतराल पर चलाएं और सलाहकार अनुभाग में उनका फिर से उपयोग करें। हमने इस साल की शुरुआत में इस नई सुविधा के बारे में ब्लॉग किया था।

हम MySQL और Galera की स्थिति/चर अवलोकन को छोड़ देंगे क्योंकि यह संदर्भ के लिए उपयोगी है लेकिन इस ब्लॉग पोस्ट के लिए नहीं:यह काफी अच्छा है कि आप जानते हैं कि यह यहां है।

अब मान लीजिए कि आपका डेटाबेस बढ़ रहा है लेकिन आप जानना चाहते हैं कि पिछले एक हफ्ते में यह कितनी तेजी से बढ़ा है। आप वास्तव में ClusterControl के भीतर से डेटा और अनुक्रमणिका आकार दोनों की वृद्धि पर नज़र रख सकते हैं:

और डिस्क पर कुल वृद्धि के बाद यह शीर्ष 25 सबसे बड़े स्कीमा की भी रिपोर्ट कर सकता है।

एक अन्य महत्वपूर्ण विशेषता क्लस्टर नियंत्रण के भीतर स्कीमा विश्लेषक है:

ClusterControl आपके स्कीमा का विश्लेषण करेगा और बिना प्राथमिक कुंजी के अनावश्यक अनुक्रमणिका, MyISAM तालिकाओं और तालिकाओं की तलाश करेगा। बेशक यह पूरी तरह से आप पर निर्भर है कि आप प्राथमिक कुंजी के बिना एक टेबल रखें क्योंकि कुछ एप्लिकेशन ने इसे इस तरह से बनाया होगा, लेकिन कम से कम यहां सलाह मुफ्त में प्राप्त करना बहुत अच्छा है। स्कीमा विश्लेषक समस्या को ठीक करने के लिए आवश्यक ALTER कथन की भी अनुशंसा करता है।

पोस्टग्रेएसक्यूएल

PostgreSQL के लिए सलाहकार, DB स्थिति और DB चर यहां देखे जा सकते हैं:

मोंगोडीबी

MongoDB के लिए प्रदर्शन टैब के अंतर्गत Mongo Stats और प्रदर्शन सिंहावलोकन पाया जा सकता है। Mongo Stats mongostat के आउटपुट का एक सिंहावलोकन है और प्रदर्शन सिंहावलोकन MongoDB opcounters का एक अच्छा चित्रमय अवलोकन देता है:

अंतिम विचार

हमने आपको दिखाया कि कैसे आप ClusterControl की सबसे महत्वपूर्ण निगरानी और स्वास्थ्य जाँच सुविधाओं पर अपनी नज़र बनाए रखें। जाहिर है कि यह केवल यात्रा की शुरुआत है क्योंकि हम जल्द ही डेवलपर स्टूडियो क्षमताओं के बारे में एक और ब्लॉग श्रृंखला शुरू करेंगे और आप अपनी अधिकांश जांच कैसे कर सकते हैं। यह भी ध्यान रखें कि MongoDB और PostgreSQL के लिए हमारा समर्थन हमारे MySQL टूलसेट जितना व्यापक नहीं है, लेकिन हम इसमें लगातार सुधार कर रहे हैं।

आप खुद से पूछ सकते हैं कि हमने HAProxy, ProxySQL और MaxScale के प्रदर्शन की निगरानी और स्वास्थ्य जांच को क्यों छोड़ दिया है। हमने जानबूझकर ऐसा किया क्योंकि ब्लॉग श्रृंखला में अब तक केवल क्लस्टर की तैनाती शामिल थी, न कि HA घटकों की तैनाती। तो यही वह विषय है जिसे हम अगली बार कवर करेंगे।


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - घंटों की समय सीमा के बीच क्वेरी करना

  2. कुल $लुकअप तत्वों के मूल सरणी क्रम को वापस नहीं करता है

  3. MongoDB रूबी ड्राइवर 2.5.x प्रतिकृति सेट पर होस्टनाम के साथ केस-संवेदनशीलता मुद्दे

  4. संस्करण त्रुटि:Node.js/Mongoose पर कोई मिलान करने वाला दस्तावेज़ त्रुटि नहीं मिला

  5. उल्का:अप्रत्याशित मोंगो निकास कोड 100