निगरानी सभी परिवेशों में आवश्यक है, और डेटाबेस अपवाद नहीं हैं। एक बार जब आप अपना डेटाबेस इन्फ्रास्ट्रक्चर अप-एंड-रन कर लेते हैं, तो आपको क्या हो रहा है, इस पर नजर रखने की आवश्यकता होगी। यदि आप यह सुनिश्चित करना चाहते हैं कि सब कुछ ठीक चल रहा है, लेकिन यदि आप अपने सिस्टम के बढ़ने और विकसित होने के दौरान आवश्यक समायोजन करना चाहते हैं तो निगरानी आवश्यक है। यह आपको रुझानों की पहचान करने, उन्नयन या सुधार की योजना बनाने, या किसी भी समस्या या त्रुटियों के लिए पर्याप्त रूप से प्रतिक्रिया करने में सक्षम करेगा जो नए संस्करणों, विभिन्न उद्देश्यों आदि के साथ उत्पन्न हो सकती हैं।
प्रत्येक डेटाबेस प्रौद्योगिकी के लिए, निगरानी के लिए अलग-अलग चीजें हैं। इनमें से कुछ डेटाबेस इंजन, विक्रेता, या यहां तक कि आपके द्वारा उपयोग किए जा रहे विशेष संस्करण के लिए विशिष्ट हैं। डेटाबेस क्लस्टर अंतर्निहित बुनियादी ढांचे पर बहुत अधिक निर्भर करते हैं, इसलिए नेटवर्क और ऑपरेटिंग आँकड़े डेटाबेस प्रशासकों द्वारा भी देखना दिलचस्प है।
एक से अधिक डेटाबेस सिस्टम चलाते समय, इन सिस्टमों की निगरानी काफी मुश्किल हो सकती है।
इस ब्लॉग में, हम इस पर एक नज़र डालेंगे कि आपको MySQL 8.0 परिवेश की निगरानी के लिए क्या चाहिए। हम क्लस्टर नियंत्रण निगरानी सुविधाओं पर भी एक नज़र डालेंगे, जो आपके डेटाबेस के स्वास्थ्य को निःशुल्क ट्रैक करने में आपकी सहायता कर सकती हैं।
OS और डेटाबेस सिस्टम मॉनिटरिंग
डेटाबेस क्लस्टर या नोड को देखते समय, ध्यान में रखने के लिए दो मुख्य बिंदु हैं:ऑपरेटिंग सिस्टम और MySQL इंस्टेंस। आपको यह परिभाषित करने की आवश्यकता होगी कि आप दोनों पक्षों से कौन से मेट्रिक्स की निगरानी करने जा रहे हैं और आप इसे कैसे करने जा रहे हैं। आपको अपने सिस्टम के अर्थ में हमेशा पैरामीटर का पालन करने की आवश्यकता है, और आपको व्यवहार मॉडल में बदलाव की तलाश करनी चाहिए।
ध्यान रखें कि जब आपका कोई पैरामीटर प्रभावित होता है, तो यह अन्य को भी प्रभावित कर सकता है, जिससे समस्या का निवारण अधिक जटिल हो जाता है। इस कार्य को यथासंभव सरल बनाने के लिए उचित निगरानी और चेतावनी प्रणाली का होना आवश्यक है।
ज्यादातर मामलों में, आपको कुछ टूल का उपयोग करने की आवश्यकता होगी, क्योंकि सभी वांछित मीट्रिक को कवर करने के लिए एक को ढूंढना मुश्किल है।
OS सिस्टम मॉनिटरिंग
एक प्रमुख बात (जो सभी डेटाबेस इंजनों और यहां तक कि सभी प्रणालियों के लिए समान है) ऑपरेटिंग सिस्टम व्यवहार की निगरानी करना है। यहाँ जाँच करने के लिए कुछ बिंदु दिए गए हैं। नीचे आप डेटाबेस सर्वर पर देखने के लिए शीर्ष सिस्टम संसाधन पा सकते हैं। यह वास्तव में जाँच करने के लिए सबसे पहली चीज़ों की सूची भी है।
CPU उपयोग
जब तक आप सीमा तक नहीं पहुंच जाते तब तक उच्च CPU उपयोग कोई बुरी बात नहीं है। यदि सामान्य व्यवहार नहीं है तो CPU उपयोग का अत्यधिक प्रतिशत एक समस्या हो सकती है। इस मामले में, इस मुद्दे को उत्पन्न करने वाली प्रक्रिया/प्रक्रियाओं की पहचान करना आवश्यक है। यदि समस्या डेटाबेस प्रक्रिया है, तो आपको यह जांचना होगा कि डेटाबेस के अंदर क्या हो रहा है।
RAM मेमोरी या स्वैप उपयोग
आदर्श रूप से, आपका संपूर्ण डेटाबेस मेमोरी में संग्रहीत होना चाहिए, लेकिन यह हमेशा संभव नहीं होता है। MySQL को उतना ही दें जितना आप खर्च कर सकते हैं लेकिन अन्य प्रक्रियाओं को कार्य करने के लिए पर्याप्त छोड़ दें।
यदि आप इस मीट्रिक के लिए एक उच्च मान देखते हैं और आपके सिस्टम में कुछ भी नहीं बदला है, तो संभवतः आपको अपने डेटाबेस कॉन्फ़िगरेशन की जांच करने की आवश्यकता है। Shared_buffers और work_mem जैसे पैरामीटर इसे सीधे प्रभावित कर सकते हैं क्योंकि वे MySQL डेटाबेस के लिए उपयोग की जाने वाली मेमोरी की मात्रा को परिभाषित करते हैं। स्वैप केवल आपात स्थिति के लिए है, और इसका उपयोग नहीं किया जाना चाहिए, सुनिश्चित करें कि MySQL को स्वैप उपयोग के बारे में निर्णय लेने के लिए आपका ऑपरेटिंग सिस्टम भी सेट है।
डिस्क उपयोग
डिस्क का उपयोग निगरानी और सतर्क करने के लिए प्रमुख मीट्रिक में से एक है। सुनिश्चित करें कि आपके पास हमेशा नए डेटा, अस्थायी फ़ाइलें, स्नैपशॉट या बैकअप के लिए खाली स्थान है।
हार्ड मेट्रिक मानों की निगरानी करना पर्याप्त नहीं है। डिस्क स्थान के उपयोग में असामान्य वृद्धि या अत्यधिक डिस्क एक्सेस खपत देखने के लिए आवश्यक चीजें हैं क्योंकि आपके पास MySQL लॉग फ़ाइल में बड़ी संख्या में त्रुटियां हो सकती हैं या एक घटिया कैश कॉन्फ़िगरेशन हो सकता है जो इसके बजाय एक महत्वपूर्ण डिस्क एक्सेस खपत उत्पन्न कर सकता है प्रश्नों को संसाधित करने के लिए स्मृति का उपयोग करना। सुनिश्चित करें कि आप असामान्य व्यवहारों को पकड़ने में सक्षम हैं, भले ही आपकी चेतावनी और महत्वपूर्ण मीट्रिक अभी तक नहीं पहुंचे हैं।
निगरानी स्थान के साथ-साथ हमें डिस्क गतिविधि की निगरानी भी करनी चाहिए। निगरानी के लिए शीर्ष मान हैं:
- अनुरोध पढ़ें/लिखें
- IO कतार की लंबाई
- औसत IO प्रतीक्षा
- औसत पढ़ने/लिखने का समय
- बैंडविड्थ पढ़ें/लिखें
आप इन सभी विवरणों को देखने के लिए Percona से iostat या pt-diskstats का उपयोग कर सकते हैं।
जो चीजें आपकी डिस्क के प्रदर्शन को प्रभावित कर सकती हैं, वे अक्सर आपकी डिस्क से और उसकी ओर डेटा स्थानांतरण से संबंधित होती हैं, इसलिए अन्य उपयोगकर्ताओं से शुरू की जा सकने वाली असामान्य प्रक्रियाओं की निगरानी करें।
लोड औसत
एक ऑल-इन-वन प्रदर्शन मीट्रिक। Linux लोड को समझना OS और डेटाबेस पर निर्भर सिस्टम की निगरानी की कुंजी है.
उपरोक्त तीन बिंदुओं से संबंधित औसत लोड करें। अत्यधिक CPU, RAM, या डिस्क उपयोग द्वारा एक उच्च लोड औसत उत्पन्न किया जा सकता है।
नेटवर्क
जब तक बैकअप नहीं किया जाता है या बड़ी मात्रा में डेटा स्थानांतरित नहीं किया जाता है, तब तक यह अड़चन नहीं होनी चाहिए।
एक नेटवर्क समस्या सभी सिस्टम को प्रभावित कर सकती है क्योंकि एप्लिकेशन डेटाबेस से कनेक्ट नहीं हो सकता (या पैकेज खोने से कनेक्ट नहीं हो सकता), इसलिए यह वास्तव में मॉनिटर करने के लिए एक महत्वपूर्ण मीट्रिक है। आप विलंबता या पैकेट हानि की निगरानी कर सकते हैं, और मुख्य समस्या एक नेटवर्क संतृप्ति, एक हार्डवेयर समस्या, या केवल एक घटिया नेटवर्क कॉन्फ़िगरेशन हो सकती है।
डेटाबेस निगरानी
हालांकि निगरानी जरूरी है, यह आमतौर पर मुफ़्त नहीं है। आप कितनी निगरानी कर रहे हैं, इसके आधार पर डेटाबेस के प्रदर्शन पर हमेशा एक लागत आती है, इसलिए आपको उन चीजों की निगरानी से बचना चाहिए जिनका आप उपयोग नहीं करेंगे।
सामान्य तौर पर, आपके डेटाबेस पर नज़र रखने के दो तरीके हैं, लॉग से या डेटाबेस की ओर से क्वेरी करके।
लॉग के मामले में, उनका उपयोग करने में सक्षम होने के लिए, आपके पास एक उच्च लॉगिंग स्तर होना चाहिए, जो उच्च डिस्क एक्सेस उत्पन्न करता है और यह आपके डेटाबेस के प्रदर्शन को प्रभावित कर सकता है।
क्वेरी मोड के लिए, डेटाबेस से प्रत्येक कनेक्शन संसाधनों का उपयोग करता है, इसलिए आपके डेटाबेस की गतिविधि और असाइन किए गए संसाधनों के आधार पर, यह प्रदर्शन को भी प्रभावित कर सकता है।
बेशक, MySQL में कई मीट्रिक हैं। यहां हम शीर्ष महत्वपूर्ण पर ध्यान केंद्रित करेंगे।
सक्रिय सत्रों की निगरानी करना
आपको सक्रिय सत्रों की संख्या और डीबी अप डाउन स्थिति को भी ट्रैक करना चाहिए। अक्सर समस्या को समझने के लिए आपको यह देखना होगा कि डेटाबेस कितने समय से चल रहा है। इसलिए हम इसका उपयोग रेस्पॉन्स का पता लगाने के लिए कर सकते हैं।
अगली बात कई सत्रों की होगी। यदि आप सीमा के करीब हैं, तो आपको यह जांचना होगा कि क्या कुछ गलत है या यदि आपको केवल max_connections मान बढ़ाने की आवश्यकता है। संख्या में अंतर कनेक्शन की वृद्धि या कमी हो सकती है। कनेक्शन पूलिंग, लॉकिंग या नेटवर्क समस्याओं का अनुचित उपयोग कनेक्शन की संख्या से संबंधित सबसे आम समस्याएं हैं।
यहां प्रमुख मान हैं
- अपटाइम
- Threads_connected
- Max_used_connections
- निरस्त_कनेक्ट
डेटाबेस लॉक
यदि आपके पास कोई क्वेरी है जो किसी अन्य क्वेरी की प्रतीक्षा कर रही है, तो आपको यह जांचना होगा कि क्या कोई अन्य क्वेरी एक सामान्य प्रक्रिया है या कुछ नई है। कुछ मामलों में, अगर कोई बड़ी टेबल पर अपडेट कर रहा है, उदाहरण के लिए, यह क्रिया आपके डेटाबेस के सामान्य व्यवहार को प्रभावित कर सकती है, जिससे बड़ी संख्या में ताले बन सकते हैं।
प्रतिकृति की निगरानी
प्रतिकृति की निगरानी के लिए प्रमुख मीट्रिक अंतराल और प्रतिकृति स्थिति हैं। न केवल अप डाउन स्टेटस बल्कि लैग भी क्योंकि इस मूल्य में लगातार वृद्धि एक बहुत अच्छा संकेत नहीं है क्योंकि इसका मतलब है कि गुलाम अपने मालिक के साथ पकड़ने में सक्षम नहीं है।
सबसे आम मुद्दे नेटवर्किंग मुद्दे, हार्डवेयर संसाधन मुद्दे, या कम आयाम वाले मुद्दे हैं। यदि आप एक प्रतिकृति समस्या का सामना कर रहे हैं तो आपको इस एप को जानना होगा क्योंकि उच्च उपलब्धता वातावरण सुनिश्चित करने के लिए आपको इसे ठीक करने की आवश्यकता होगी।
SLAVE STATUS और निम्नलिखित मापदंडों की जाँच करके प्रतिकृति की सबसे अच्छी निगरानी की जाती है:
- SLAVE_RUNNING
- SLAVE_IO_Running
- SLAVE_SQL_RUNNING
- LAST_SQL_ERRNO
- SECONDS_BEHIND_MASTER
बैकअप
दुर्भाग्य से, वैनिला समुदाय संस्करण बैकअप प्रबंधक के साथ नहीं आता है। आपको पता होना चाहिए कि क्या बैकअप पूरा हो गया था, और यदि यह प्रयोग करने योग्य है। आमतौर पर, इस अंतिम बिंदु पर ध्यान नहीं दिया जाता है, लेकिन बैकअप प्रक्रिया में शायद यह सबसे महत्वपूर्ण जांच है। यहां हमें परकोना-एक्सट्राबैकअप या क्लस्टरकंट्रोल जैसे बाहरी उपकरणों का उपयोग करना होगा।
डेटाबेस लॉग
आपको FATAL या गतिरोध जैसी त्रुटियों के लिए या यहां तक कि प्रमाणीकरण समस्याओं या लंबे समय तक चलने वाली क्वेरी जैसी सामान्य त्रुटियों के लिए भी अपने डेटाबेस लॉग की निगरानी करनी चाहिए। अधिकांश त्रुटियों को लॉग फ़ाइल में ठीक करने के लिए विस्तृत उपयोगी जानकारी के साथ लिखा गया है। सामान्य विफलता बिंदु जिन पर आपको नज़र रखने की आवश्यकता है वे हैं त्रुटियां, लॉग फ़ाइल आकार। त्रुटि लॉग का स्थान log_error चर के अंतर्गत पाया जा सकता है।
बाहरी उपकरण
अंतिम लेकिन कम से कम आप अपने डेटाबेस गतिविधि की निगरानी के लिए उपयोगी उपकरणों की एक सूची पा सकते हैं।
Percona Toolkit - MySQL और OS गतिविधियों का विश्लेषण करने के लिए Percona के Linux टूल का सेट है। आप इसे यहां देख सकते हैं। यह डेबियन, उबंटू और रेडहैट जैसे सबसे लोकप्रिय 64 बिट लिनक्स वितरण का समर्थन करता है।
mysqladmin - mysqladmin MySQL डेमॉन के लिए एक प्रशासन कार्यक्रम है। इसका उपयोग सर्वर स्वास्थ्य (पिंग) की जांच करने, प्रक्रियाओं को सूचीबद्ध करने, चर के मूल्यों को देखने के लिए किया जा सकता है, लेकिन कुछ प्रशासनिक कार्य भी कर सकते हैं जैसे डेटाबेस बनाना/छोड़ना, फ्लश (रीसेट) लॉग, आंकड़े और टेबल, चल रहे प्रश्नों को मारना, सर्वर को रोकें और प्रतिकृति को नियंत्रित करें।
innotop - SHOW स्टेटमेंट का विस्तृत दृश्य प्रस्तुत करता है। यह बहुत शक्तिशाली है और जांच के समय को काफी कम कर सकता है। वेनिला MySQL समर्थन के बीच, आप गैलेरा दृश्य और मास्टर-दास प्रतिकृति विवरण देख सकते हैं।
mtop - एक MySQL सर्वर की निगरानी करता है जो उन प्रश्नों को दिखाता है जिन्हें पूरा करने में सबसे अधिक समय लग रहा है। सुविधाओं में पूरी क्वेरी दिखाने के लिए एक प्रक्रिया पर 'ज़ूम करना', किसी क्वेरी के लिए क्वेरी ऑप्टिमाइज़र जानकारी को 'समझाना' और क्वेरीज़ को 'मारना' शामिल है। इसके अलावा, सर्वर प्रदर्शन आँकड़े, कॉन्फ़िगरेशन जानकारी और ट्यूनिंग युक्तियाँ प्रदान की जाती हैं।
Mytop - एक टर्मिनल में चलता है और थ्रेड्स, क्वेरीज़, स्लो क्वेरीज़, अपटाइम, लोड इत्यादि के बारे में आंकड़े टेबल प्रारूप में प्रदर्शित करता है, जो कि Linux के समान है
निष्कर्ष
इस ब्लॉग का उद्देश्य डेटाबेस निगरानी को बढ़ाने के लिए एक विस्तृत मार्गदर्शिका नहीं है, लेकिन उम्मीद है कि यह एक स्पष्ट तस्वीर देता है कि कौन सी चीजें आवश्यक हो सकती हैं और कुछ बुनियादी पैरामीटर जिन्हें देखा जा सकता है। हमें यह बताने में संकोच न करें कि क्या हमने नीचे टिप्पणी में कोई महत्वपूर्ण याद किया है।