यह विस्तृत गाइड आपको अपने लिनक्स (या यूनिक्स) सर्वर की निगरानी के लिए dstat का उपयोग करने की प्रक्रिया के बारे में चरण-दर-चरण बताएगी।
यदि आपके कार्यालय या डेटा सेंटर में एक लिनक्स सर्वर चल रहा है जिसके लिए आप जिम्मेदार हैं, तो आप यथासंभव सौ प्रतिशत के करीब अपटाइम बनाए रखना चाहते हैं। ऐसे मामले में आप यह सुनिश्चित करना चाहते हैं कि सिस्टम कैसे चल रहा है, इस पर नज़र रखें। सटीक होने के लिए, आप उन सभी सिस्टम संसाधनों की निगरानी करना चाहते हैं जो सिस्टम को ठीक से चलाने में योगदान करते हैं जिसके परिणामस्वरूप उच्च अपटाइम होता है। मेमोरी, CPU, डिस्क उपयोग... कुछ ऐसी चीजें हैं जिन्हें आप देखना चाहते हैं। हम आमतौर पर लिनक्स या यूनिक्स इंस्टॉलेशन के साथ आने वाले टूल्स के संयोजन का उपयोग करेंगे, जैसे "free", "top", "vmstat"... मैं आपको एक ऐसे टूल से परिचित कराऊँगा जो आपको अन्य सभी टूल्स के संयुक्त रूप से मिलने वाली लगभग सभी जानकारी एक ही छत के नीचे देता है - Dstat। इस कमांड लाइन टूल के डेवलपर, डैग वीअर्स (Dag Wieers), इसे "vmstat, iostat, netstat और ifstat के लिए एक बहुमुखी प्रतिस्थापन" कहते हैं। वे जोड़ते हैं कि "Dstat उनकी कुछ सीमाओं को दूर करता है और कुछ अतिरिक्त सुविधाएँ जोड़ता है..." मेरे लिए Dstat सभी कमांड लाइन सिस्टम निगरानी टूल्स की जननी है। यह इंस्टॉल करना सरल है, उपयोग करना आसान है, आसानी से अनुकूलित किया जा सकता है, और यह रिपोर्ट उत्पन्न करता है जिन्हें आप अपने बॉस को प्रभावित करने के लिए ग्राफ के रूप में प्लॉट कर सकते हैं।
Dstat इंस्टॉल करना
Dstat इंस्टॉलर डाउनलोड करके शुरू करें। अपने वेब ब्राउज़र को Dstat प्रोजेक्ट के होमपेज - https://dag.wieers.com/home-made/dstat/ पर इंगित करें। उस पेज के उस सेक्शन तक स्क्रॉल करें जहाँ डाउनलोड सूचीबद्ध हैं। जिस लिनक्स फ्लेवर पर आप एप्लिकेशन इंस्टॉल करना चाहते हैं उसे चुनें और डाउनलोड लिंक पर क्लिक करें। अब उस लिनक्स वितरण के संस्करण के लिए Dstat का नवीनतम संस्करण डाउनलोड करें जिसे आप चला रहे हैं। मैं आपको दिखाऊँगा कि रेड हैट एंटरप्राइज लिनक्स वर्जन 4 मशीन के लिए यह कैसे करना है:
# wget https://dag.wieers.com/rpm/packages/dstat/dstat-0.6.6-1.el4.rf.noarch.rpm
अब Dstat इंस्टॉल करें:
# rpm -Uvh dstat-0.6.6-1.el4.rf.noarch.rpm
यदि इंस्टॉलेशन बिना त्रुटियों के पूरा हो गया, तो बस, आपने Dstat इंस्टॉल कर लिया है और यह उपयोग के लिए तैयार है। यदि इंस्टॉलेशन के दौरान कुछ डिपेंडेंसी सामने आईं तो बस आवश्यक पैकेज इंस्टॉल करें और फिर से प्रयास करें। मुझे नहीं लगता कि Dstat की बहुत अधिक डिपेंडेंसी हैं, इसलिए आपको किसी समस्या का सामना नहीं करना चाहिए।
Dstat का उपयोग करना
आपके सिस्टम पर Dstat इंस्टॉल होने के साथ आप जाने के लिए तैयार हैं। टर्मिनल से कमांड लॉन्च करके शुरू करें:
# dstat
आउटपुट निम्न जैसा होगा। बाहर निकलने के लिए ctrl+c की संयोजन दबाएँ।
# dstat
---total-cpu-usage--- -disk/total -net/total- --paging- --system-
usr sys idl wai hiq siq|_read write|_recv _send|__in_ _out_|_int_ _csw_
7 1 91 1 0 0| 0 0 | 0 0 | 0 0 | 0 0
1 0 99 0 0 0| 0 0 | 0 0 | 0 0 |1051 1945
0 0 100 0 0 0| 0 12k|2269B 11.2k| 0 0 |1031 1923
1 0 99 0 0 0| 0 40k| 0 0 | 0 0 |1078 2235
0 0 100 0 0 0| 0 16k|6027B 21.5k| 0 0 |1008 2219
Dstat के लिए कई विकल्प उपलब्ध हैं। जैसा कि मैंने पहले उल्लेख किया है, Dstat को अनुकूलित करना काफी आसान है। इसलिए यदि आप डेटा रीडिंग को CPU, डिस्क, और नेटवर्क तक सीमित करना चाहते हैं, तो निम्न कमांड चलाएँ:
# dstat -CDN
-disk/total -net/total- --paging- --system-
_read write|_recv _send|__in_ _out_|_int_ _csw_
0 0 | 0 0 | 0 0 | 0 0
0 12k|2295B 9603B| 0 0 |1053 1957
0 0 | 594B 0 | 0 0 |1002 1893
0 960k| 292B 3346B| 0 0 |1072 2012
0 4096B| 64B 0 | 0 0 |1031 1939
आप एप्लिकेशन के हेल्प डॉक्यूमेंट में अधिक विकल्प पा सकते हैं जिसे निम्न दर्ज करके एक्सेस किया जा सकता है:
# dstat -h
विकल्पों के साथ थोड़ा खेलें ताकि आप उनके साथ सहज हो जाएँ। डेटा रीड के बीच डिफ़ॉल्ट अंतराल दो सेकंड है। यदि आपको आवश्यकता हो तो आप उस अंतराल को बदल सकते हैं। अंतराल को दस सेकंड तक बढ़ाने के लिए निम्न दर्ज करें:
# dstat 10
एक और उपयोगी सुविधा प्रत्येक एंट्री के लिए एग्रीगेटेड अपडेट प्राप्त करना है। तो आप Dstat को हर दस सेकंड में एक नई लाइन में अपडेट दे सकते हैं, लेकिन जैसे-जैसे डेटा बदलता है आपकी लाइन स्वयं हर सेकंड अपडेट होती रहती है।
आप वैकल्पिक रूप से Dstat से तीन सेकंड की आवृत्ति के साथ पाँच अपडेट प्राप्त करना चाह सकते हैं। यहाँ बताया गया है कि आप ऐसा कैसे करेंगे:
# dstat 3 5
---total-cpu-usage--- -disk/total -net/total- --paging- --system-
usr sys idl wai hiq siq|_read write|_recv _send|__in_ _out_|_int_ _csw_
3 1 95 2 0 0| 0 0 | 0 0 | 0 0 | 0 0
2 11 87 1 0 0| 0 180k|2581B 3239B| 0 0 |1136 697
7 8 85 0 0 0| 0 0 | 115k 106k| 0 0 |1603 3985
2 1 98 0 0 0| 0 0 |77.5k 170k| 0 0 |1744 3856
1 0 100 0 0 0| 0 0 |3451B 9993B| 0 0 |1045 149
2 1 94 4 0 0| 0 276k|20.4k 31.1k| 0 0 |1219 804
जो सुविधा मुझे सबसे उपयोगी लगती है वह है आउटपुट। Dstat आपको एक सत्र के आउटपुट को कॉमा-सेपरेटेड फाइल में लिखने की अनुमति देता है जिसे बाद में माइक्रोसॉफ्ट एक्सेल जैसे स्प्रेडशीट एप्लिकेशन में इम्पोर्ट किया जा सकता है और डेटा को ग्राफ में प्लॉट किया जा सकता है। यहाँ बताया गया है कि इसका उपयोग कैसे किया जा सकता है।
# dstat --output /tmp/dstat_data.csv -CDN
उपरोक्त कमांड को चलने दें जब आप इस मशीन पर अपने एप्लिकेशन चलाते हैं या अपना टेस्ट करते हैं। जब आपका काम हो जाए तो ctrl+c की संयोजन दबाएँ। dstat_data.csv फाइल को माइक्रोसॉफ्ट एक्सेल या ओपन ऑफिस जैसे स्प्रेडशीट एप्लिकेशन से खोलें। फिर आप उन कॉलम को चुन सकते हैं जिन्हें आप ग्राफ में प्लॉट करना चाहते हैं और अपने स्प्रेडशीट एप्लिकेशन को जादू करने दें।
मेल द्वारा रिपोर्ट प्राप्त करें
ऐसे मामले हो सकते हैं जहाँ आप देखना चाहते हैं कि आपका सर्वर एक अवधि में कैसा प्रदर्शन कर रहा है। आप लिनक्स में एक बैकग्राउंड प्रोसेस सेटअप कर सकते हैं जो एक निश्चित अंतराल पर रीडिंग देगा, एक रिपोर्ट उत्पन्न करेगा, और फाइल को आपको मेल करेगा। यह स्ट्रेस-टेस्ट के दौरान विशेष रूप से उपयोगी हो सकता है। यहाँ बताया गया है कि आप ऐसा कैसे कर सकते हैं। निम्न स्क्रिप्ट तीन घंटे के लिए Dstat चलाएगी, हर 30 सेकंड में डेटा पढ़ेगी, और रिपोर्ट को me@myemailid.com पर मेल करेगी।
#!/bin/bash dstat --output /tmp/dstat_data_mail.csv -CDN 30 360 mutt -a /tmp/dstat_data_mail.csv -s "Dstat Report for 3 hour run" me@myemailid.com < /dev/null
उपरोक्त स्क्रिप्ट को अपने सर्वर पर dstat_script.sh नामक फ़ाइल में सेव करें, इसे एक्जीक्यूटेबल परमिशन दें और फिर इसे बैकग्राउंड प्रोसेस के रूप में चलाएँ:
# chmod +x dstat_script.sh
# nohup ./dstat_script.sh &
हो गया। हाँ, यह इतना सरल है। अब आपको यह रिपोर्ट इसके चलने के पूरा होने के बाद मेल की जाएगी। आप वैकल्पिक रूप से इस स्क्रिप्ट को दैनिक क्रॉन जॉब के रूप में शेड्यूल कर सकते हैं ताकि आप हर दिन यह डेटा प्राप्त कर सकें।
जैसा कि आप पहले ही महसूस कर चुके होंगे, Dstat प्रदर्शन निगरानी और डीबगिंग पर लागू होने पर एक अद्भुत टूल है। एकत्र किए गए डेटा की ग्रैन्युलैरिटी, आवृत्ति, और प्रकृति पूरी तरह से आप पर निर्भर करती है। Dstat आपको यह जानने की शक्ति देता है कि आपके सर्वर पर क्या चल रहा है। बुद्धिमानी से उपयोग की जाने पर यह शक्ति आपके लिए बहुत कम नींद न आने वाली रातों का परिणाम दे सकती है।
नोट: Dstat अब डिप्रिकेटेड है
Dstat अब सक्रिय रूप से मेंटेन नहीं किया जाता है और इसे डिप्रिकेटेड माना जाता है। आधुनिक विकल्पों में शामिल हैं:
- glances - पायथन-आधारित, वेब UI के साथ क्रॉस-प्लेटफॉर्म मॉनिटरिंग टूल।
- netdata - रियल-टाइम, हाई-रिज़ॉल्यूशन मॉनिटरिंग एजेंट वेब डैशबोर्ड के साथ।
- prometheus + node_exporter + grafana - उद्योग-मानक मेट्रिक्स संग्रह और विज़ुअलाइज़ेशन स्टैक।
- btop / htop - इंटरैक्टिव प्रोसेस/सिस्टम मॉनिटर।