تحليل السجلات في Linux: أساسيات Troubleshooting العملية
في Linux، السجلات هي المصدر الأول لفهم المشاكل. بدل التخمين، اقرأ logs وستعرف السبب الحقيقي للعطل.
في هذا الدرس ستتعلم منهجية عملية لتحليل السجلات وحل المشاكل خطوة بخطوة.
ما هي Logs ولماذا هي مهمة في Troubleshooting؟
- تسجل الأحداث والأخطاء والتحذيرات داخل النظام
- تساعدك على معرفة "ماذا حدث؟ ومتى؟ ولماذا؟"
- أساسية لتشخيص مشاكل الخدمات والشبكة والتخزين
أماكن السجلات الشائعة في Linux
ls /var/log
ls /var/log/nginx
ls /var/log/apache2
| الملف/المسار | الوصف |
|---|---|
/var/log/syslog |
أحداث النظام العامة (في Debian/Ubuntu) |
/var/log/auth.log |
محاولات الدخول والمصادقة |
/var/log/nginx/error.log |
أخطاء Nginx |
الأمر journalctl: قراءة سجلات systemd
journalctl -xe
journalctl -u nginx
journalctl -u nginx -n 100
journalctl -u nginx -f
-u: تحديد خدمة معينة-n 100: عرض آخر 100 سطر-f: متابعة السجلات مباشرة
متابعة السجلات لحظيًا باستخدام tail -f
tail -f /var/log/syslog
tail -f /var/log/nginx/error.log
مفيد جدا أثناء اختبار تغييرات الإعدادات أو تتبع أخطاء تطبيق حي.
البحث داخل logs عبر grep
grep -i "error" /var/log/syslog
grep -Ei "failed|denied|timeout" /var/log/auth.log
journalctl -u nginx | grep -i error
ابحث دائما عن كلمات مثل: error, failed, denied, timeout.
قراءة مريحة للملفات الكبيرة باستخدام less
less /var/log/syslog
less +G /var/log/syslog
/keyword: بحث عن كلمةn: الانتقال للنتيجة التاليةq: خروج
منهجية Troubleshooting عملية في Linux
- حدد العَرَض بدقة (خدمة متوقفة؟ بطء؟ خطأ 500؟)
- افحص الحالة:
systemctl status service - اجمع السجلات:
journalctl -u service -n 100 - ابحث عن السبب الجذري باستخدام
grep - طبق إصلاحًا واحدًا واختبر
- أعد المراقبة عبر logs للتأكد من زوال المشكلة
سيناريو سريع: Nginx لا يعمل
systemctl status nginx
journalctl -u nginx -n 50
nginx -t
sudo systemctl restart nginx
journalctl -u nginx -n 20
هذا التسلسل يكشف غالبا مشاكل syntax في إعدادات Nginx أو مشاكل صلاحيات/مسارات.
تمرين عملي: استخراج الأخطاء من سجل تجريبي
cd /tmp
cat > app.log <<'EOF'
INFO start service
WARNING retry connection
ERROR database timeout
INFO request completed
FAILED login attempt
EOF
grep -Ei "error|failed|warning" app.log
tail -n 3 app.log
less app.log
إذا نجحت في استخراج الأسطر الحرجة، فأنت جاهز لقراءة logs الحقيقية على السيرفر.
FAQ: أسئلة شائعة حول Logs وTroubleshooting في Linux
أين أجد ملفات السجلات في Linux؟
غالبا داخل /var/log، بالإضافة إلى سجلات systemd التي يمكن قراءتها عبر journalctl.
ما أفضل أمر لمتابعة logs مباشرة؟
يمكن استخدام tail -f لملف سجل، أو journalctl -f لمتابعة سجلات systemd بشكل مباشر.
كيف أحدد سبب فشل خدمة في Linux بسرعة؟
ابدأ بـ systemctl status للخدمة، ثم استخدم journalctl -u service_name مع grep للبحث عن كلمات مثل error وfailed.
الخطوة التالية
في الدرس القادم سنتعلم متغيرات البيئة في Linux واستخدامها بشكل عملي.
التالي: متغيرات البيئة