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

स्वचालित डेटाबेस स्वास्थ्य जांच

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

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

डेटाबेस स्वास्थ्य जांच क्या है

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

हम स्वास्थ्य जांच को कुछ श्रेणियों में विभाजित कर सकते हैं:

  • सुरक्षा जांच, डेटाबेस तक पहुंच को बंद करने के लिए और यह सुनिश्चित करने के लिए कि ट्रैफ़िक एक विश्वसनीय नेटवर्क से आता है विशेषाधिकार

  • कॉन्फ़िगरेशन जांच, यह सुनिश्चित करने के लिए कि कॉन्फ़िगरेशन संगठन द्वारा परिभाषित मानक मानदंडों को पूरा करता है।

  • प्रदर्शन जांच, यह सुनिश्चित करने के लिए कि डेटाबेस हार्डवेयर संसाधनों का उपयोग कर रहा है और अनुप्रयोगों के लिए उत्तरदायी है।

  • बैकअप और पुनर्स्थापना प्रक्रियाएं, यह सुनिश्चित करने के लिए कि डेटाबेस से हमने जो बैकअप लिया है उसे पुनर्स्थापित किया जा सकता है।

उन श्रेणियों से, हम डेटाबेस में जांच करने के लिए आवश्यक चीज़ों का विश्लेषण कर सकते हैं। यह बहुत महत्वपूर्ण है, इसलिए हम हर पहलू पर विस्तृत जांच कर सकते हैं। उदाहरण के लिए:

  • डेटाबेस सुरक्षा

  • डेटाबेस पर उपयोगकर्ता और विशेषाधिकारों की तुलना हमारे पास मौजूद उपयोगकर्ता मैट्रिक्स एक्सेस के साथ करें

  • डेटाबेस पर श्वेतसूची का IP पता जांचें,  कि ट्रैफ़िक किसी विश्वसनीय नेटवर्क से आ रहा है या नहीं

  • सुनिश्चित करें कि डेटाबेस का ऑडिट लॉगिंग सक्षम है

  • कॉन्फ़िगरेशन जांच

  • पहले से मौजूद SSL की जांच करें

  • सुनिश्चित करें कि डेटाबेस कॉन्फ़िगरेशन सही है (अनुमति और स्वामित्व दोनों)

  • प्रदर्शन जांच

  • डेटाबेस का कैश हिट अनुपात जांचें

  • सुनिश्चित करें कि डेटाबेस कनेक्शन अभी भी ट्रैफ़िक को संभालने के लिए पर्याप्त है

  • बैकअप और पुनर्स्थापना प्रक्रिया

  • उचित बैकअप शेड्यूल, जो सहमत RPO देता है

  • सुनिश्चित करें कि हम बैकअप का परीक्षण करते हैं ताकि हम जान सकें कि डेटा बहाल करने योग्य है

उपरोक्त सूची के आधार पर, हम प्रत्येक प्रकार के डेटाबेस (जैसे MySQL, PostgreSQL, MongoDB) पर उन वस्तुओं की जांच करने के लिए एक स्क्रिप्ट बना सकते हैं। प्रत्येक डेटाबेस प्रकार में स्पष्ट रूप से अलग-अलग कमांड होंगे।

डेटाबेस स्वास्थ्य जांच को स्वचालित करना

हम साप्ताहिक या मासिक आधार पर दोहराए जाने वाले कार्य को नहीं चलाना चाहते हैं, डेटाबेस स्वास्थ्य जांच एक समय लेने वाला कार्य है। हम प्रत्येक डेटाबेस नोड पर स्क्रिप्ट चलाते हैं, इसलिए स्वास्थ्य जांच के स्वचालन से हमारा काफी समय बचता है।

स्वास्थ्य जांच स्क्रिप्ट की सूची के आधार पर, हम कार्यों को चलाने के लिए बैश स्क्रिप्ट बना सकते हैं और इसे क्रॉन के साथ शेड्यूल कर सकते हैं। नीचे एक साधारण डेटाबेस स्वास्थ्य जांच रिपोर्ट का नमूना है:

#!/bin/sh
# Simple database check report
username = "audit_user"
password = "pwd001"
hostname = "db01-payment"
mycnf = "/etc/mysql/my.cnf"
dt=$(date '+%d/%m/%Y %H:%M:%S');
audit_name = "MySQL_Healthcheck_audit_report_"$dt

# check the queries
/bin/mysql -h $hostname -u $username  -p $password --skip-column-names -B -e "SHOW STATUS LIKE 'Queries'" > $audit_name

# check open table cache hit ratio
/bin/mysql -h $hostname -u $username  -p $password --skip-column-names -B -e "SHOW STATUS LIKE 'Table_open_cache_hits'" >> $audit_name

# check the ssl session mode
/bin/mysql -h $hostname -u $username  -p $password --skip-column-names -B -e "SHOW STATUS LIKE 'Ssl_session_cache_mode'" >> $audit_name

# check the buffer pool size
cat $mycnf | grep "innodb_buffer_pool_size" >> $audit_name

#check ssl key in my.cnf
cat $mycnf | grep "ssl_key" >> $audit_name

# check permission of my.conf
ls -ltr $mycnf >> $audit_name

स्वास्थ्य जांच को कॉन्फ़िगरेशन प्रबंधन टूल जैसे कि Ansible, Salt, Chef, या Puppet द्वारा भी स्वचालित किया जा सकता है।

ClusterControl के साथ डेटाबेस स्वास्थ्य जांच को स्वचालित करना

ClusterControl डेटाबेस के लिए एक ऑप्स प्लेटफॉर्म है, यह सर्वर स्वास्थ्य, प्रदर्शन, या उनके डेटाबेस वातावरण में उपलब्धता की समस्याओं को दिखाता है, सभी एक केंद्रीय कंसोल से। यह ऑपरेशनल रिपोर्ट के माध्यम से स्वचालित डेटाबेस स्वास्थ्य जांच का समर्थन करता है। आप परिचालन रिपोर्ट, साथ ही घटना रिपोर्ट तैयार या शेड्यूल कर सकते हैं। रिपोर्ट के कुछ प्रकार हैं जैसा कि नीचे दिखाया गया है:

दैनिक सिस्टम रिपोर्ट आपको अपने वर्तमान डेटाबेस क्लस्टर के बारे में जानकारी देती है जिसमें निम्न शामिल हैं विभिन्न जानकारी जैसे नोड सेवा की स्थिति, बैकअप स्थिति, नोड्स का अपटाइम, शीर्ष क्वेरी सारांश।

पैकेज अपग्रेड रिपोर्ट आपको अपग्रेड के लिए उपलब्ध पैकेजों का सारांश प्रदान करती है। भंडार प्रबंधक।

स्कीमा परिवर्तन रिपोर्ट तालिका संरचना में डेटाबेस परिवर्तनों की तुलना करती है जो दो अलग-अलग जेनरेट की गई रिपोर्ट के बीच हुआ था।

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

परिचालन रिपोर्ट के अलावा, सलाहकार भी हैं जो आपको सीपीयू, डिस्क, डेटाबेस कनेक्शन आदि के बारे में जानकारी देते हैं, जैसा कि नीचे दिया गया है:

ईमेल के माध्यम से सूचनाएं और कॉन्फ़िगर किए गए तृतीय-पक्ष चैनलों के माध्यम से अलर्ट उन चीजों के बारे में जानकारी देते हैं जो गलत हो जाती हैं (जैसे विफल बैकअप, अस्थिर बैकअप, नोड विफलता)।

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:गिनना कि प्रत्येक विशिष्ट मान कितने हैं?

  2. हरोकू ऐप को एटलस मोंगोडीबी क्लाउड सेवा से जोड़ना

  3. MongoDB और समग्र प्राथमिक कुंजी

  4. आप MongoDB शेल से रेप्लिकासेट से कैसे जुड़ते हैं?

  5. ImportError:ऑब्जेक्टिड नाम का कोई मॉड्यूल नहीं