Dengan satu perpustakaan, Anda dapat memantau sejumlah metrik sistem dan memastikan semuanya berjalan lancar.
Sebagian besar organisasi sangat bergantung pada infrastruktur TI untuk menjalankan operasinya. Kegagalan sistem yang tidak direncanakan atau penurunan kinerja dapat menyebabkan gangguan, kerugian finansial, dan rusaknya reputasi.
Pemeriksaan kesehatan sistem otomatis sangat penting untuk memastikan infrastruktur TI tetap stabil dan andal. Dengan memantau metrik penting dan segera mendeteksi anomali, Anda dapat meminimalkan waktu henti.
Mendefinisikan Pemeriksaan Kesehatan
Penting untuk menentukan pemeriksaan kesehatan apa yang ingin Anda lakukan pada sistem Anda. Anda harus menetapkan kriteria yang jelas mengenai apa yang akan Anda pantau dan alasannya. Mulailah dengan mengidentifikasi tujuan utama sistem Anda. Fungsi atau layanan apa yang disediakannya?
Kemudian, tetapkan tolok ukur kinerja berdasarkan data historis dan pastikan pemeriksaan kesehatan Anda menilai efisiensi penggunaan sumber daya sistem. Terakhir, tentukan ambang batas yang mengindikasikan adanya masalah. Berapa persentase penggunaan sumber daya yang Anda anggap tinggi atau rendah? Pada titik manakah sistem harus memicu peringatan?
Memilih Perpustakaan dan Menyiapkan Lingkungan Anda
Untuk mengotomatiskan proses pemantauan sistem dengan Python, Anda memerlukan pustaka berikut untuk membantu Anda mengumpulkan metrik sistem dan kemudian menjadwalkan pemeriksaan.
- psutil: Ini adalah perpustakaan lintas platform yang menyediakan antarmuka untuk mengambil informasi tentang pemanfaatan sistem (CPU, memori, disk, jaringan, sensor).
- jadwal: Pustaka ini menyediakan cara sederhana untuk menjadwalkan tugas agar dijalankan pada interval tertentu.
- waktu: Pustaka bawaan Python yang akan Anda gunakan untuk operasi terkait waktu.
- pencatatan: Pustaka bawaan lain yang akan Anda gunakan untuk membuat log pemeriksaan kesehatan sistem.
Mulailah mengatur segalanya membuat lingkungan virtual Python baru. Ini akan mencegah potensi konflik perpustakaan versi. Kemudian jalankan perintah terminal berikut untuk instal perpustakaan yang diperlukan dengan Pip:
pip install psutil schedule
Setelah perpustakaan diinstal pada sistem Anda, lingkungan Anda sudah siap.
Kode sumber lengkap tersedia di a Repositori GitHub.
Mengimpor Perpustakaan yang Diperlukan
Buat skrip baru, pemantauan.py, dan memulainya dengan mengimpor perpustakaan yang diperlukan:
import psutil
import schedule
import time
import logging
Mengimpor perpustakaan akan memungkinkan Anda untuk menggunakan fungsionalitas yang mereka tawarkan dalam kode Anda.
Pencatatan dan Pelaporan
Anda memerlukan cara untuk mencatat hasil pemeriksaan kesehatan Anda. Penebangan hutan berfungsi sebagai alat penting untuk menangkap dan melestarikan catatan sejarah peristiwa dan men-debug masalah dalam kode Anda. Ini juga memainkan peran penting dalam analisis kinerja.
Gunakan perpustakaan logging bawaan untuk membuat log Anda untuk proyek ini. Anda dapat menyimpan pesan log ke file bernama sistem_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)
Untuk pelaporan, cetak pesan peringatan di konsol sebagai pemberitahuan langsung tentang masalah apa pun yang memerlukan perhatian.
# Function to print alerts to the console
defprint_alert(message):
print(f"ALERT: {message}")
Fungsi pemeriksaan kesehatan akan menggunakan fungsi ini untuk mencatat dan melaporkan temuan mereka yang relevan.
Membuat Fungsi Pemeriksaan Kesehatan
Untuk setiap health check, tentukan fungsi yang akan merangkum pengujian spesifik yang mengevaluasi aspek penting infrastruktur Anda.
Pemantauan Penggunaan CPU
Mulailah dengan mendefinisikan fungsi yang akan memantau penggunaan CPU. Ini akan berfungsi sebagai indikator penting dari keseluruhan kinerja sistem dan pemanfaatan sumber daya. Penggunaan CPU yang berlebihan menyebabkan sistem melambat, tidak responsif, dan bahkan crash, sehingga sangat mengganggu layanan penting.
Dengan memeriksa penggunaan CPU secara teratur dan menetapkan ambang batas yang sesuai, administrator sistem dapat mengidentifikasi hambatan kinerja, proses yang membutuhkan banyak sumber daya, atau potensi masalah perangkat keras.
# 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)
Fungsi ini memeriksa penggunaan CPU sistem saat ini. Jika penggunaan CPU melebihi ambang batas dalam persentase, ia akan mencatat pesan yang menunjukkan penggunaan CPU yang tinggi dan mencetak pesan peringatan.
Pemantauan Penggunaan Memori
Tentukan fungsi lain yang akan memantau penggunaan memori. Dengan melacak penggunaan memori secara teratur, Anda bisa mendeteksi kebocoran memori, proses yang membutuhkan banyak sumber daya, dan potensi kemacetan. Metode ini mencegah pelambatan, kerusakan, dan pemadaman sistem.
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)
Mirip dengan pemeriksaan penggunaan CPU, Anda menetapkan ambang batas untuk penggunaan memori yang tinggi. Jika penggunaan memori melampaui ambang batas, ia akan mencatat dan mencetak peringatan.
Pemantauan Ruang Disk
Tentukan fungsi yang akan memantau ruang disk. Dengan terus memantau ketersediaan ruang disk, Anda dapat mengatasi potensi masalah yang timbul dari penipisan sumber daya. Kehabisan ruang disk dapat mengakibatkan sistem crash, kerusakan data, dan gangguan layanan. Pemeriksaan ruang disk membantu memastikan bahwa terdapat kapasitas penyimpanan yang memadai.
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)
Fungsi ini memeriksa penggunaan ruang disk pada jalur tertentu. Jalur default adalah direktori root /. Jika ruang disk berada di bawah ambang batas, ia akan mencatat dan mencetak peringatan.
Pemantauan Lalu Lintas Jaringan
Tentukan fungsi akhir yang akan memantau aliran data sistem Anda. Ini akan membantu dalam deteksi dini lonjakan lalu lintas jaringan yang tidak terduga, yang dapat menjadi indikasi pelanggaran keamanan atau masalah infrastruktur.
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)
Fungsi ini memonitor lalu lintas jaringan dengan menjumlahkan byte yang dikirim dan diterima. Ambang batasnya dalam byte. Jika lalu lintas jaringan melebihi ambang batas, ia akan mencatat dan mencetak peringatan.
Menerapkan Logika Pemantauan
Sekarang setelah Anda memiliki fungsi pemeriksaan kesehatan, cukup panggil masing-masing fungsi secara bergantian dari fungsi pengontrol. Anda dapat mencetak keluaran dan mencatat pesan setiap kali pemeriksaan keseluruhan ini dijalankan:
# 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.")
Fungsi ini menjalankan semua pemeriksaan kesehatan, memberikan tampilan terpadu tentang status kesehatan sistem Anda.
Menjadwalkan Pemeriksaan Otomatis dan Menjalankan Program
Untuk mengotomatiskan pemantauan pada interval tertentu, Anda akan menggunakan perpustakaan jadwal. Anda dapat mengatur intervalnya sesuai kebutuhan.
# Schedule health checks to run every minute
schedule.every(1).minutes.do(run_health_checks)
Sekarang jalankan proses pemantauan sistem secara terus menerus.
# Main loop to run scheduled tasks
whileTrue:
schedule.run_pending()
time.sleep(1)
Perulangan ini terus-menerus memeriksa tugas-tugas yang dijadwalkan dan menjalankannya ketika waktunya tiba. Ketika Anda menjalankan program, outputnya adalah sebagai berikut:
Program ini mencatat log pemantauan pada sistem_monitor.log file dan menampilkan peringatan di terminal.
Memajukan Program Pemantauan Sistem
Pemeriksaan pemantauan ini bukan satu-satunya yang didukung psutil. Anda dapat menambahkan lebih banyak fungsi pemantauan, menggunakan pendekatan serupa, untuk menyesuaikan kebutuhan Anda.
Anda juga dapat meningkatkan fungsi pelaporan dengan menggunakan email daripada mengeluarkan pesan sederhana di konsol.