Με μία μόνο βιβλιοθήκη, μπορείτε να παρακολουθείτε μια σειρά από μετρήσεις συστήματος και να διασφαλίζετε ότι όλα λειτουργούν ομαλά.
Οι περισσότεροι οργανισμοί βασίζονται σε μεγάλο βαθμό στην υποδομή πληροφορικής τους για την εκτέλεση των εργασιών τους. Οι απρογραμμάτιστες βλάβες του συστήματος ή η υποβάθμιση της απόδοσης μπορεί να οδηγήσουν σε διακοπές, οικονομικές απώλειες και ζημιά στη φήμη.
Οι αυτοματοποιημένοι έλεγχοι υγείας του συστήματος είναι ζωτικής σημασίας για να διασφαλιστεί ότι η υποδομή πληροφορικής παραμένει σταθερή και αξιόπιστη. Παρακολουθώντας κρίσιμες μετρήσεις και εντοπίζοντας έγκαιρα ανωμαλίες, μπορείτε να ελαχιστοποιήσετε το χρόνο διακοπής λειτουργίας.
Καθορισμός υγειονομικών ελέγχων
Είναι σημαντικό να ορίσετε ποιοι έλεγχοι υγείας θέλετε να πραγματοποιήσετε στο σύστημά σας. Θα πρέπει να ορίσετε σαφή κριτήρια για το τι θα παρακολουθείτε και γιατί. Ξεκινήστε προσδιορίζοντας τους πρωταρχικούς στόχους του συστήματός σας. Ποιες λειτουργίες ή υπηρεσίες παρέχει;
Στη συνέχεια, ορίστε σημεία αναφοράς απόδοσης με βάση ιστορικά δεδομένα και βεβαιωθείτε ότι οι έλεγχοι υγείας σας αξιολογούν την αποτελεσματική χρήση των πόρων του συστήματος. Τέλος, ορίστε τα όρια που υποδεικνύουν ένα πρόβλημα. Ποιο ποσοστό χρήσης πόρων θεωρείτε υψηλό ή χαμηλό; Σε ποιο σημείο πρέπει το σύστημα να ενεργοποιήσει μια ειδοποίηση;
Επιλογή βιβλιοθηκών και ρύθμιση του περιβάλλοντος σας
Για να αυτοματοποιήσετε τη διαδικασία παρακολούθησης συστήματος στην Python, θα χρειαστείτε τις ακόλουθες βιβλιοθήκες για να σας βοηθήσουν να συγκεντρώσετε μετρήσεις συστήματος και στη συνέχεια να προγραμματίσετε τους ελέγχους.
- ψουτίλ: Αυτή είναι μια βιβλιοθήκη πολλαπλών πλατφορμών που παρέχει μια διεπαφή για την ανάκτηση πληροφοριών σχετικά με τη χρήση του συστήματος (CPU, μνήμη, δίσκοι, δίκτυο, αισθητήρες).
- πρόγραμμα: Αυτή η βιβλιοθήκη παρέχει έναν απλό τρόπο προγραμματισμού εργασιών για εκτέλεση σε συγκεκριμένα χρονικά διαστήματα.
- χρόνος: Μια ενσωματωμένη βιβλιοθήκη Python που θα χρησιμοποιήσετε για λειτουργίες που σχετίζονται με το χρόνο.
- ξύλευση: Μια άλλη ενσωματωμένη βιβλιοθήκη που θα χρησιμοποιήσετε για τη δημιουργία αρχείων καταγραφής των ελέγχων υγείας του συστήματος.
Ξεκινήστε να ρυθμίζετε τα πράγματα μέχρι δημιουργώντας ένα νέο εικονικό περιβάλλον Python. Αυτό θα αποτρέψει πιθανές διενέξεις της βιβλιοθήκης εκδόσεων. Στη συνέχεια, εκτελέστε την ακόλουθη εντολή τερματικού στο εγκαταστήστε τις απαιτούμενες βιβλιοθήκες με το Pip:
pip install psutil schedule
Μόλις εγκατασταθούν οι βιβλιοθήκες στο σύστημά σας, το περιβάλλον σας είναι έτοιμο.
Ο πλήρης πηγαίος κώδικας είναι διαθέσιμος σε α Αποθετήριο GitHub.
Εισαγωγή των Απαιτούμενων Βιβλιοθηκών
Δημιουργήστε ένα νέο σενάριο, παρακολούθηση.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}")
Οι λειτουργίες ελέγχου υγείας θα χρησιμοποιήσουν αυτές τις λειτουργίες για να καταγράψουν και να αναφέρουν τα σχετικά ευρήματά τους.
Δημιουργία λειτουργιών ελέγχου υγείας
Για κάθε έλεγχο υγείας, ορίστε μια συνάρτηση που θα ενσωματώνει ένα συγκεκριμένο τεστ που αξιολογεί μια κρίσιμη πτυχή της υποδομής σας.
Παρακολούθηση χρήσης CPU
Ξεκινήστε ορίζοντας μια λειτουργία που θα παρακολουθεί τη χρήση της CPU. Αυτό θα χρησιμεύσει ως κρίσιμος δείκτης της συνολικής απόδοσης ενός συστήματος και της χρήσης πόρων. Η υπερβολική χρήση της CPU οδηγεί σε επιβράδυνση του συστήματος, μη απόκριση, ακόμη και σφάλματα, διαταραχές σοβαρών βασικών υπηρεσιών.
Ελέγχοντας τακτικά τη χρήση της CPU και ορίζοντας τα κατάλληλα όρια, οι διαχειριστές συστήματος μπορούν να εντοπίσουν σημεία συμφόρησης απόδοσης, διαδικασίες έντασης πόρων ή πιθανά προβλήματα υλικού.
# 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 του συστήματος. Εάν η χρήση της CPU υπερβαίνει το όριο σε ποσοστό, καταγράφει ένα μήνυμα που υποδεικνύει υψηλή χρήση της 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)
Παρόμοια με τον έλεγχο χρήσης της CPU, ορίζετε ένα όριο για υψηλή χρήση μνήμης. Εάν η χρήση μνήμης ξεπεράσει το όριο, καταγράφει και εκτυπώνει μια ειδοποίηση.
Παρακολούθηση χώρου στο δίσκο
Καθορίστε μια λειτουργία που θα παρακολουθεί το χώρο στο δίσκο. Παρακολουθώντας συνεχώς τη διαθεσιμότητα του χώρου στο δίσκο, μπορείτε να αντιμετωπίσετε πιθανά ζητήματα που προκύπτουν από την εξάντληση των πόρων. Η εξάντληση του χώρου στο δίσκο μπορεί να οδηγήσει σε σφάλματα συστήματος, καταστροφή δεδομένων και διακοπές της υπηρεσίας. Οι έλεγχοι χώρου στο δίσκο βοηθούν να διασφαλιστεί ότι υπάρχει επαρκής χωρητικότητα αποθήκευσης.
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)
Η λειτουργία παρακολουθεί την κυκλοφορία του δικτύου αθροίζοντας τα byte που αποστέλλονται και λαμβάνονται. Το όριο είναι σε byte. Εάν η κίνηση δικτύου υπερβαίνει το όριο, καταγράφει και εκτυπώνει μια ειδοποίηση.
Εφαρμογή Λογικής Παρακολούθησης
Τώρα που έχετε τις λειτουργίες ελέγχου υγείας, απλώς καλέστε κάθε μία με τη σειρά από μια λειτουργία ελεγκτή. Μπορείτε να εκτυπώσετε έξοδο και να καταγράψετε ένα μήνυμα κάθε φορά που εκτελείται αυτός ο συνολικός έλεγχος:
# 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. Μπορείτε να προσθέσετε περισσότερες λειτουργίες παρακολούθησης, χρησιμοποιώντας παρόμοια προσέγγιση, για να ταιριάζουν στις απαιτήσεις σας.
Μπορείτε επίσης να βελτιώσετε τη λειτουργία αναφοράς για τη χρήση email αντί για την έξοδο ενός απλού μηνύματος στην κονσόλα.