Ühe teegi abil saate jälgida paljusid süsteemimõõdikuid ja tagada, et kõik toimiks tõrgeteta.

Enamik organisatsioone toetub oma tegevuse juhtimiseks suuresti oma IT-infrastruktuurile. Planeerimata süsteemirikked või jõudluse halvenemine võivad põhjustada häireid, rahalisi kaotusi ja kahjustada mainet.

Süsteemi automatiseeritud tervisekontrollid on IT-infrastruktuuri stabiilse ja usaldusväärse püsimise tagamiseks üliolulised. Kriitiliste mõõdikute jälgimise ja anomaaliate viivitamatu tuvastamise abil saate seisakuid minimeerida.

Tervisekontrolli määratlemine

Oluline on määratleda, milliseid tervisekontrolle soovite oma süsteemis läbi viia. Peaksite kehtestama selged kriteeriumid selle kohta, mida ja miks jälgite. Alustuseks määrake kindlaks oma süsteemi peamised eesmärgid. Milliseid funktsioone või teenuseid see pakub?

Seejärel määrake ajalooliste andmete põhjal jõudluse etalonid ja veenduge, et teie tervisekontrollid hindavad süsteemiressursside tõhusat kasutamist. Lõpuks määrake probleemile viitavad künnised. Mitu protsenti ressursikasutusest peate suureks või madalaks? Millisel hetkel peaks süsteem hoiatuse käivitama?

instagram viewer

Raamatukogude valimine ja keskkonna seadistamine

Süsteemi jälgimise protsessi automatiseerimiseks Pythonis vajate järgmisi teeke, mis aitavad teil süsteemimõõdikuid koguda ja seejärel kontrolle ajastada.

  • psutil: see on platvormideülene teek, mis pakub liidest süsteemi kasutamise teabe hankimiseks (CPU, mälu, kettad, võrk, andurid).
  • ajakava: see teek pakub lihtsat viisi kindlate ajavahemike järel töötavate ülesannete ajastamiseks.
  • aega: Pythoni sisseehitatud teek, mida kasutate ajaga seotud toimingute jaoks.
  • metsaraie: veel üks sisseehitatud teek, mida kasutate süsteemi tervisekontrolli logide loomiseks.

Alustage asjade seadistamist luua uus Pythoni virtuaalne keskkond. See hoiab ära võimalikud versiooniteegi konfliktid. Seejärel käivitage järgmine terminali käsk installige Pipiga vajalikud teegid:

pip install psutil schedule

Kui teegid on teie süsteemi installitud, on teie keskkond valmis.

Täielik lähtekood on saadaval a GitHubi hoidla.

Nõutavate teekide importimine

Looge uus skript, monitooring.pyja alustage vajalike teekide importimisega:

import psutil
import schedule
import time
import logging

Teekide importimine võimaldab teil kasutada nende koodis pakutavaid funktsioone.

Logimine ja aruandlus

Teil on vaja võimalust oma tervisekontrolli tulemuste logimiseks. Logimine on oluline tööriist ajalooliste sündmuste ja sündmuste jäädvustamiseks ja säilitamiseks silumisprobleemid teie koodis. Samuti mängib see olulist rolli tulemuslikkuse analüüsis.

Kasutage selle projekti jaoks logide loomiseks sisseehitatud logimise teeki. Saate salvestada logiteated faili nimega 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)

Aruandluseks printige konsoolile hoiatusteade, mis on kohese teavitusena kõigist tähelepanu vajavatest probleemidest.

# Function to print alerts to the console
defprint_alert(message):
print(f"ALERT: {message}")

Tervisekontrolli funktsioonid kasutavad neid funktsioone asjakohaste leidude logimiseks ja aruandmiseks.

Tervisekontrolli funktsioonide loomine

Määrake iga tervisekontrolli jaoks funktsioon, mis kapseldab konkreetse testi, mis hindab teie infrastruktuuri kriitilist aspekti.

Protsessori kasutamise jälgimine

Alustuseks määrake funktsioon, mis jälgib protsessori kasutamist. See on süsteemi üldise jõudluse ja ressursside kasutamise kriitilise näitaja. Liigne protsessori kasutamine põhjustab süsteemi aeglustumist, reageerimatust ja isegi kokkujooksmisi, mis häirib tõsiselt olulisi teenuseid.

Regulaarselt protsessori kasutust kontrollides ja sobivaid lävesid määrates saavad süsteemiadministraatorid tuvastada jõudluse kitsaskohad, ressursimahukad protsessid või võimalikud riistvaraprobleemid.

# 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)

Funktsioon kontrollib süsteemi praegust protsessori kasutust. Kui protsessori kasutusprotsent ületab läve, logib see suure protsessori kasutuse kohta teate ja prindib hoiatusteate.

Mälu kasutamise jälgimine

Määrake teine ​​funktsioon, mis jälgib mälukasutust. Mälukasutust regulaarselt jälgides saate tuvastada mälulekkeid, ressursinäljased protsessid ja võimalikud kitsaskohad. See meetod hoiab ära süsteemi aeglustumise, kokkujooksmised ja katkestused.

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)

Sarnaselt protsessori kasutamise kontrolliga määrate suure mälukasutuse künnise. Kui mälukasutus ületab künnise, logib see ja prindib hoiatuse.

Kettaruumi jälgimine

Määrake funktsioon, mis jälgib kettaruumi. Pidevalt kettaruumi saadavust jälgides saate lahendada ressursside ammendumisest tulenevaid võimalikke probleeme. Kettaruumi lõppemine võib põhjustada süsteemi krahhi, andmete riknemist ja teenuse katkestusi. Kettaruumi kontrollimine aitab tagada piisava salvestusmahu olemasolu.

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)

See funktsioon uurib määratud tee kettaruumi kasutamist. Vaikimisi tee on juurkataloog /. Kui kettaruum langeb alla läve, logib see ja prindib hoiatuse.

Võrguliikluse jälgimine

Määrake lõplik funktsioon, mis jälgib teie süsteemi andmevoogu. See aitab varakult avastada võrguliikluse ootamatuid hüppeid, mis võivad viidata turvarikkumistele või infrastruktuuri probleemidele.

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)

Funktsioon jälgib võrguliiklust, liites saadetud ja vastuvõetud baidid. Lävi on baitides. Kui võrguliiklus ületab läve, logib see ja prindib hoiatuse.

Järelevalveloogika rakendamine

Nüüd, kui teil on tervisekontrolli funktsioonid, helistage lihtsalt igale neist kordamööda kontrolleri funktsioonist. Saate printida väljundi ja logida sõnumi iga kord, kui see üldine kontroll käib:

# 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.")

See funktsioon käivitab kõik tervisekontrollid, pakkudes ühtset ülevaadet teie süsteemi tervislikust seisundist.

Automatiseeritud kontrollide ajastamine ja programmi käitamine

Järelevalve automatiseerimiseks kindlate ajavahemike järel kasutate ajakavateeki. Intervalli saate vastavalt vajadusele reguleerida.

# Schedule health checks to run every minute 
schedule.every(1).minutes.do(run_health_checks)

Nüüd käivitage süsteemi jälgimise protsess pidevas tsüklis.

# Main loop to run scheduled tasks
whileTrue:
schedule.run_pending()
time.sleep(1)

See silmus kontrollib pidevalt ajastatud ülesandeid ja täidab need siis, kui nende aeg kätte jõuab. Programmi käivitamisel on väljund järgmine:

Programm salvestab seirelogid system_monitor.log faili ja kuvab terminalis hoiatuse.

Süsteemi jälgimise programmi täiustamine

Need seirekontrollid pole ainsad, mida psutil toetab. Sarnase lähenemisviisi abil saate lisada rohkem jälgimisfunktsioone, mis vastavad teie vajadustele.

Samuti saate täiustada aruandlusfunktsiooni, et kasutada konsooli lihtsa sõnumi väljastamise asemel meili.