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

प्रोएक्टिव मोंगोडीबी मॉनिटरिंग (डेवलपर स्टूडियो/सलाहकार कोण)

ClusterControl में डेटाबेस, प्रतिकृति और ऑपरेटिंग सिस्टम से संबंधित कई मेट्रिक्स हैं। आप अवलोकन में opscounter के माध्यम से डेटाबेस के अंदर चलने वाली प्रक्रिया की निगरानी भी कर सकते हैं।

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

ClusterControl में एक Ops Monitor भी है जिसका उपयोग डेटाबेस के अंदर सत्रों की निगरानी के लिए किया जा सकता है।

उपरोक्त के अलावा, ClusterControl में डेवलपर स्टूडियो के माध्यम से कस्टम सलाहकार बनाने की क्षमता है। इस ब्लॉग में, हम MongoDB से संबंधित डेवलपर स्टूडियो और सलाहकारों की समीक्षा करेंगे।

डेवलपर स्टूडियो का उपयोग करें

ClusterControl डेवलपर स्टूडियो प्रदान करता है, ताकि आप MongoDB में विषय से संबंधित कस्टम सलाहकार बना सकें, जिसे आप डेटाबेस प्रदर्शन की सर्वोत्तम प्रथाओं के आधार पर सलाह देना चाहते हैं। MongoDB में कस्टम सलाहकारों के लिए एक स्क्रिप्ट बनाने के लिए आपको जावास्क्रिप्ट प्रोग्रामिंग भाषा में ज्ञान होना आवश्यक है, क्योंकि सभी सलाहकार जावास्क्रिप्ट में लिखे गए हैं। आप डेवलपर स्टूडियो को मैनेज -> डेवलपर स्टूडियो के माध्यम से एक्सेस कर सकते हैं, और आप पेज देख पाएंगे जैसा कि नीचे दिखाया गया है:

हम उसके बाद नए बटन पर क्लिक करके नई सलाहकार स्क्रिप्ट बना सकते हैं। यह नीचे दिखाए गए अनुसार फ़ाइल नाम भरने के लिए एक संवाद प्रदर्शित करेगा:

हम एक साधारण lock.js स्क्रिप्ट तैयार करेंगे जिसे इसमें संग्रहीत किया जाएगा पथ s9s/mongodb/connections. स्क्रिप्ट MongoDB में वैश्विक लॉक से संबंधित जानकारी एकत्र करती है। मोंगोडीबी में उच्च वैश्विक तालों की संख्या एक समस्या होगी, क्योंकि ताला अभी भी होल्ड पर है/अभी तक जारी नहीं किया गया है। जावास्क्रिप्ट में ग्लोबल लॉक का नमूना नीचे दिया गया है:

#include "common/helpers.js"
#include "cmon/io.h"
#include "cmon/alarms.h"

var DESCRIPTION="This advisor collects the number of global locks every minute and"
                " notifies you if the number of locks exceeds 90%."
                " This number can indicate a possible concurrency issue if it’s consistently high."
                " This can happen if a lot of requests are waiting for a lock to be released..";
var WARNING_THRESHOLD=10;
var TITLE="Global lock used";
var ADVICE_WARNINGS="In the past 5 minutes more than 90% of "
    " there could be concurrently issue in the database.";
var ADVICE_OK="The percentage of global lock is satisfactory." ;

function main(hostAndPort) {
    if (hostAndPort == #N/A)
        hostAndPort = "*";
    var hosts   = cluster::mongoNodes();
    var advisorMap = {};
    var result= [];
    var msg = "";
    var endTime   = CmonDateTime::currentDateTime();
    var startTime = endTime - 10 * 60;

    for (i = 0; i < hosts.size(); i++)
    {
        host        = hosts[i];
        if(hostAndPort != "*" && !hostMatchesFilter(host,hostAndPort))
            continue;
        if(host.hostStatus() != "CmonHostOnline")
            continue;
        var advice = new CmonAdvice();
        stats = host.mongoStats(startTime, endTime);
        total_global_lock = stats.toArray("globalLock.currentQueue.total");
       

        if (total_global_lock * 100 < WARNING_THRESHOLD)
        {
            advice.setSeverity(Warning);
            msg = ADVICE_WARNING;
        }
        if (advice.severity() <= 0) {
            advice.setSeverity(Ok);
        }
        advice.setHost(host);
        advice.setTitle(TITLE);
        advice.setAdvice(msg);
        advisorMap[i]= advice;
    }
    return advisorMap;
}

आप स्क्रिप्ट को सहेज सकते हैं, संकलित कर सकते हैं और चला सकते हैं। आप स्क्रिप्ट चलने के हर मिनट, घंटे के आधार पर डेवलपर स्टूडियो में स्क्रिप्ट शेड्यूल कर सकते हैं।

सलाहकार

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

निष्कर्ष

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

आज के लिए बस इतना ही!


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongoDB जावा ड्राइवर लॉगिंग को अक्षम कैसे करें?

  2. MongoDB के लिए परिनियोजन पैटर्न की तुलना करना

  3. MongoDB GPG - अमान्य हस्ताक्षर

  4. स्प्रिंग डेटा MongoDB का परिचय

  5. ClusterControl सलाहकारों के साथ MongoDB की निगरानी और सुरक्षा