انتقل إلى المحتوى الرئيسي

الفصل 11.1 - مراقبة النظام

أهداف التعلم​

في نهاية هذا الفصل، ستكون قادرًا على:

  • مراقبة وحدة المعالجة المركزية، الذاكرة، القرص
  • استخدام top، htop، iotop
  • فهم مقاييس النظام
  • استخدام vmstat و iostat
  • تكوين تنبيهات أساسية

أدوات المراقبة​

top - الوقت الحقيقي​

# واجهة تفاعلية
top

# خيارات
top -u user1 # حسب المستخدم
top -p 1234 # عملية محددة
top -d 2 # تحديث كل ثانيتين

المقاييس المعروضة:

  • متوسط الحمل
  • استخدام وحدة المعالجة المركزية
  • الذاكرة (RAM، swap)
  • العمليات

htop - النسخة المحسنة​

# واجهة ملونة
htop

# التثبيت إذا لزم الأمر
sudo apt install htop

المزايا:

  • واجهة بديهية
  • تنقل سهل
  • أشرطة تقدم
  • تصفية

iotop - إدخال/إخراج حسب العملية​

# مراقبة إدخال/إخراج القرص
sudo iotop

# خيارات
sudo iotop -o # النشطة فقط
sudo iotop -a # متراكمة

مقاييس النظام​

وحدة المعالجة المركزية​

# استخدام وحدة المعالجة المركزية
top
htop

# إحصائيات وحدة المعالجة المركزية
cat /proc/stat
mpstat # sysstat

# متوسط الحمل
uptime
cat /proc/loadavg

# التفسير:
# < عدد وحدات المعالجة المركزية: جيد
# = عدد وحدات المعالجة المركزية: استخدام كامل
# > عدد وحدات المعالجة المركزية: تحميل زائد

الذاكرة​

# نظرة عامة
free -h

# تفاصيل
cat /proc/meminfo

# حسب العملية
ps aux --sort=-%mem | head

# إحصائيات
vmstat -s

القرص​

# مساحة القرص
df -h

# استخدام حسب الدليل
du -sh /home/*

# إحصائيات الإدخال/الإخراج
iostat -x 1

# حسب العملية
sudo iotop

أدوات متقدمة​

vmstat - إحصائيات النظام​

# إحصائيات كل ثانية
vmstat 1

# الأعمدة المهمة:
# r: العمليات في انتظار وحدة المعالجة المركزية
# b: العمليات المحظورة
# swpd: swap المستخدم
# free: الذاكرة الحرة
# si/so: swap in/out
# us/sy/id: وحدة المعالجة المركزية المستخدم/النظام/الخمول

iostat - إحصائيات الإدخال/الإخراج​

# التثبيت
sudo apt install sysstat

# إحصائيات الإدخال/الإخراج
iostat -x 1

# الأعمدة:
# %util: استخدام القرص
# r/s, w/s: قراءات/كتابات في الثانية
# rkB/s, wkB/s: KB/s

sar - تقرير نشاط النظام​

# تاريخ وحدة المعالجة المركزية
sar -u

# تاريخ الذاكرة
sar -r

# تاريخ الإدخال/الإخراج
sar -b

# في الوقت الحقيقي
sar -u 1 10 # وحدة المعالجة المركزية، 1 ثانية، 10 مرات

سكربتات المراقبة​

مراقبة أساسية​

#!/bin/bash
# سكربت مراقبة بسيط

echo "=== وحدة المعالجة المركزية ==="
top -bn1 | grep "Cpu(s)" | awk '{print $2}'

echo "=== الذاكرة ==="
free -h | grep Mem

echo "=== القرص ==="
df -h / | tail -1

echo "=== متوسط الحمل ==="
uptime

مراقبة مع تنبيهات​

#!/bin/bash
# مراقبة مع تنبيهات

THRESHOLD_CPU=80
THRESHOLD_MEM=80
THRESHOLD_DISK=80

# وحدة المعالجة المركزية
CPU=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | sed 's/%us,//')
if (( $(echo "$CPU > $THRESHOLD_CPU" | bc -l) )); then
echo "تنبيه: وحدة المعالجة المركزية عند ${CPU}%"
fi

# الذاكرة
MEM=$(free | grep Mem | awk '{printf "%.0f", $3/$2 * 100}')
if [ "$MEM" -gt "$THRESHOLD_MEM" ]; then
echo "تنبيه: الذاكرة عند ${MEM}%"
fi

# القرص
DISK=$(df -h / | tail -1 | awk '{print $5}' | sed 's/%//')
if [ "$DISK" -gt "$THRESHOLD_DISK" ]; then
echo "تنبيه: القرص عند ${DISK}%"
fi

مراقبة باستخدام Cron​

مهمة مجدولة​

# /etc/cron.d/monitoring
# مراقبة كل 5 دقائق
*/5 * * * * root /usr/local/bin/monitor.sh >> /var/log/monitoring.log 2>&1

سكربت مع تسجيل​

#!/bin/bash
# /usr/local/bin/monitor.sh

LOG="/var/log/monitoring.log"
DATE=$(date '+%Y-%m-%d %H:%M:%S')

{
echo "=== $DATE ==="
echo "وحدة المعالجة المركزية: $(top -bn1 | grep 'Cpu(s)' | awk '{print $2}')"
echo "الذاكرة: $(free -h | grep Mem | awk '{print $3"/"$2}')"
echo "القرص: $(df -h / | tail -1 | awk '{print $5}')"
echo "الحمل: $(uptime | awk -F'load average:' '{print $2}')"
echo "---"
} >> "$LOG"

ملخص​

في هذا الفصل، تعلمت:

الأدوات: top، htop، iotop، vmstat، iostat، sar
المقاييس: وحدة المعالجة المركزية، الذاكرة، القرص، متوسط الحمل
المراقبة: سكربتات تلقائية، تنبيهات
Cron: جدولة مراقبة منتظمة
الممارسة: مراقبة مستمرة، اكتشاف المشاكل


الخطوات التالية​

الفصل 11.2: إدارة السجلات
الفصل 11.3: مراقبة Crons والتنبيهات


تم إنشاء الفصل في: ديسمبر 2024