Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

स्केलग्रिड पर प्रोमेथियस और ग्राफाना के साथ MySQL परिनियोजन की निगरानी कैसे करें

वास्तविक समय में अपने MySQL डेटाबेस के प्रदर्शन की निगरानी करने से आपको समस्याओं और अन्य कारकों की तुरंत पहचान करने में मदद मिलती है जो अभी या भविष्य में समस्याएं पैदा कर सकते हैं। यह निर्धारित करने का भी एक अच्छा तरीका है कि आपकी दक्षता और प्रदर्शन को बढ़ाने के लिए डेटाबेस के किन घटकों को बढ़ाया या अनुकूलित किया जा सकता है। यह आमतौर पर मॉनिटरिंग सॉफ़्टवेयर और टूल के माध्यम से किया जाता है जो या तो डेटाबेस प्रबंधन सॉफ़्टवेयर में अंतर्निहित होता है या तृतीय-पक्ष प्रदाताओं से स्थापित होता है।

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

अपनी MySQL मॉनिटरिंग कैसे सेट करें

आइए मेट्रिक्स को संग्रहीत करने और प्रदर्शित करने के लिए प्रोमेथियस सर्वर को स्थापित करने और कॉन्फ़िगर करने में शामिल चरणों के माध्यम से चलते हैं, एक निर्यातक (इस मामले में MySQL निर्यातक) मेट्रिक्स एकत्र करने और उन्हें रिले करने के लिए प्रोमेथियस सर्वर, और ग्राफाना डैशबोर्ड बनाने के लिए। MySQL एक्सपोर्टर टूल को स्थानीय रूप से MySQL सर्वर पर या केंद्र में प्रोमेथियस सर्वर पर स्थापित किया जा सकता है। नीचे दिए गए उपयोग के मामले में, हम बताएंगे कि कैसे कई MySQL सर्वरों की निगरानी के लिए उबंटू पर चल रहे एक केंद्रीय होस्ट से प्रोमेथियस, माईएसक्यूएल एक्सपोर्टर और ग्राफाना का उपयोग करना और शुरू करना है। आप हमारे Prometheus and Grafana for MySQL सहायता दस्तावेज़ में चरण-दर-चरण निर्देशों की समीक्षा भी कर सकते हैं।

नीचे दिया गया ब्लॉक आरेख एक मास्टर-स्लेव-कोरम MySQL परिनियोजन का सेटअप दिखाता है जिसमें दो डेटा-असर नोड्स (मास्टर और स्लेव) और एक वोटिंग सदस्य (कोरम) शामिल हैं। MySQL एक्सपोर्टर, प्रोमेथियस होस्ट और ग्राफाना:

प्रोमेथियस सर्वर को इंस्टाल करना और कॉन्फ़िगर करना

Prometheus वह टूल है जिसका उपयोग हम आपके MySQL मेट्रिक को केंद्रीकृत और संग्रहीत करने के लिए करेंगे। यह नियमित अंतराल पर एक या कई निर्यातकों से मेट्रिक्स को स्क्रैप करता है और इसे अपने UI पर प्रदर्शित करता है। केंद्रीय उबंटू होस्ट पर प्रोमेथियस को स्थापित और कॉन्फ़िगर करने के चरण नीचे दिए गए हैं। अधिक विवरण के लिए, आप इस लेख को देख सकते हैं।

1. प्रोमेथियस सिस्टम समूह और उपयोगकर्ता बनाएं

$sudo groupadd --system prometheus$sudo useradd -s /sbin/nologin --system -g prometheus prometheus

2. प्रोमेथियस के लिए डेटा निर्देशिका बनाएं

$sudo mkdir /var/lib/prometheus

3. प्रोमेथियस के लिए कॉन्फ़िगरेशन निर्देशिकाएँ बनाएँ

$for i इन रूल्स रूल्स.d files_sd; sudo mkdir -p /etc/prometheus/${i}; हो गया

4. प्रोमेथियस आर्काइव डाउनलोड करें और फाइल को एक्सट्रेक्ट करें

प्रोमेथियस के लिए नवीनतम बाइनरी संग्रह डाउनलोड करने के लिए:

$mkdir -p /tmp/prometheus &&cd /tmp/prometheus$curl -s https://api.github.com/repos/prometheus/prometheus/releases/latest \| grep browser_download_url \| grep linux-amd64 \| कट-डी '"' -f 4 \| wget -qi -

फ़ाइल निकालने के लिए:

$tar xvf prometheus*.tar.gz$cd prometheus*/

5. प्रोमेथियस फाइलों को मानक स्थानों पर ले जाएं

प्रोमेथियस बाइनरी फाइलों को /usr/लोकल/बिन में ले जाएं:

$sudo mv prometheus promtool /usr/local/bin/

प्रोमेथियस कॉन्फ़िगरेशन टेम्प्लेट को /etc निर्देशिका में ले जाएं:

$sudo mv prometheus.yml  /etc/prometheus/prometheus.yml

कंसोल और कंसोल_लाइब्रेरी को /etc/prometheus निर्देशिका में भी ले जाएं:

$sudo mv कंसोल/ कंसोल_लाइब्रेरीज़/ /etc/prometheus/

6. प्रोमेथियस कॉन्फ़िगरेशन फ़ाइल बनाएं/संपादित करें

टेम्प्लेट कॉन्फ़िगरेशन नीचे जैसा दिखना चाहिए:

$cat /etc/prometheus/prometheus.yml #my Global config Global:scrape_interval:15s # हर 15 सेकंड में स्क्रेप इंटरवल सेट करें। डिफ़ॉल्ट हर 1 मिनट है। मूल्यांकन_अंतराल:15s # हर 15 सेकंड में नियमों का मूल्यांकन करें। डिफ़ॉल्ट हर 1 मिनट है। #scrape_timeout वैश्विक डिफ़ॉल्ट (10s) पर सेट है। #Alertmanager कॉन्फ़िगरेशन अलर्टिंग:अलर्टमैनेजर:- static_configs:- लक्ष्य:#- अलर्टमैनेजर:9093 # एक बार नियम लोड करें और समय-समय पर वैश्विक 'evaluation_interval' के अनुसार उनका मूल्यांकन करें। नियम_फाइल्स:#- "first_rules.yml" #- "second_rules.yml" #एक स्क्रैप कॉन्फ़िगरेशन जिसमें स्क्रैप करने के लिए बिल्कुल एक एंडपॉइंट होता है:#यहां यह प्रोमेथियस ही है। स्क्रैप_कॉन्फिग:# जॉब का नाम इस कॉन्फिगरेशन से स्क्रैप की गई किसी भी टाइमरीज में `job=` लेबल के रूप में जोड़ा जाता है। - job_name:'prometheus' #metrics_path डिफॉल्ट से '/metrics' #scheme डिफॉल्ट्स से 'http'। static_configs:- लक्ष्य:['लोकलहोस्ट:9090']

7. प्रोमेथियस सिस्टमड सर्विस यूनिट फ़ाइल बनाएँ

$sudo vim /etc/systemd/system/prometheus.service

निम्न सामग्री जोड़ें:

 [इकाई] विवरण=प्रोमेथियस दस्तावेज़ीकरण=https://prometheus.io/docs/introduction/overview/ चाहता है=network-online.target After=network-online.target [सेवा] प्रकार=सरल पर्यावरण="GOMAXPROCS=1" उपयोगकर्ता =प्रोमेथियस समूह =प्रोमेथियस एक्ज़ेक रीलोड =/बिन/किल -एचयूपी $MAINPID ExecStart=/usr/local/bin/prometheus \ --config.file=/etc/prometheus/prometheus.yml \ --storage.tsdb. पथ=/var/lib/prometheus \ --web.console.templates=/etc/prometheus/consoles \ --web.console.libraries=/etc/prometheus/console_libraries \ --web.listen-address=0.0.0.0 :9090 \ --web.external-url=SyslogIdentifier=prometheus Restart=always [इंस्टॉल करें] वांटेडबाय=मल्टी-यूजर.टारगेट

पंक्ति संपादित करना याद रखें:पर्यावरण=”GOMAXPROCS=1 1 को अपने सर्वर पर vcpus की संख्या से बदलकर।

8. निर्देशिका अनुमतियां बदलें

इन निर्देशिकाओं के स्वामित्व को प्रोमेथियस उपयोगकर्ता और समूह में बदलें:

$for i इन रूल्स रूल्स.d files_sd; सुडो चाउन -आर प्रोमेथियस:प्रोमेथियस / आदि / प्रोमेथियस / $ {i}; किया $ के लिए मैं नियमों में नियम.d files_sd; sudo chmod -R 775 /etc/prometheus/${i}; किया हुआ$सुडो चाउन -आर प्रोमेथियस:प्रोमेथियस /var/lib/prometheus/

9. सिस्टम को पुनः लोड करें डेमॉन और सेवा शुरू करें

$sudo systemctl daemon-reload$sudo systemctl start prometheus$sudo systemctl इनेबल प्रोमेथियस

systemctl status prometheus का उपयोग करके स्थिति जांचें आदेश:

10. पोर्ट 9090 खोलने के लिए फ़ायरवॉल कॉन्फ़िगर करें

$sudo फ़ायरवॉल-cmd --add-port=9090/tcp --permanent$sudo फ़ायरवॉल-cmd --reload

एक बार सेटअप पूरा हो जाने पर, आप http://:9090

में लॉग इन करके Prometheus UI तक पहुंच सकते हैं।

स्केलग्रिड पर प्रोमेथियस और ग्राफाना के साथ #MySQL परिनियोजन की निगरानी कैसे करें ट्वीट करने के लिए क्लिक करें

MySQL Prometheus Exporter को स्थापित और कॉन्फ़िगर करना

प्रोमेथियस को MySQL सर्वर मेट्रिक्स एकत्र करने के लिए एक निर्यातक की आवश्यकता होती है। यह निर्यातक प्रोमेथियस सर्वर पर या डेटाबेस सर्वर पर केंद्रीय रूप से चलाया जा सकता है। आगे पढ़ने के लिए, प्रोमेथियस दस्तावेज़ देखें।

सेंट्रल प्रोमेथियस होस्ट पर MySQL Prometheus Exporter को स्थापित और स्थापित करने के लिए नीचे दिए गए चरणों का पालन करें। अधिक विवरण के लिए, इस लेख को देखें।

1. प्रोमेथियस मायएसक्यूएल एक्सपोर्टर को डाउनलोड और इंस्टॉल करें

$curl -s https://api.github.com/repos/prometheus/mysqld_exporter/releases/latest   | grep browser_download_url   | grep linux-amd64 | कट-डी '"' -f 4   | wget -qi -$tar xvf mysqld_exporter*.tar.gz$sudo mv  mysqld_exporter-*.linux-amd64/mysqld_exporter /usr/local/bin/$sudo chmod +x /usr/ लोकल/बिन/mysqld_exporter

2. डेटाबेस तक पहुँचने के लिए प्रोमेथियस एक्सपोर्टर डेटाबेस उपयोगकर्ता बनाएँ, मेट्रिक्स स्क्रैप करें और अनुदान प्रदान करें

उपयोगकर्ता 'mysqld_exporter'@'' MAX_USER_CONNECTIONS 2 के साथ 'मजबूत पासवर्ड' द्वारा पहचाना गया; अनुदान प्रक्रिया, प्रतिकृति ग्राहक, * चुनें *। /पूर्व> 

MAX_USER_CONNECTIONS 2 के साथ भारी लोड के तहत निगरानी स्क्रैप के साथ सर्वर को ओवरलोड करने से बचने के लिए उपयोगकर्ता के लिए अधिकतम कनेक्शन सीमा निर्धारित करने के लिए उपयोग किया जाता है।

3. डेटाबेस क्रेडेंशियल कॉन्फ़िगर करें

केंद्रीय होस्ट पर निर्यातक की कॉन्फ़िगरेशन फ़ाइल संपादित करें:

$sudo vim /etc/.mysqld_exporter.cnf

बनाए गए उपयोगकर्ता का उपयोगकर्ता नाम और पासवर्ड और उस स्केलग्रिड MySQL सर्वर को जोड़ें जिसे आप मॉनिटर करना चाहते हैं:

$sudo vim /etc/.mysqld_exporter.cnf[client]user=mysqld_exporterpassword=StrongPasswordhost=SG-mysqltestcluster-123456.servers.mongodirector.com

स्वामित्व अनुमतियां सेट करें:

$sudo chown root:prometheus /etc/.mysqld_exporter.cnf

4. सिस्टमड यूनिट फ़ाइल बनाएं

केंद्रीय होस्ट पर एक नई सेवा फ़ाइल बनाएं:

$sudo vim /etc/systemd/system/mysql_exporter.service

निम्न सामग्री जोड़ें:

 [इकाई] विवरण =प्रोमेथियस MySQL निर्यातक के बाद =नेटवर्क। लक्ष्य उपयोगकर्ता =प्रोमेथियस समूह =प्रोमेथियस [सेवा] प्रकार =सरल पुनरारंभ =हमेशा ExecStart =/usr/स्थानीय/बिन/mysqld_exporter \ --config.my-cnf / etc/.mysqld_exporter.cnf \ --collect.global_status \ --collect.info_schema.innodb_metrics \ --collect.auto_increment.columns \ --collect.info_schema.processlist \ --collect.binlog_size \ --collect.info_schema.tablestats \ --collect.global_variables \ --collect.info_schema.query_response_time \ --collect.info_schema.userstats \ --collect.info_schema.tables \ --collect.perf_schema.tablelocks \ --collect.perf_schema.file_events \ --collect .perf_schema.eventswaits \ --collect.perf_schema.indexiowaits \ --collect.perf_schema.tableiowaits \ --collect.slave_status \ --web.listen-address=0.0.0.0:9104 [इंस्टॉल करें] वांटेडबाय=मल्टी-यूजर.टारगेट 

web.listen-address=0.0.0.0:9104 निर्दिष्ट करता है कि सर्वर पोर्ट 9104 पर सुन रहा है। यदि आपके सर्वर में एक सार्वजनिक और निजी नेटवर्क है, तो आपको 0.0.0.0:9104 को निजी आईपी से बदलने की आवश्यकता हो सकती है, उदाहरण के लिए - 192.168.4.5:9104।

हो जाने पर, systemd को पुनः लोड करें और mysql_exporter सेवा प्रारंभ करें:

$sudo systemctl daemon-reload$sudo systemctl mysql_exporter$sudo systemctl start mysql_exporter को सक्षम करें

5. प्रोमेथियस द्वारा स्क्रैप किए जाने के लिए MySQL एंडपॉइंट को कॉन्फ़िगर करें

prometheus.yml फ़ाइल में नीचे की तरह बदलाव करें:

scrape_configs:- job_name:mysql_server1static_configs:- लक्ष्य:['लोकलहोस्ट:9104']लेबल:उपनाम:db1
<ब्लॉकक्वॉट>

नोट:यदि निर्यातक प्रोमेथियस के समान होस्ट पर नहीं चल रहा है, तो लोकलहोस्ट के बजाय सर्वर का आईपी पता प्रदान करें। 9104 उस पोर्ट को संदर्भित करता है जिसे प्रोमेथियस सुनता है, जैसा कि पिछले चरण में निर्दिष्ट किया गया है।

एक सेंट्रल प्रोमेथियस होस्ट से कई MySQL होस्ट्स की निगरानी करना

एक केंद्रीय सर्वर से कई MySQL सर्वरों की निगरानी की जा सकती है। यह प्रत्येक सर्वर के लिए एक अलग निर्यातक सेवा के द्वारा प्राप्त किया जा सकता है। जैसा कि ऊपर चरण 3 और 4 में बताया गया है, प्रत्येक सेवा के लिए .mysqld_exporter.cnf और mysql_exporter.service (-web.listen-address ध्वज को निर्दिष्ट विशिष्ट पोर्ट नंबर के साथ) फ़ाइलें बनाना सुनिश्चित करें। जैसा कि ऊपर चरण 5 में बताया गया है, prometheus.yml फ़ाइल में लक्ष्य जोड़ें। नौकरी के नाम अद्वितीय . होने चाहिए प्रत्येक लक्ष्य के लिए। उदाहरण के लिए:

scrape_configs:- job_name:mysql_server1static_configs:- लक्ष्य:['लोकलहोस्ट:9104']लेबल:उपनाम:db1-job_name:mysql_server2static_configs:- लक्ष्य:['लोकलहोस्ट:9105']लेबल:उपनाम:db2-job_name:mysql_server3static_configs:- लक्ष्य:['लोकलहोस्ट:9106']लेबल:उपनाम:डीबी3

ध्यान दें:Prometheus Server नेटवर्क पर लक्ष्य तक पहुंचने में सक्षम होना चाहिए। सुनिश्चित करें कि आपके नेटवर्क/फ़ायरवॉल कॉन्फ़िगरेशन को तदनुसार संशोधित किया गया है।

ग्राफाना इंस्टाल करना और डैशबोर्ड बनाना

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

ग्राफाना को अपने केंद्रीय प्रोमेथियस होस्ट पर स्थापित करने के लिए नीचे दिए गए चरणों का पालन करें।

1. नवीनतम ग्राफाना संस्करण डाउनलोड करें

नवीनतम संस्करण डाउनलोड करने के लिए डाउनलोड ग्राफाना पृष्ठ पर जाएं।

$wget $sudo apt-get install -y adduser libfontconfig1$sudo dpkg -i grafana__amd64.deb

2. एपीटी रिपोजिटरी डाउनलोड करें और ग्राफाना इंस्टॉल करें

आदेश add-apt-repository डेबियन 9 पर एक डिफ़ॉल्ट ऐप नहीं है और इसकी आवश्यकता है:

$apt-get install -y software-properties-common

स्थिर रिलीज के लिए रिपॉजिटरी स्थापित करें:

$sudo add-apt-repository "deb https://packages.grafana.com/oss/deb स्टेबल मेन"

यदि आप बीटा रिलीज़ चाहते हैं तो एक अलग रिपॉजिटरी है:

$sudo add-apt-repository "deb https://packages.grafana.com/oss/deb beta main"

उपरोक्त पंक्ति का उपयोग करें, भले ही आप उबंटू या किसी अन्य डेबियन संस्करण पर हों। फिर हमारी gpg कुंजी जोड़ें। यह आपको हस्ताक्षरित पैकेज स्थापित करने की अनुमति देता है:

$wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key ऐड -

अपना उपयुक्त रिपॉजिटरी अपडेट करें और ग्राफाना इंस्टॉल करें:

$sudo apt-get update$sudo apt-get install grafana

3. सेवा शुरू करें

$systemctl daemon-reload$systemctl start grafana-server$systemctl स्थिति ग्राफाना-सर्वर

systemd सेवा सक्षम करें ताकि Grafana बूट पर प्रारंभ हो:

$sudo systemctl grafana-server.service सक्षम करें

ग्राफाना चलाने के लिए, अपना ब्राउज़र खोलें और http://:3000/ पर जाएं। . 3000 http पोर्ट है जिसे ग्राफाना डिफ़ॉल्ट रूप से सुनता है।

4. डेटा स्रोत जोड़ना

इंस्टॉल होने पर, व्यवस्थापक डैशबोर्ड में लॉगिन करें और कॉन्फ़िगरेशन> डेटा स्रोत पर नेविगेट करें। डेटा स्रोत जोड़ें पर क्लिक करें, टाइम सीरीज़ डेटाबेस के तहत प्रोमेथियस का चयन करें और नाम और URL फ़ील्ड भरें।

नाम:प्रोमेथियस-1 यूआरएल:http://localhost:9090

<ब्लॉकक्वॉट>

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

अब आप अपने MySQL मॉनिटरिंग के लिए डैशबोर्ड बनाने और कस्टमाइज़ करने के लिए पूरी तरह तैयार हैं। आप डैशबोर्ड पिकर के दाईं ओर लिंक पर क्लिक करके एक नया डैशबोर्ड बना सकते हैं। एक बार डैशबोर्ड बन जाने के बाद, आप प्रदर्शित किए जाने वाले मैट्रिक्स को चुनकर पैनल जोड़ सकते हैं, डैशबोर्ड को तारांकित कर सकते हैं, सहेज सकते हैं और साझा कर सकते हैं। विस्तृत निर्देशों के लिए, आप ग्रैफ़ाना के आरंभ करना दस्तावेज़ देख सकते हैं।

स्केलग्रिड पर MySQL परिनियोजन के लिए बनाए गए Grafana डैशबोर्ड का एक उदाहरण यहां दिया गया है:

उपरोक्त ग्राफाना डैशबोर्ड MySQL चयन प्रकार, MySQL क्लाइंट थ्रेड गतिविधि, MySQL नेटवर्क उपयोग प्रति घंटा, और MySQL टेबल लॉक मैट्रिक्स को चार्ट में प्रदर्शित करता है, और नीचे ग्राफाना डैशबोर्ड MySQL शीर्ष प्रदर्शित करता है कमांड काउंटर और MySQL टॉप कमांड काउंटर प्रति घंटा।

हम हमेशा अपने उपयोगकर्ताओं के जीवन को आसान बनाना चाहते हैं, इसलिए हमें अपने स्केलग्रिड परिनियोजन से कनेक्ट करने के लिए किसी भी अन्य टूल के बारे में बताएं। टिप्पणी या ट्विटर के माध्यम से @scalegridio पर।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. गणना द्वारा SQL आदेश

  2. MySQL में डिलीट के बाद ऑटो इंक्रीमेंट

  3. MySQL में टाइम ज़ोन कैसे बदलें

  4. MySQL में MyISAM के साथ कार्य करना

  5. MySQL क्वेरी में टेक्स्ट को नंबर में बदलें