ساخت اسکریپت برای مانیتورینگ سیستم با پایتون

ساخت اسکریپت برای مانیتورینگ سیستم با پایتون

مانیتورینگ سیستم، فرآیند جمع‌آوری و تجزیه و تحلیل داده‌های مربوط به عملکرد سیستم‌های کامپیوتری است. این اطلاعات برای شناسایی مشکلات، پیش‌بینی خرابی‌ها و بهینه‌سازی عملکرد سیستم حیاتی هستند. پایتون، با کتابخانه‌های قدرتمند و سادگی سینتکس، یک انتخاب عالی برای ساخت اسکریپت‌های مانیتورینگ سیستم است. این مقاله به آموزش گام به گام ساخت یک اسکریپت مانیتورینگ سیستم با پایتون می‌پردازد و در دسته ‘اتوماسیون و اسکریپت‌نویسی’ قرار می‌گیرد.

پیش‌نیازها

قبل از شروع، اطمینان حاصل کنید که موارد زیر را دارید:

  • پایتون نصب شده باشد (نسخه 3.6 یا بالاتر توصیه می‌شود).
  • یک ویرایشگر متن یا IDE برای نوشتن کد پایتون.
  • آشنایی اولیه با مفاهیم برنامه‌نویسی پایتون (متغیرها، حلقه‌ها، شرط‌ها، توابع).

مراحل ساخت اسکریپت

1. جمع‌آوری اطلاعات سیستم

اولین قدم، جمع‌آوری اطلاعات مورد نیاز از سیستم است. اطلاعاتی مانند:

  • استفاده از CPU
  • استفاده از حافظه (RAM)
  • فضای دیسک آزاد
  • وضعیت فرآیندها
  • وضعیت شبکه

برای جمع‌آوری این اطلاعات، می‌توان از کتابخانه‌های مختلف پایتون استفاده کرد. برخی از مهم‌ترین آن‌ها عبارتند از:

  • psutil: این کتابخانه اطلاعات جامعی در مورد فرآیندها، استفاده از CPU، حافظه، دیسک و شبکه ارائه می‌دهد.
  • os: این کتابخانه امکان تعامل با سیستم عامل را فراهم می‌کند.
  • subprocess: این کتابخانه امکان اجرای دستورات سیستم عامل را فراهم می‌کند.

مثال جمع‌آوری اطلاعات CPU و حافظه با استفاده از psutil:

import psutil

# دریافت درصد استفاده از CPU
cpu_percent = psutil.cpu_percent(interval=1)

# دریافت اطلاعات حافظه
memory = psutil.virtual_memory()
memory_percent = memory.percent
memory_used = memory.used / (1024 * 1024) # به مگابایت

print(f"CPU Usage: {cpu_percent}%")
print(f"Memory Usage: {memory_percent}% ({memory_used:.2f} MB)")

2. تعریف آستانه‌ها (Thresholds)

پس از جمع‌آوری اطلاعات، باید آستانه‌هایی را برای هر متریک تعریف کنید. آستانه‌ها مقادیری هستند که اگر یک متریک از آن‌ها فراتر رفت، یک هشدار ایجاد می‌شود. به عنوان مثال، اگر استفاده از CPU از 80% بیشتر شود، یک هشدار ایجاد کنید.

آستانه‌ها باید بر اساس نیازها و ویژگی‌های سیستم شما تنظیم شوند. برای تعیین آستانه‌های مناسب، باید عملکرد سیستم را در شرایط مختلف بررسی کنید.

3. ایجاد هشدارها

هنگامی که یک متریک از آستانه تعریف شده فراتر رفت، باید یک هشدار ایجاد کنید. هشدارها می‌توانند به روش‌های مختلفی ارسال شوند، مانند:

  • ایمیل
  • پیامک
  • ثبت در فایل لاگ
  • ارسال به سیستم مانیتورینگ مرکزی

مثال ارسال ایمیل هشدار:

import smtplib
from email.mime.text import MIMEText

def send_email(subject, body, recipient):
    sender = "your_email@example.com"
    password = "your_password"

    msg = MIMEText(body)
    msg['Subject'] = subject
    msg['From'] = sender
    msg['To'] = recipient

    with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp:
        smtp.login(sender, password)
        smtp.send_message(msg)

# مثال استفاده
if cpu_percent > 80:
    send_email("CPU Usage Alert", "CPU usage is above 80%", "recipient_email@example.com")

4. زمان‌بندی اجرای اسکریپت

اسکریپت مانیتورینگ سیستم باید به طور منظم اجرا شود تا بتواند به طور مداوم عملکرد سیستم را نظارت کند. برای زمان‌بندی اجرای اسکریپت، می‌توان از ابزارهای مختلفی استفاده کرد، مانند:

  • cron (در لینوکس): یک زمان‌بند وظایف است که به شما امکان می‌دهد اسکریپت‌ها را در زمان‌های مشخص اجرا کنید.
  • Task Scheduler (در ویندوز): یک زمان‌بند وظایف است که به شما امکان می‌دهد اسکریپت‌ها را در زمان‌های مشخص اجرا کنید.
  • schedule (کتابخانه پایتون): یک کتابخانه پایتون است که به شما امکان می‌دهد اسکریپت‌ها را در زمان‌های مشخص اجرا کنید.

مثال زمان‌بندی با استفاده از schedule:

import schedule
import time

def monitor_system():
    # کد مانیتورینگ سیستم در اینجا قرار می‌گیرد
    cpu_percent = psutil.cpu_percent(interval=1)
    memory = psutil.virtual_memory()
    memory_percent = memory.percent

    print(f"CPU Usage: {cpu_percent}%")
    print(f"Memory Usage: {memory_percent}%")

    if cpu_percent > 80:
        send_email("CPU Usage Alert", "CPU usage is above 80%", "recipient_email@example.com")

schedule.every(60).seconds.do(monitor_system) # هر 60 ثانیه یکبار اجرا شود

while True:
    schedule.run_pending()
    time.sleep(1)

5. ثبت وقایع (Logging)

ثبت وقایع، فرآیند ذخیره اطلاعات مربوط به عملکرد اسکریپت و سیستم است. این اطلاعات برای عیب‌یابی مشکلات و تجزیه و تحلیل عملکرد سیستم مفید هستند. می‌توانید اطلاعاتی مانند زمان اجرا، مقادیر متریک‌ها، هشدارها و خطاها را ثبت کنید.

برای ثبت وقایع، می‌توان از کتابخانه logging پایتون استفاده کرد.

import logging

logging.basicConfig(filename='system_monitor.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

try:
    cpu_percent = psutil.cpu_percent(interval=1)
    logging.info(f"CPU Usage: {cpu_percent}%")
except Exception as e:
    logging.error(f"Error getting CPU usage: {e}")

بهبود اسکریپت

اسکریپت مانیتورینگ سیستم را می‌توان به روش‌های مختلفی بهبود داد، مانند:

  • اضافه کردن متریک‌های بیشتر: می‌توانید متریک‌های بیشتری را جمع‌آوری کنید، مانند فضای دیسک آزاد، وضعیت شبکه، و وضعیت فرآیندها.
  • پیاده‌سازی آستانه‌های پویا: می‌توانید آستانه‌هایی را پیاده‌سازی کنید که به طور خودکار بر اساس عملکرد سیستم تنظیم می‌شوند.
  • استفاده از یک پایگاه داده: می‌توانید اطلاعات مانیتورینگ را در یک پایگاه داده ذخیره کنید تا بتوانید آن‌ها را به طور موثرتری تجزیه و تحلیل کنید.
  • ایجاد یک رابط کاربری گرافیکی (GUI): می‌توانید یک رابط کاربری گرافیکی ایجاد کنید تا بتوانید اطلاعات مانیتورینگ را به راحتی مشاهده کنید.

نتیجه‌گیری

ساخت اسکریپت برای مانیتورینگ سیستم با پایتون یک راه حل قدرتمند و انعطاف‌پذیر برای نظارت بر عملکرد سیستم‌های کامپیوتری است. با استفاده از کتابخانه‌های پایتون و تکنیک‌های برنامه‌نویسی مناسب، می‌توانید یک اسکریپت مانیتورینگ سیستم سفارشی ایجاد کنید که نیازهای خاص شما را برآورده کند. این مقاله یک نقطه شروع برای ساخت اسکریپت مانیتورینگ سیستم با پایتون ارائه می‌دهد و شما می‌توانید آن را بر اساس نیازهای خود گسترش دهید.

بدون دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *