الفصل 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