एक बार जब आप अपने डेटाबेस का बुनियादी ढांचा तैयार कर लेते हैं, तो आपको इस पर नजर रखनी होगी कि क्या हो रहा है। यदि आप यह सुनिश्चित करना चाहते हैं कि सब कुछ ठीक चल रहा है या आपको कुछ बदलने की आवश्यकता हो तो निगरानी आवश्यक है।
प्रत्येक डेटाबेस प्रौद्योगिकी के लिए निगरानी करने के लिए कई चीजें हैं। इनमें से कुछ डेटाबेस इंजन या विक्रेता या यहां तक कि आपके द्वारा उपयोग किए जा रहे विशिष्ट संस्करण के लिए विशिष्ट हैं।
इस ब्लॉग में, हम इस बात पर एक नज़र डालेंगे कि PostgreSQL परिवेश में आपको किन चीज़ों पर नज़र रखने की ज़रूरत है।
PostgreSQL में क्या मॉनिटर करना है
डेटाबेस क्लस्टर या नोड की निगरानी करते समय, दो मुख्य बातों को ध्यान में रखना चाहिए:ऑपरेटिंग सिस्टम और डेटाबेस स्वयं। आपको यह परिभाषित करने की आवश्यकता होगी कि आप दोनों पक्षों से कौन से मेट्रिक्स की निगरानी करने जा रहे हैं और आप इसे कैसे करने जा रहे हैं। आपको हमेशा अपने सिस्टम के संदर्भ में मीट्रिक की निगरानी करने की आवश्यकता होती है, और आपको व्यवहार पैटर्न में बदलाव की तलाश करनी चाहिए।
ज्यादातर मामलों में, आपको कई टूल का उपयोग करने की आवश्यकता होगी (क्योंकि सभी वांछित मीट्रिक को कवर करने के लिए एक को ढूंढना लगभग असंभव है।)
ध्यान रखें कि जब आपकी कोई एक मेट्रिक प्रभावित होती है, तो यह अन्य को भी प्रभावित कर सकती है, जिससे समस्या का निवारण अधिक जटिल हो जाता है। इस कार्य को यथासंभव सरल बनाने के लिए एक अच्छी निगरानी और चेतावनी प्रणाली का होना महत्वपूर्ण है।
ऑपरेटिंग सिस्टम मॉनिटरिंग
एक महत्वपूर्ण बात (जो सभी डेटाबेस इंजनों और यहां तक कि सभी के लिए समान है) सिस्टम) ऑपरेटिंग सिस्टम व्यवहार की निगरानी करना है। यहां जांच के लिए कुछ बिंदु दिए गए हैं।
CPU उपयोग
यदि सामान्य व्यवहार नहीं है तो CPU उपयोग का अत्यधिक प्रतिशत एक समस्या हो सकती है। इस मामले में, इस मुद्दे को उत्पन्न करने वाली प्रक्रिया/प्रक्रियाओं की पहचान करना महत्वपूर्ण है। यदि समस्या डेटाबेस प्रक्रिया है, तो आपको यह जांचना होगा कि डेटाबेस के अंदर क्या हो रहा है।
RAM मेमोरी या स्वैप उपयोग
यदि आप इस मीट्रिक के लिए एक उच्च मान देख रहे हैं और आपके सिस्टम में कुछ भी नहीं बदला है, तो संभवतः आपको अपने डेटाबेस कॉन्फ़िगरेशन की जांच करने की आवश्यकता है। Shared_buffers और work_mem जैसे पैरामीटर इसे सीधे प्रभावित कर सकते हैं क्योंकि वे PostgreSQL डेटाबेस के लिए उपयोग की जाने वाली मेमोरी की मात्रा को परिभाषित करते हैं।
डिस्क उपयोग
डिस्क स्थान के उपयोग में असामान्य वृद्धि या अत्यधिक डिस्क एक्सेस खपत पर नजर रखने के लिए महत्वपूर्ण चीजें हैं क्योंकि पोस्टग्रेएसक्यूएल लॉग फ़ाइल में बड़ी संख्या में त्रुटियां लॉग हो सकती हैं या खराब कैश कॉन्फ़िगरेशन हो सकता है प्रश्नों को संसाधित करने के लिए मेमोरी का उपयोग करने के बजाय एक महत्वपूर्ण डिस्क एक्सेस खपत उत्पन्न करें।
लोड औसत
यह ऊपर बताए गए तीन बिंदुओं से संबंधित है। अत्यधिक CPU, RAM या डिस्क के उपयोग से एक उच्च लोड औसत उत्पन्न हो सकता है।
नेटवर्क
एक नेटवर्क समस्या सभी सिस्टम को प्रभावित कर सकती है क्योंकि एप्लिकेशन डेटाबेस से कनेक्ट नहीं हो सकता (या पैकेज खोने को कनेक्ट कर सकता है), इसलिए यह वास्तव में मॉनिटर करने के लिए एक महत्वपूर्ण मीट्रिक है। आप विलंबता या पैकेट हानि की निगरानी कर सकते हैं, और मुख्य मुद्दा एक नेटवर्क संतृप्ति, एक हार्डवेयर समस्या या सिर्फ एक खराब नेटवर्क कॉन्फ़िगरेशन हो सकता है।
PostgreSQL डेटाबेस मॉनिटरिंग
अपने PostgreSQL डेटाबेस की निगरानी करना न केवल यह देखने के लिए महत्वपूर्ण है कि क्या आपको कोई समस्या हो रही है, बल्कि यह भी जानना है कि क्या आपको अपने डेटाबेस के प्रदर्शन को बेहतर बनाने के लिए कुछ बदलने की आवश्यकता है, जो शायद सबसे महत्वपूर्ण में से एक है। डेटाबेस में मॉनिटर करने के लिए चीजें। आइए देखते हैं कुछ मेट्रिक्स जो इसके लिए महत्वपूर्ण हैं।
क्वेरी मॉनिटरिंग
डिफ़ॉल्ट रूप से, PostgreSQL को संगतता और स्थिरता को ध्यान में रखते हुए कॉन्फ़िगर किया गया है, इसलिए आपको अपने प्रश्नों और उसके पैटर्न को जानना होगा, और आपके पास मौजूद ट्रैफ़िक के आधार पर अपने डेटाबेस को कॉन्फ़िगर करना होगा। यहां, आप किसी विशिष्ट क्वेरी के लिए क्वेरी प्लान की जांच करने के लिए EXPLAIN कमांड का उपयोग कर सकते हैं, और आप प्रत्येक नोड पर SELECT, INSERT, UPDATE या DELETEs की मात्रा की निगरानी भी कर सकते हैं। यदि आपके पास एक ही समय में एक लंबी क्वेरी या बड़ी संख्या में क्वेरी चल रही हैं, तो यह सभी प्रणालियों के लिए एक समस्या हो सकती है।
सक्रिय सत्रों की निगरानी करना
आपको सक्रिय सत्रों की संख्या पर भी नजर रखनी चाहिए। यदि आप सीमा के करीब हैं, तो आपको यह जांचना होगा कि क्या कुछ गलत है या यदि आपको केवल max_connections मान बढ़ाने की आवश्यकता है। संख्या में अंतर कनेक्शन की वृद्धि या कमी हो सकती है। कनेक्शन पूलिंग, लॉकिंग या नेटवर्क समस्या का खराब उपयोग कनेक्शन की संख्या से संबंधित सबसे आम समस्याएं हैं।
डेटाबेस लॉक
यदि आपके पास कोई क्वेरी है जो किसी अन्य क्वेरी की प्रतीक्षा कर रही है, तो आपको यह जांचना होगा कि क्या कोई अन्य क्वेरी एक सामान्य प्रक्रिया है या कुछ नई है। कुछ मामलों में, अगर कोई बड़ी टेबल पर अपडेट कर रहा है, उदाहरण के लिए, यह क्रिया आपके डेटाबेस के सामान्य व्यवहार को प्रभावित कर सकती है, जिससे बड़ी संख्या में ताले बन सकते हैं।
प्रतिकृति की निगरानी
प्रतिकृति की निगरानी के लिए प्रमुख मीट्रिक अंतराल और प्रतिकृति स्थिति हैं। सबसे आम मुद्दे नेटवर्किंग मुद्दे, हार्डवेयर संसाधन मुद्दे, या कम आयाम वाले मुद्दे हैं। यदि आप एक प्रतिकृति समस्या का सामना कर रहे हैं, तो आपको इसे जल्द से जल्द जानना होगा क्योंकि उच्च उपलब्धता वातावरण सुनिश्चित करने के लिए आपको इसे ठीक करने की आवश्यकता होगी।
बैकअप की निगरानी करना
डेटा हानि से बचना बुनियादी डीबीए कार्यों में से एक है, इसलिए आपको न केवल बैकअप लेने की आवश्यकता है, आपको पता होना चाहिए कि क्या बैकअप पूरा हो गया था, और यदि यह प्रयोग करने योग्य है। आमतौर पर, इस अंतिम बिंदु पर ध्यान नहीं दिया जाता है, लेकिन बैकअप प्रक्रिया में शायद यह सबसे महत्वपूर्ण जांच है।
डेटाबेस लॉग की निगरानी करना
आपको FATAL या गतिरोध जैसी त्रुटियों के लिए या यहां तक कि प्रमाणीकरण समस्याओं या लंबे समय तक चलने वाली क्वेरी जैसी सामान्य त्रुटियों के लिए भी अपने डेटाबेस लॉग की निगरानी करनी चाहिए। अधिकांश त्रुटियों को ठीक करने के लिए विस्तृत उपयोगी जानकारी के साथ लॉग फ़ाइल में लिखा जाता है।
PostgreSQL डेटाबेस प्रदर्शन पर निगरानी का प्रभाव
हालांकि निगरानी जरूरी है, यह आमतौर पर मुफ़्त नहीं है। आप कितनी निगरानी कर रहे हैं, इस पर निर्भर करते हुए, डेटाबेस के प्रदर्शन पर हमेशा एक लागत होती है, इसलिए आपको उन चीजों की निगरानी से बचना चाहिए जिनका आप उपयोग नहीं करेंगे।
सामान्य तौर पर, आपके डेटाबेस पर नज़र रखने के दो तरीके हैं, लॉग से या डेटाबेस की ओर से क्वेरी करके।
लॉग के मामले में, उनका उपयोग करने में सक्षम होने के लिए, आपके पास एक उच्च लॉगिंग स्तर होना चाहिए, जो उच्च डिस्क एक्सेस उत्पन्न करता है और यह आपके डेटाबेस के प्रदर्शन को प्रभावित कर सकता है।
क्वेरी मोड के लिए, डेटाबेस से प्रत्येक कनेक्शन संसाधनों का उपयोग करता है, इसलिए आपके डेटाबेस की गतिविधि और असाइन किए गए संसाधनों के आधार पर, यह प्रदर्शन को भी प्रभावित कर सकता है।
PostgreSQL निगरानी उपकरण
आपके डेटाबेस की निगरानी के लिए कई टूल विकल्प हैं। यह एक अंतर्निहित PostgreSQL टूल हो सकता है, जैसे एक्सटेंशन, या कोई बाहरी टूल। आइए इन उपकरणों के कुछ उदाहरण देखें।
एक्सटेंशन
- Pg_stat_statements :यह एक्सटेंशन आपके डेटाबेस की क्वेरी प्रोफ़ाइल को जानने में आपकी सहायता करेगा। यह निष्पादित सभी प्रश्नों को ट्रैक करता है और pg_stat_statements नामक तालिका में बहुत सारी उपयोगी जानकारी संग्रहीत करता है। इस तालिका को क्वेरी करके आप प्राप्त कर सकते हैं कि सिस्टम में कौन से प्रश्न चलाए गए हैं, वे कितनी बार चले हैं, और उन्होंने कितना समय व्यतीत किया है, अन्य जानकारी के साथ।
- पीजीबैजर :यह एक सॉफ्टवेयर है जो PostgreSQL लॉग का विश्लेषण करता है और उन्हें एक HTML फ़ाइल में प्रदर्शित करता है। यह आपको अपने डेटाबेस के व्यवहार को समझने और यह पहचानने में मदद करता है कि किन प्रश्नों को अनुकूलित करने की आवश्यकता है।
- Pgstattuple :यह टेबल और इंडेक्स के लिए आंकड़े उत्पन्न कर सकता है, यह दर्शाता है कि प्रत्येक टेबल और इंडेक्स द्वारा कितनी जगह का उपयोग किया जाता है, लाइव टुपल्स, हटाए गए टुपल्स या प्रत्येक संबंध में कितना अप्रयुक्त स्थान उपलब्ध है।
- Pg_buffercache :इसके साथ, आप वास्तविक समय में साझा बफर कैश में क्या हो रहा है, यह देख सकते हैं कि कैश में वर्तमान में कितने पृष्ठ हैं।
बाहरी निगरानी उपकरण
- ClusterControl :यह एक प्रबंधन और निगरानी प्रणाली है जो आपके डेटाबेस को एक अनुकूल इंटरफेस से तैनात, प्रबंधित, मॉनिटर और स्केल करने में मदद करती है। ClusterControl में शीर्ष ओपन-सोर्स डेटाबेस तकनीकों के लिए समर्थन है और आप नियमित रूप से निष्पादित किए जाने वाले कई डेटाबेस कार्यों को स्वचालित कर सकते हैं जैसे नए नोड्स जोड़ना और स्केल करना, बैकअप चलाना और पुनर्स्थापित करना, और बहुत कुछ।
- नागियोस :यह एक ओपन सोर्स सिस्टम और नेटवर्क मॉनिटरिंग एप्लीकेशन है। यह मेजबानों या सेवाओं की निगरानी करता है, और विभिन्न राज्यों के लिए अलर्ट का प्रबंधन करता है। इस टूल से, आप नेटवर्क सेवाओं, होस्ट संसाधनों, और बहुत कुछ की निगरानी कर सकते हैं। PostgreSQL की निगरानी के लिए, आप कुछ प्लगइन का उपयोग कर सकते हैं या आप अपने डेटाबेस की जांच के लिए अपनी स्क्रिप्ट बना सकते हैं।
- ज़बिक्स :यह एक ऐसा सॉफ्टवेयर है जो नेटवर्क और सर्वर दोनों की निगरानी कर सकता है। यह एक लचीली अधिसूचना तंत्र का उपयोग करता है जो उपयोगकर्ताओं को ईमेल द्वारा अलर्ट कॉन्फ़िगर करने की अनुमति देता है। यह संग्रहीत डेटा के आधार पर रिपोर्ट और डेटा विज़ुअलाइज़ेशन भी प्रदान करता है। सभी ज़ैबिक्स रिपोर्ट और आंकड़े, साथ ही साथ कॉन्फ़िगरेशन पैरामीटर, एक वेब इंटरफ़ेस के माध्यम से एक्सेस किए जाते हैं।
डैशबोर्ड
दृश्यता समस्या का तेजी से पता लगाने के लिए उपयोगी है। केवल ग्राफ़ देखने की तुलना में कमांड आउटपुट को पढ़ना निश्चित रूप से अधिक समय लेने वाला कार्य है। इसलिए, डैशबोर्ड का उपयोग अभी या अगले 15 मिनट में किसी समस्या का पता लगाने के बीच का अंतर हो सकता है, यह सुनिश्चित है कि कंपनी के लिए समय वास्तव में महत्वपूर्ण हो सकता है। इस कार्य के लिए, PMM या Vividcortex जैसे उपकरण, आपके डेटाबेस निगरानी प्रणाली में दृश्यता जोड़ने की कुंजी हो सकते हैं।
पेरकोना मॉनिटरिंग एंड मैनेजमेंट (पीएमएम): यह आपके डेटाबेस प्रदर्शन के प्रबंधन और निगरानी के लिए एक ओपन-सोर्स प्लेटफॉर्म है। यह सुनिश्चित करने के लिए कि आपका डेटा यथासंभव कुशलता से काम करता है, यह MySQL, MariaDB, MongoDB और PostgreSQL सर्वर के लिए संपूर्ण समय-आधारित विश्लेषण प्रदान करता है।
VividCortex: यह एक क्लाउड-होस्टेड प्लेटफॉर्म है जो डीप डेटाबेस परफॉर्मेंस मॉनिटरिंग प्रदान करता है। यह MySQL, PostgreSQL, AWS Aurora, MongoDB, और Redis सहित प्रमुख ओपन सोर्स डेटाबेस में पूर्ण दृश्यता प्रदान करता है।
अलर्ट करना
यदि आप प्रत्येक समस्या के बारे में सूचना प्राप्त नहीं करते हैं तो केवल सिस्टम की निगरानी करने का कोई मतलब नहीं है। चेतावनी प्रणाली के बिना, आपको यह देखने के लिए निगरानी उपकरण पर जाना चाहिए कि क्या सब कुछ ठीक है, और यह संभव हो सकता है कि आपको कई घंटे पहले से कोई बड़ी समस्या हो। अलर्ट करने का यह काम ईमेल अलर्ट, टेक्स्ट अलर्ट या स्लैक जैसे अन्य टूल इंटीग्रेशन का उपयोग करके किया जा सकता है।
पोस्टग्रेएसक्यूएल के लिए सभी आवश्यक मेट्रिक्स की निगरानी के लिए कुछ टूल ढूंढना वाकई मुश्किल है, सामान्य तौर पर, आपको एक से अधिक का उपयोग करने की आवश्यकता होगी और यहां तक कि कुछ स्क्रिप्टिंग भी बनाने की आवश्यकता होगी। मॉनिटरिंग और अलर्टिंग कार्य को केंद्रीकृत करने का एक तरीका क्लस्टरकंट्रोल का उपयोग करना है, जो आपको बैकअप प्रबंधन, मॉनिटरिंग और अलर्टिंग, परिनियोजन और स्केलिंग, स्वचालित पुनर्प्राप्ति और आपके डेटाबेस को प्रबंधित करने में मदद करने के लिए अधिक महत्वपूर्ण सुविधाएँ प्रदान करता है। ये सभी सुविधाएं एक ही सिस्टम पर हैं।
ClusterControl के साथ अपने PostgreSQL डेटाबेस की निगरानी करना
ClusterControl आपको रीयल-टाइम में अपने सर्वर की निगरानी करने की अनुमति देता है। कुछ सबसे सामान्य मीट्रिक का विश्लेषण करने के लिए इसमें आपके लिए डैशबोर्ड का एक पूर्वनिर्धारित सेट है।
यह आपको क्लस्टर में उपलब्ध ग्राफ़ को अनुकूलित करने की अनुमति देता है, और आप कर सकते हैं अधिक विस्तृत डैशबोर्ड बनाने के लिए एजेंट-आधारित निगरानी सक्षम करें।
आप अलर्ट भी बना सकते हैं, जो आपको आपके क्लस्टर में होने वाली घटनाओं की सूचना देता है, या पेजरड्यूटी या स्लैक जैसी विभिन्न सेवाओं के साथ एकीकृत करें।
इसके अलावा, आप क्वेरी मॉनिटर अनुभाग की जांच कर सकते हैं, जहां आप पा सकते हैं शीर्ष क्वेरी, चल रही क्वेरी, क्वेरी आउटलेयर और क्वेरी आँकड़े।
इन सुविधाओं के साथ, आप देख सकते हैं कि आपका PostgreSQL डेटाबेस कैसा चल रहा है।पी>
बैकअप प्रबंधन के लिए, ClusterControl इसे आपके डेटा की सुरक्षा, सुरक्षा और पुनर्प्राप्ति के लिए केंद्रीकृत करता है, और सत्यापन बैकअप सुविधा के साथ, आप पुष्टि कर सकते हैं कि बैकअप जाना अच्छा है या नहीं।
यह सत्यापन बैकअप कार्य बैकअप को एक अलग स्टैंडअलोन होस्ट में पुनर्स्थापित करेगा, इसलिए आप सुनिश्चित कर सकते हैं कि बैकअप काम कर रहा है।
ClusterControl कमांड लाइन से निगरानी करना
स्क्रिप्टिंग और कार्यों को स्वचालित करने के लिए, या यदि आप केवल कमांड लाइन पसंद करते हैं, तो ClusterControl में s9s टूल है। यह आपके डेटाबेस क्लस्टर के प्रबंधन के लिए एक कमांड-लाइन टूल है।
क्लस्टर सूची
नोड सूची
आप ClusterControl UI से सभी कार्य (और भी अधिक) कर सकते हैं , और आप इस सुविधा को वहां से प्रबंधित करने के लिए स्लैक जैसे कुछ बाहरी टूल के साथ एकीकृत कर सकते हैं।
निष्कर्ष
इस ब्लॉग में, हमने आपके PostgreSQL वातावरण में निगरानी के लिए कुछ महत्वपूर्ण मीट्रिक और आपके सिस्टम को नियंत्रण में रखकर आपके जीवन को आसान बनाने के लिए कुछ टूल का उल्लेख किया है। आप यह भी देख सकते हैं कि इस कार्य के लिए ClusterControl का उपयोग कैसे करें।
जैसा कि आप देख सकते हैं, निगरानी नितांत आवश्यक है, और इसे कैसे करना है इसका सबसे अच्छा तरीका बुनियादी ढांचे और सिस्टम पर ही निर्भर करता है। आपको मॉनिटर करने के लिए क्या आवश्यक है और यह आपके डेटाबेस के प्रदर्शन को कैसे प्रभावित करता है, के बीच संतुलन तक पहुंचना चाहिए।