एक ही लाइब्रेरी से, आप कई सिस्टम मेट्रिक्स की निगरानी कर सकते हैं और सुनिश्चित कर सकते हैं कि सब कुछ सुचारू रूप से चल रहा है।
अधिकांश संगठन अपने परिचालन को चलाने के लिए अपने आईटी बुनियादी ढांचे पर बहुत अधिक निर्भर करते हैं। अनियोजित सिस्टम विफलताओं या प्रदर्शन में गिरावट से व्यवधान, वित्तीय नुकसान और प्रतिष्ठा को नुकसान हो सकता है।
यह सुनिश्चित करने के लिए कि आईटी बुनियादी ढांचा स्थिर और विश्वसनीय बना रहे, स्वचालित सिस्टम स्वास्थ्य जांच महत्वपूर्ण है। महत्वपूर्ण मेट्रिक्स की निगरानी करके और विसंगतियों का तुरंत पता लगाकर, आप डाउनटाइम को कम कर सकते हैं।
स्वास्थ्य जांच को परिभाषित करना
यह परिभाषित करना आवश्यक है कि आप अपने सिस्टम पर कौन सी स्वास्थ्य जांच करना चाहते हैं। आप किसकी निगरानी करेंगे और क्यों, इसके लिए आपको स्पष्ट मानदंड स्थापित करने चाहिए। अपने सिस्टम के प्राथमिक लक्ष्यों की पहचान करके शुरुआत करें। यह कौन से कार्य या सेवाएँ प्रदान करता है?
फिर, ऐतिहासिक डेटा के आधार पर प्रदर्शन मानक निर्धारित करें और सुनिश्चित करें कि आपकी स्वास्थ्य जांच सिस्टम संसाधनों के कुशल उपयोग का आकलन करती है। अंत में, उन सीमाओं को परिभाषित करें जो किसी समस्या का संकेत देती हैं। आप संसाधन उपयोग के कितने प्रतिशत को उच्च या निम्न मानते हैं? सिस्टम को किस बिंदु पर अलर्ट ट्रिगर करना चाहिए?
पुस्तकालयों का चयन करना और अपना वातावरण स्थापित करना
पायथन में सिस्टम मॉनिटरिंग प्रक्रिया को स्वचालित करने के लिए, आपको सिस्टम मेट्रिक्स इकट्ठा करने और फिर चेक शेड्यूल करने में मदद के लिए निम्नलिखित लाइब्रेरी की आवश्यकता होगी।
- psutil: यह एक क्रॉस-प्लेटफ़ॉर्म लाइब्रेरी है जो सिस्टम उपयोग (सीपीयू, मेमोरी, डिस्क, नेटवर्क, सेंसर) पर जानकारी प्राप्त करने के लिए एक इंटरफ़ेस प्रदान करती है।
- अनुसूची: यह लाइब्रेरी विशिष्ट अंतरालों पर चलने वाले कार्यों को शेड्यूल करने का एक सरल तरीका प्रदान करती है।
- समय: एक पायथन अंतर्निर्मित लाइब्रेरी जिसका उपयोग आप समय-संबंधी कार्यों के लिए करेंगे।
- काटना: एक अन्य अंतर्निर्मित लाइब्रेरी जिसका उपयोग आप सिस्टम स्वास्थ्य जांच के लॉग बनाने के लिए करेंगे।
चीज़ों को सेट करना प्रारंभ करें एक नया पायथन वर्चुअल वातावरण बनाना. यह किसी भी संभावित संस्करण लाइब्रेरी टकराव को रोकेगा। फिर निम्न टर्मिनल कमांड चलाएँ पिप के साथ आवश्यक लाइब्रेरी स्थापित करें:
pip install psutil schedule
एक बार जब आपके सिस्टम पर लाइब्रेरी स्थापित हो जाती है, तो आपका वातावरण तैयार हो जाता है।
पूर्ण स्रोत कोड a में उपलब्ध है गिटहब रिपॉजिटरी.
आवश्यक पुस्तकालय आयात करना
एक नई स्क्रिप्ट बनाएं, मॉनिटरिंग.py, और आवश्यक पुस्तकालयों को आयात करके इसे शुरू करें:
import psutil
import schedule
import time
import logging
पुस्तकालयों को आयात करने से आप अपने कोड में उनके द्वारा प्रदान की जाने वाली कार्यक्षमता का उपयोग कर सकेंगे।
लॉगिंग और रिपोर्टिंग
आपको अपने स्वास्थ्य जांच के परिणामों को लॉग करने का एक तरीका चाहिए। लॉगिंग घटनाओं के ऐतिहासिक रिकॉर्ड को कैप्चर करने और संरक्षित करने के लिए एक महत्वपूर्ण उपकरण के रूप में कार्य करता है आपके कोड में डिबगिंग समस्याएँ. यह प्रदर्शन विश्लेषण में भी महत्वपूर्ण भूमिका निभाता है।
इस प्रोजेक्ट के लिए अपने लॉग बनाने के लिए अंतर्निहित लॉगिंग लाइब्रेरी का उपयोग करें। आप लॉग संदेशों को नाम वाली फ़ाइल में सहेज सकते हैं system_monitor.log.
# Function to log messages
deflog_message(message):
# Configure logging
logging.basicConfig(filename='system_monitor.log', level=logging.INFO,
format='%(asctime)s - %(message)s')
logging.info(message)
रिपोर्टिंग के लिए, ध्यान देने की आवश्यकता वाले किसी भी मुद्दे के बारे में तत्काल अधिसूचना के रूप में काम करने के लिए कंसोल पर एक अलर्ट संदेश प्रिंट करें।
# Function to print alerts to the console
defprint_alert(message):
print(f"ALERT: {message}")
स्वास्थ्य जांच फ़ंक्शंस इन फ़ंक्शंस का उपयोग लॉग इन करने और उनके प्रासंगिक निष्कर्षों की रिपोर्ट करने के लिए करेंगे।
स्वास्थ्य जांच कार्य बनाना
प्रत्येक स्वास्थ्य जांच के लिए, एक फ़ंक्शन परिभाषित करें जो एक विशिष्ट परीक्षण को समाहित करेगा जो आपके बुनियादी ढांचे के महत्वपूर्ण पहलू का मूल्यांकन करता है।
सीपीयू उपयोग की निगरानी
एक फ़ंक्शन को परिभाषित करके प्रारंभ करें जो सीपीयू उपयोग की निगरानी करेगा। यह सिस्टम के समग्र प्रदर्शन और संसाधन उपयोग के एक महत्वपूर्ण संकेतक के रूप में काम करेगा। अत्यधिक सीपीयू उपयोग से सिस्टम धीमा हो जाता है, अनुत्तरदायी हो जाता है और यहां तक कि क्रैश भी हो जाता है, जिससे आवश्यक सेवाएं गंभीर रूप से बाधित हो जाती हैं।
सीपीयू उपयोग की नियमित जांच करके और उचित सीमा निर्धारित करके, सिस्टम प्रशासक प्रदर्शन बाधाओं, संसाधन-गहन प्रक्रियाओं या संभावित हार्डवेयर समस्याओं की पहचान कर सकते हैं।
# Health check functions
defcheck_cpu_usage(threshold=50):
cpu_usage = psutil.cpu_percent(interval=1)
if cpu_usage > threshold:
message = f"High CPU usage detected: {cpu_usage}%"
log_message(message)
print_alert(message)
फ़ंक्शन सिस्टम के वर्तमान CPU उपयोग की जाँच करता है। यदि सीपीयू उपयोग प्रतिशत में सीमा से अधिक है, तो यह उच्च सीपीयू उपयोग का संकेत देने वाला एक संदेश लॉग करता है और एक चेतावनी संदेश प्रिंट करता है।
मेमोरी उपयोग की निगरानी
एक अन्य फ़ंक्शन को परिभाषित करें जो मेमोरी उपयोग की निगरानी करेगा। मेमोरी उपयोग को नियमित रूप से ट्रैक करके, आप ऐसा कर सकते हैं मेमोरी लीक का पता लगाएं, संसाधन-भूख प्रक्रियाएं, और संभावित बाधाएं। यह विधि सिस्टम की मंदी, क्रैश और आउटेज को रोकती है।
defcheck_memory_usage(threshold=80):
memory_usage = psutil.virtual_memory().percent
if memory_usage > threshold:
message = f"High memory usage detected: {memory_usage}%"
log_message(message)
print_alert(message)
सीपीयू उपयोग जांच के समान, आप उच्च मेमोरी उपयोग के लिए एक सीमा निर्धारित करते हैं। यदि मेमोरी उपयोग सीमा से अधिक हो जाता है, तो यह लॉग करता है और एक अलर्ट प्रिंट करता है।
डिस्क स्थान की निगरानी
एक फ़ंक्शन परिभाषित करें जो डिस्क स्थान की निगरानी करेगा। डिस्क स्थान की उपलब्धता की लगातार निगरानी करके, आप संसाधन की कमी से उत्पन्न होने वाली संभावित समस्याओं का समाधान कर सकते हैं। डिस्क स्थान ख़त्म होने से सिस्टम क्रैश, डेटा भ्रष्टाचार और सेवा में रुकावट हो सकती है। डिस्क स्थान की जांच यह सुनिश्चित करने में मदद करती है कि पर्याप्त भंडारण क्षमता है।
defcheck_disk_space(path='/', threshold=75):
disk_usage = psutil.disk_usage(path).percent
if disk_usage > threshold:
message = f"Low disk space detected: {disk_usage}%"
log_message(message)
print_alert(message)
यह फ़ंक्शन निर्दिष्ट पथ के डिस्क स्थान उपयोग की जांच करता है। डिफ़ॉल्ट पथ रूट निर्देशिका है /. यदि डिस्क स्थान सीमा से नीचे आता है, तो यह लॉग करता है और एक अलर्ट प्रिंट करता है।
नेटवर्क यातायात निगरानी
एक अंतिम फ़ंक्शन परिभाषित करें जो आपके सिस्टम के डेटा प्रवाह की निगरानी करेगा। यह नेटवर्क ट्रैफ़िक में अप्रत्याशित उछाल का शीघ्र पता लगाने में मदद करेगा, जो सुरक्षा उल्लंघनों या बुनियादी ढांचे के मुद्दों का संकेत हो सकता है।
defcheck_network_traffic(threshold=100 * 1024 * 1024):
network_traffic = psutil.net_io_counters().bytes_recv +\
psutil.net_io_counters().bytes_sent
if network_traffic > threshold:
message = f"High network traffic detected: {network_traffic:.2f} MB"
log_message(message)
print_alert(message)
फ़ंक्शन भेजे गए और प्राप्त बाइट्स को जोड़कर नेटवर्क ट्रैफ़िक की निगरानी करता है। दहलीज बाइट्स में है. यदि नेटवर्क ट्रैफ़िक सीमा से अधिक हो जाता है, तो यह लॉग करता है और एक अलर्ट प्रिंट करता है।
निगरानी तर्क लागू करना
अब जब आपके पास स्वास्थ्य जांच फ़ंक्शन हैं, तो बस नियंत्रक फ़ंक्शन से प्रत्येक को बारी-बारी से कॉल करें। जब भी यह समग्र जांच चलती है तो आप आउटपुट प्रिंट कर सकते हैं और एक संदेश लॉग कर सकते हैं:
# Function to run health checks
defrun_health_checks():
print("Monitoring the system...")
log_message("Running system health checks...")check_cpu_usage()
check_memory_usage()
check_disk_space()
check_network_traffic()
log_message("Health checks completed.")
यह फ़ंक्शन सभी स्वास्थ्य जांच चलाता है, जो आपके सिस्टम की स्वास्थ्य स्थिति का एकीकृत दृश्य प्रदान करता है।
स्वचालित जाँच शेड्यूल करना और प्रोग्राम चलाना
विशिष्ट अंतरालों पर निगरानी को स्वचालित करने के लिए, आप शेड्यूल लाइब्रेरी का उपयोग करेंगे। आप आवश्यकतानुसार अंतराल को समायोजित कर सकते हैं।
# Schedule health checks to run every minute
schedule.every(1).minutes.do(run_health_checks)
अब सिस्टम मॉनिटरिंग प्रक्रिया को निरंतर लूप में चलाएँ।
# Main loop to run scheduled tasks
whileTrue:
schedule.run_pending()
time.sleep(1)
यह लूप निर्धारित कार्यों की लगातार जाँच करता है और समय आने पर उन्हें निष्पादित करता है। जब आप प्रोग्राम चलाते हैं तो आउटपुट इस प्रकार होता है:
प्रोग्राम मॉनिटरिंग लॉग को रिकॉर्ड करता है system_monitor.log फ़ाइल और टर्मिनल पर एक अलर्ट प्रदर्शित करता है।
सिस्टम मॉनिटरिंग प्रोग्राम को आगे बढ़ाना
ये निगरानी जाँचें एकमात्र नहीं हैं जिनका psutil समर्थन करता है। आप अपनी आवश्यकताओं के अनुरूप समान दृष्टिकोण का उपयोग करके अधिक निगरानी फ़ंक्शन जोड़ सकते हैं।
आप कंसोल पर एक साधारण संदेश आउटपुट करने के बजाय ईमेल का उपयोग करने के लिए रिपोर्टिंग फ़ंक्शन को भी बेहतर बना सकते हैं।