بحث متقدم | التسجيل
الويب العربي
  تسجيل دخول
 
   
   

  ملاحظة
الموقع متاح للإطلاع والقراءة فقط، المشاركة والمواضيع الجديدة غير متاحة حالياً لحين تطوير الموقع.




الموقع متاح للإطلاع والقراءة فقط، المشاركة والمواضيع الجديدة غير متاحة حالياً لحين تطوير الموقع.

عـودة للخلف   الويب العربي سوق الإستضافة خلاصة قسم إدارة و تشغيل السيرفرات

خلاصة قسم إدارة و تشغيل السيرفرات القسم هذا للمواضيع المميزة في إدارة وتشغيل الخوادم, الشبكات وأنظمة التشغيل.

موضوع مغلق اضف موضوع جديد
 
خيارات الموضوع طريقة العرض
 
قديم 06-08-2008, 08:38 PM
Ali Hamad Ali Hamad غير متصل
ابعاد المعلومات - السيرفرات والاستضافة
 
تاريخ التسجيل: Mar 2005
المدينة: IA, USA
مشاركة: 649
مستوى تقييم العضوية: 21
Ali Hamad is on a distinguished road
إرسال رسالة عبر MSN إلى Ali Hamad
Post [شرح] : Monit لمراقبة السيرفرات

بسم الله الرحمن الرحيم


الموضوع :

Monit لمراقبة السيرفرات

اهداء :

الى زملائي واخواني في ابعاد المعلومات و الى 37 .

مقدمة :

مراقبة السيرفر من مهام مدير السيرفر الاساسية وهي ضرورة لابد ان يتم عملها لكي يتم ضمان عمل السيرفر وقيامه باصلاح بعض مشاكله بدون تدخل خارجي . ايضا ، مراقبة السيرفر مع وضع الحماية في البال والقيام بوضع بعض القوانين التي تادي دور المراقبة واكتشاف اي تغيير امني على تصاريح الملفات او المجلدات المهمه شيء ضروري ومهم جدا لضمان اكتشاف اي محاولة اختراق قبل تمادي تلك المحاولة . Monit برنامج رائع لمراقبة خدمات السيرفرات ، حالة السيرفر وايضا مراقبة سيرفرات اخرى واشياء اخرى عديدة ستتضح لنا من هذا الموضوع باذن الله .

الحقوق :

الموضوع كتب من قبلي ، علي حمد ، لفائدة المستخدم العربي ، ارجو عدم نسخه كليا او جزئيا او نقله بدون ذكر هذه الحقوق.

تنبيه :

مع انه تم كتابة الموضوع من قبلي وهو للفائدة العامه الا ان ابعاد المعلومات ( الشركة التي اعمل لها ) لاتقوم بتقديم اي ضمان من اي نوع لعمل البرنامج او دعم لعمل البرنامج ، الموضوع كما هو بدون اي ضمانات او اي التزامات على أبعاد المعلومات او علي انا ، علي حمد . قمت بكتابته وتغطيته من كل جوانبه للفائدة العامه ولكن ذلك لايعني اني ملزم بضمان عمل البرنامج او اقدم الدعم الفني له .

الشرح خاص لتوزيعات Fedora, CentOs, Redhat .

تقسيم الموضوع :

الموضوع تم تقسيمه كالتالي :
  1. تنصيب البرنامج
  2. اعداد البرنامج
  3. اعداد Monit للعمل عن طريق المتصفح
  4. تطبيق لاعدادات البرنامج لكي يعمل مع cPanel

أولا : تنصيب البرنامج :

متطلبات عمل البرنامج :
لكي يعمل البرنامج لابد من توفر البكجات التالية في السيرفر :
flex , openssl-devel, byacc
للتاكد من توفر هذه البكجات في السيرفر الخاص بك ، قم بتنفيذ الامر :
كود PHP:
rpm –qa egrep 'flex|byacc|openssl-devel' 
ان تم عرض ثلاث بكجات تحمل اسماء البكجات اعلاه ، والا تستطيع تنصيبهم عن طريق الامر :
كود PHP:
yum install flex byacc openssl-devel 
التنصيب :
  • عن طريق الـ Yum :
انا افضل هذه الطريقة لسهولتها ولكن لا اعتقد انها الافضل لاني قمت بعمل بعض التعديلات على البرنامج ، قد لاتتوافق مع البكج التي ستقوم بانزالها . مثلا : تغيير مسار ملف الكونفيق وايضا اضافة الانكلود لمجلد monit.d . لذا ، انا لا انصح بتركيب البرنامج عن طريق ال Yum .
  • عن طريق جلب البكج وتنصيبه :
قمت بالبحث في الانترنت عن بكجات لاخر اصدار من البرنامج 4.10 ولكن ماوجدته كان فقط للاصدار 4.9 لتوزيعات الردهات وفيدورا . لذلك قمت بعمل اربعة بكجات للاصدار 4.10 للتوزيعات التالية :
CentOs 5
Redhat Enterprise Linux Server 5
Fedora 9
Fedora 7
قم بتحميل البكج المناسب لك من الروابط التالية :
CentOs5 :

بكج البرنامج :
كود PHP:
wget -c dciwww.com/monit/monit-4.10-1.DCI.Cent5.i386.rpm 
ملف توقيع ال MD5 :
كود PHP:
wget -c dciwww.com/monit/monit-4.10-1.DCI.Cent5.tar.gz.md5 
Redhat Enterprise Linux Server 5:

بكج البرنامج :
كود PHP:
wget -c dciwww.com/monit/monit-4.10-1.DCI.el5.i386.rpm 
ملف توقيع ال MD5 :
كود PHP:
wget -c dciwww.com/monit/monit-4.10-1.DCI.el5.tar.gz.md5 
Fedora9 :
بكج البرنامج :
كود PHP:
wget -c dciwww.com/monit/monit-4.10-1.DCI.fc9.i386.rpm 
ملف توقيع ال MD5 :
كود PHP:
wget -c dciwww.com/monit/monit-4.10-1.DCI.fc9.tar.gz.md5 
Fedora 7 :

بكج البرنامج :
كود PHP:
wget -c dciwww.com/monit/monit-4.10-1.DCI.fc7.i386.rpm 
ملف توقيع ال MD5 :
كود PHP:
wget -c dciwww.com/monit/monit-4.10-1.DCI.fc7.tar.gz.md5 
بعد ان تنتهي من تحميل البكج المناسب للسيرفر الخاص بك ، قم بالتاكد من توقيع ال MD5 عن طريق الامر :
كود PHP:
md5sum –c monit.*.md5 
يفترض ان تكون النتيجة تحمل اسم البكج ملحوقة بكلمة OK .
الان ، قم بتنصيب البرنامج عن طريق الامر :
كود PHP:
rpm –Uhv monit.*.rpm 
  • عن طريق السورس كود للبرنامج :
    ان لم تحبذ الطريقة اعلاه ، يمكنك تنصيب البرنامج يدويا كالتالي :
  1. انشاء مجلد لحفظ الملفات :
    كود PHP:
    mkdir /usr/local/src/monit 
  2. الانتقال الى المجلد :
    كود PHP:
    cd /usr/local/src/monit 
  3. جلب الملفات وهي ملفين ، الاول يحتوي على السورس كود الخاص بالبرنامج ، والثاني يحتوي على توقيع ال md5 :
    كود PHP:
    wget -c http://www.tildeslash.com/monit/dist/monit-4.10.1.tar.gz 
    كود PHP:
    wget -c http://www.tildeslash.com/monit/dist/monit-4.10.1.tar.gz.md5 
  4. قم بالتاكد من توقيع ال md5 عن طريق الامر :
    كود PHP:
    md5sum -c monit-4.10.1.tar.gz.md5 
    يفترض ان تكون النتيجة :
    كود PHP:
    monit-4.10.1.tar.gzOK 
  5. فك الضغط عن الملف :
    كود PHP:
    tar -xzvf monit-4.10.1.tar.gz 
  6. قم بالانتقال الى المجلد ا لذي قمنا بفك الضغط عنه:
    كود PHP:
    cd monit-4.10.1 
  7. قم بعمل تعديل بسيط فائدته تغيير اسم ملف الكونفيق الى monit.conf بدلا من monitrc وايضا تفعيل الانكلود للمجلد الذي سنقوم بانشائه لاحقا :
    كود PHP:
    perl -pi.orig -'s|\bmonitrc\b|monit.conf|' monitor.
    كود PHP:
    perl -pi.orig -'s|^#\s+(include .*)$|$1|' monitrc 
  8. الان ، نقوم باستدعاء سكربت الكونفيقيور كالتالي :
    كود PHP:
    ./configure --with-ssl-lib-dir=/usr/lib --bindir=/usr/bin --sysconfdir=/etc 
  9. ان كان كل شيء على مايرام ، قم بتنفيذ الامرين :
    كود PHP:
    make && make install 
  10. نقوم بانشاء ملف init الخاص بتشغيل البرنامج بوضع المحتوى التالي في ملف monit في داخل مجلد init.d :
    كود PHP:
    vi /etc/init.d/monit 
    نقوم بوضع المحتوي التالي فيه :
    كود PHP:
    #!/bin/bash
    #
    # Init file for Monit process monitor.
    #
    # Written by Dag Wieers <dag@wieers.com>.
    #
    # chkconfig: - 98 02
    # description: Monit Process Monitor
    #
    # processname: monit
    # config: /etc/monit.conf
    # pidfile: /var/run/monit

    source /etc/rc.d/init.d/functions

    ### Default variables
    CONFIG="/etc/monit.conf"

    [ -/usr/bin/monit ] || exit 1
    [ -"$CONFIG] || exit 1

    RETVAL
    =0
    prog
    ="monit"
    desc="Process Monitor"

    start() {
            echo -
    $"Starting $desc ($prog): "
            
    daemon $prog -"$CONFIG"
            
    RETVAL=$?
            echo
            [ 
    $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
            
    return $RETVAL
    }

    stop() {
            echo -
    $"Shutting down $desc ($prog): "
            
    killproc $prog
            RETVAL
    =$?
            echo
            [ 
    $RETVAL -eq 0 ] && rm -/var/lock/subsys/$prog
            
    return $RETVAL
    }

    restart() {
            
    stop
            start
    }

    reload() {
            echo -
    $"Reloading $desc ($prog): "
            
    monit -"$CONFIGreload
            RETVAL
    =$?
            echo
            return 
    $RETVAL
    }

    case 
    "$1" in
      start
    )
            
    start
            
    ;;
      
    stop)
            
    stop
            
    ;;
      
    restart)
            
    restart
            
    ;;
      
    reload)
            
    reload
            
    ;;
      
    condrestart)
            [ -
    /var/lock/subsys/$prog ] && restart
            RETVAL
    =$?
            ;;
      
    status)
            
    status $prog
            RETVAL
    =$?
            ;;
      *)
            echo $
    "Usage: $0 {start|stop|restart|reload|condrestart|status}"
            
    RETVAL=1
    esac

    exit $RETVAL 
  11. نقوم بتغيير تصريح الملف :
    كود PHP:
    chmod 0755 /etc/init.d/monit 
  12. نقل ملف الكونفيق :
    كود PHP:
    cp -v monitrc /etc/monit.conf
    chmod 600 
    /etc/monit.conf
    chown root
    :root /etc/monit.conf 
  13. انشاء مجلد سنفحظ فيه الاعدادت وايضا مجلد سيكون هو الهوم دايروكتري للبرنامج :
    كود PHP:
    mkdir /etc/monit.d/
    chmod 755 /etc/monit.d
    mkdir 
    /var/lib/monit 
  14. اضافة اسم المستخدم الخاص بالبرنامج :
    كود PHP:
    /usr/sbin/useradd ---/var/lib/monit -/bin/sh -"monit daemon" monit 
  15. اضافة البرنامج الى البرامج التي يتم تشغيلها اليا عند اعادة تشغيل السيرفر :
    كود PHP:
    chkconfig monit on 

الان ، انتهى قسم التنصيب ، نبدا في قسم اعدادالبرنامج .

الاعداد :

قمت بتقسيم هذه المرحلة الى قسمين :
  1. اعداد البرنامج ككل .
  2. الاعدادات الاضافية.

اولا : اعداد ا لبرنامج ككل :

التعديلات كلها ستكون على ملف /etc/monit.conf وسيكون هو المكان الرئيسي لحفظ الاعدادات العامة للبرنامج Global Setting :
  • تكرار عمل البرنامج ، بمعنى كل كم ثانية تريد ان يقوم البرنامج بالتشييك . في حالتنا اخترت 5 دقائق . اذن نقوم بكتابة :
كود PHP:
set daemon 300 
  • ملف اللوج الخاص بالبرنامج ، في هذا الملف سيتم حفظ سجلات البرنامج . اذن نقوم بكتابة :
كود PHP:
set logfile /var/log/monit.log 
  • وضع ضيغة معينة لرسالة الايميل التي تريد ان تصلك عند حاجة البرنامج لاخبارك بشيء ما . اذن نقوم بكتابة :

كود PHP:
set mail-format {
        
frommonit@hostName
        subject
$SERVICE $EVENT at $DATE
        message
:
                
Action $ACTION
                Service 
$SERVICE
                Date 
$DATE
                Server 
$HOST
                Problem Description 
$DESCRIPTION

                Thank you
,

  • الايميل الخاص بمدير السيرفر او مدراء السيرفر . الى هذه الايميلات سيتم ارسال التنبيهات والتبليغات . اذن نقوم بكتابة :
كود PHP:
set alert you@domain.tld
set alert you2
@domain.tld 
  • الميل سيرفر الذي سيقوم البرنامج باستخدامه لارسال التبليغات ، الافتراضي هو localhost ولكن احببت اضافته هنا للفائدة . اذن نقوم بكتابة :

كود PHP:
set mailserver localhost 
  • مجلد الاعدادات الاضافية ، قمت باضافة هذا المجلد لكي يكون هناك مجلد واحد لحفظ ملفات الاعدادات الثانوية ليكون فهم طريقة عمل البرنامج وترتيبه سهله وسلسه .

كود PHP:
include /etc/monit.d/*.conf 
اذن الشكل النهائي لملف الكونفيق /etc/monit.conf حتى الان :
كود PHP:
# time
set daemon 300
# log file
set logfile /var/log/monit.log
# mail format
 
set mail-format {
frommonit@localhost
subject
$SERVICE $EVENT at $DATE
message
:
Action $ACTION
Service 
$SERVICE
AT 
$DATE
On 
$HOST
Description 
$DESCRIPTION

Thank you
,
}
# admin email
set alert your@domain.tld
#mail server 
set mailserver localhost
# include additional configuration files
include /etc/monit.d/*.conf 
ثانيا : الاعدادات الاضافية :

ماأعنيه بالاعدادات الاضافية هي كل مايمكن عمله لمراقبة شيء معين لايدخل تحت الاعدادات الاساسية للبرنامج . لتسهيل عملية كتابة اي اعداد لمراقبة شيء معين تحتاج بشكل عام الى معرفة بعض الامور الاساسية :
  1. اسم عملية الخدمة التي تريد مراقبتها ، تستطيع معرفة ذلك عن طريق الامر :
    كود PHP:
    ps -auxwwf 
  2. معرفة الامر الذي يقوم بتشغيل الخدمة وايضا ايقافا ، مثلا :
    كود PHP:
    /etc/init.d/httpd start 
  3. الاي بي الذي تعمل عليه الخدمة او يمكن الاتصال بها من خلاله>
  4. البورت الذي تعمل عليه الخدمة
  5. مسار الملف الذي يحتوي على ID الخاص بالعملية .
  6. قد تحتاج الى معرفة اسم ال protocol او نوعه TCP or UDP .
  7. تحديد بعض الشروط التي يقوم البرنامج بالتحقق منها .
  8. مسار الملف او المجلد الذي تريد مراقبته


في هذا القسم ، ساقوم بوضع امثلة على طريقة سؤال وجواب وشرح ، الهدف من هذا القسم هو شرح طريقة كتابة الاعدادات الخاصه بالخدمات .. علما باني في اخر الموضوع قد قمت بعمل ملفات جاهزه يمكن استخدامها لسيرفرات السي بنل .. وانا باذن الله ساحاول تلبية اي طلب لاي خدمة او غرض ان شاء الله .

س1: هل بامكاني مراقبة الاباتشى مثلا وفي حالة توقفه عن العمل اقوم باعادة تشغيله وارسال ايميل الى مدير السيرفر لاخباره بذلك ؟
ج1: نعم ، الاعداد او القانون الخاص بذلك كالتالي :

كود PHP:
check process httpd with pidfile /etc/httpd/logs/httpd.pid
  start program 
"/etc/init.d/httpd start"
  
stop program "/etc/init.d/httpd stop"
  
if failed host 127.0.0.1 port 80 
    then restart 
الشرح :
السطر الاول : قمنا بتحديد اسم العملية المراد مراقبتها وهي httpd وتحديد الملف الذي يحتوي على رقم العملية عند تشغيلها .
السطر الثاني : قمنا بتحديد الامر الذي يقوم بتشغيل الخدمه .
السطر الثالث : قمنا بتحديد الامر الذي يقوم بايقاف الخدمة .
السطر الرابع : الشرط : ان لم تستطع الاتصال بالاي بي عن طريق البورت 80 ( بورت الخدمة ) قم باعادة التشغيل .

س2: لو افترضنا ان الاباتشى توقف لمدة طويلة ، بالطبع لاتريد ان يقوم البرنامج بمتابعة اعادة تشغيل الاباتشى حتى وهو متوقف كليا لفتره طويلة ، هل من حل ؟
ج2: نعم ، تستطيع تحديد عدد المرات التي يقوم فيها البرنامج باعادة تشغيل الخدمة في فترة زمنية محدده . مثلا : المده التي يقوم البرنامج بالتحقق فيها هي 300 ثانية ( خمس دقائق ) ، فلو افترضنا اننا نريد ان يقوم البرنامج بالتوقف عن التحقق من الخدمة بعد ان يقوم بعمل 5 اعادات تشغيل لها في مدة زمنية قدرها 20 دقيقه . سنقوم بكتابة التالي في اخر الاعداد اعلاه :

كود PHP:
if 5 restarts within 4 cycles 
 then timeout 
س3:هل بامكاني عمل بعض الشروط المتقدمه مثل :
لو كان عدد عمليات الخدمة في مثالنا ( الاباتشى ) اكثر من 300 ، قم باعادة التشغيل .
لو كان استهلاك الخدمة ( في مثالنا ، الاباتشى ) اكثر من 40% من ال cpu قم باعادة التشغيل .
لو كان استهلاك الخدمة ( في مثالنا ، الاباتشى ) اكثر من 500 ميجا من الميموري الخاص بالسيرفر قم باعادة التشغيل .
لو كان اللود الخاص بالسيرفر ( اللود الخاص بالعشر دقائق ) اعلى من 10 باعادة تشغيل الاباتشى .؟

ج3: نعم :
نقوم بكتابة الاعداد :

كود PHP:
if children 300 
    then restart
if cpu 40
    
then restart
if totalmem 500.0 MB 
    then restart
if loadavg(10mingreater than 10 
    then restart 
الشرح :
السطر الاول : اذا كان عدد العمليات الجزئية ( children ) الذين يتبعون للعملية الام ( parent) اكثر من 300 ، قم باعادة التشغيل .
السطر لثالث : اذا كان استهلاك العملية من المعالج اكثر من 40 % من نسبة اشغال المعالج ، قم باعادة التشغيل .
السطر الخامس : اذا كان الكمية المستهلكة من الرام لهذه العمليات كلها ( الشلدرن والبارنت ) اكثر من 500 ميجا ، قم باعادة التشغيل .
السطر السابع : اذا كان الضغط على السيرفر لمدة 10 دقائق اكبر من 10 قم باعادة تشغيل الاباتشى .

س4 : قد تستهلك خدمة معينة اكثر من 40% مثلا من ال cpu في خمس دقائق ، اريد تغيير الوقت ، لكي يقوم البرنامج باعادة تشغيل الخدمة ( في مثالنا الاباتشى ) ان استمرت الخدمة في استهلاك 40% من المعالج لمدة 15 دقيقه ، هل استطيع القيام بذلك ؟

ج4 : نعم :
نقوم بكتابة الاعداد :
كود PHP:
if cpu 40% for  2 cycles 
    then restart 
الشرح : السطر الاول : يختبر نسبة الاستهلاك لمدة دورتين ( كل دورة 5 دقائق ، قمنا بتحديد ذلك في الاعدادات الرئيسيه ) قم باعادة التشغيل .

س5 : يوجد بعض الملفات المهمه في السيرفر التي لايمكن ان يتم تغيير تصريحها او تغيير اليوزر المالك لها او القروب او توقيع ال md5 ، ان تم تغيير اي من ذلك ، فهذا يعني خطر امني على السيرفر محتمل ، قد لايكون هناك خطر امني ، لان التوقيع سيتغير ان تم تحديث البكج المسؤول عن الملف .. لكن لفنرض اني اريد مراقبة ملف معين ( مثلا ، su ) ، هل من طريقة الى ذلك ؟

ج5 : نعم :
نقوم بكتابة الاعداد او القانون :

كود PHP:
check file su with path "/bin/su"
  
if failed checksum
    then alert 
الشرح :
السطر الاول : قمنا باخباره اننا نريد مراقبة ملف باسم su ومساره هو /bin/su .
السطر الثاني : الشرط ، ان اختلف توقيع ال md5 ، قم بالتبليغ .

س6: هل استطيع مراقبة حجم بارتشن معين في السيرفر بحيث ان وصل حجمه اعلى من 90% يتم ارسال تنبيه ؟
ج6: نعم :
كود PHP:
check device backup with path "/dev/sdb1"
  
if space usage 90
    
then alert 
الشرح :
السطر الاول : اخبرنا باننا نريد مراقبة ديفايس باسم backup ومساره /dev/sdb1 .
السطر الثاني : الشرط : اذا كان حجم المستهلك فيه اكبر من 90 %
السطر الثالث : قم بالتبليغ .

س7: هل استطيع تنفيذ سكربت معين ( اتخاذ اكشن خارجي ليس من قبل البرنامج ) في حالة تحقق شرط معين ؟ مثلا : اريد ان يتم تنفيذ سكربت قمت بكتابته يقوم بجمع بعض البيانات في حالة كان اللود على السيرفر ( اللود الخاص ب 15 دقيقه ) اعلى من 10 ؟

ج7 : نعم :

كود PHP:
check system myhost.mydomain.tld
   
if loadavg (15min) > 10
    then exec  
"/bin/myScript.sh" 
س8 : عرفنا في الاعلى اني استطيع مراقبة حجم بارتشن معين ، لكن هل ستطيع مراقبة حجم ملف معين ؟
ج8 : نعم :

كود PHP:
check file squid.log with path "/var/log/squid.log"
  
if size 500 MB
    then alert 
س9: هل استطيع مراقبة تصريح مجلد معين وملكيته ؟

ج9 : نعم :

كود PHP:
check directory etc with path "/etc"
  
if failed uid 0
    then unmonitor
  
if failed gid 0 
    then unmonitor
  
if failed permission 0755
    then unmonitor 
اعتقد ان الفكره الان وصلت وبوضوح لكيفية كتابة القوانين او الاعدادت الخاصه ب monit .

س10 : املك سيرفر اخر واريد ان اقوم بمراقبته ، هل استطيع عمل ذلك ؟
ج10 : نعم ، ولكن ، انا انصح بشدة باستخدام برامج افضل مثل nagios او Zabbix ( على فكره ، ترى عمرو الجبالي " صديقي واخي في قسم الاستضافه في ابعاد المعلومات " يموت في البرنامج هذا ... Monit سيقوم بالواجب لعدد قليل من السيرفرات ولكن بامكانيات محدوده ...
نعود للجواب :
نفترض ان اسم السيرفر الخاص بك : 37.drdrm.com والاي بي الخاص به 123.456.78.90 وتريد مراقبة الخدمات التالية في ذلك السيرفر :
ping , apache, ssh , ftp , smtp, dns, pop
نقوم بكتابة القانون :

كود PHP:
check host 37.drm.com with address 123.456.78.90
 
if failed icmp type echo 
  
with timeout 4 seconds 
    then alert

  
if failed port 21 type tcp protocol ftp
    then alert

  
if failed port 80 type tcp protocol http
    then alert

  
if failed port 25 type tcp protocol smtp 
    then alert

  
if failed port 22 type tcp protocol ssh
    then alert

  
if failed port 53 type udp protocol dns
    then alert
  
  
if failed port 110 type tcp protocol pop





    then alert 
س11: هل بالامكان مراقبة لود السيرفر ، كمية الرام المستخدمه وال CPU ؟
ج11: نعم :

كود PHP:
check system myhost.mydomain.tld
   
if loadavg (1min) > 10
    then alert
   
if loadavg (5min) > for 2 cycles
    then alert
   
if loadavg (15min) > 5
    then alert
   
if memory usage 75% for 2 cycles
    then alert
   
if cpu usage (user) > 70% for 2 cycles
    then alert
   
if cpu usage (system) > 30% for 2 cycles
    then alert
   
if cpu usage (wait) > 20% for 2 cycles
    then alert 
ثالثا : اعداد monit للعمل عن طريق المتصفح :
انا افضل وانصح بتفعيل monit عن طريق المتصفح لاسباب كثيره اولها سهولة مشاهدة ومراقبة حالة السيرفر\السيرفرات :

ان رغبنا في التفعيل نحتاج الى التعديل على ملف ال /etc/monit.conf :
باضافة التالي :

كود PHP:
set httpd port 2812
    allow localhost
    allow 123.123.123.12
    allow admin
:monit 
الشرح :
السطر الاول : تفعيل التحكم ب monit عن طريق المتصفح ، بورت 2812
السطر الثاني والثالث : الاي بيات المسموح لها بالدخول .
السطر الرابع : اسم المستخدم وكلمة المرور ، بمعنى ان اسم المستخدم هنا هو admin وكلمة المرور monit .

الان ، تستطيع الدخول عن طريق اي بي السيرفر ، مثلا :
http://123.123.123.12:2812

رابعا : تطبيق الاعدادات المناسبة للعمل مع cPanel مع امثلة جاهزه :

  1. تشييك الخدمات :

    الاباتشى :

    كود PHP:
    check process httpd with pidfile "/usr/local/apache/logs/httpd.pid"
      
    start program "/etc/init.d/httpd start"
      
    stop program "/etc/init.d/httpd stop"
      
    if failed host 127.0.0.1 port 80 protocol http
        then restart
      
    if children 300 for 2 cycles
        then restart
      
    if totalmem 200.0 MB for 2 cycles
        then restart
      
    if cpu 40% for 2 cycles
        then restart
      
    if 2 restarts within 5 cycles 
        then timeout 
    المايسقول :

    كود PHP:
    check process mysqld with pidfile "/path/to/$hostNAme.pid"
      
    start program "/etc/init.d/mysql start"
      
    stop program "/etc/init.d/mysql stop"
      
    if failed host 127.0.0.1 port 3306
        then restart
      
    if totalmem 300.0 MB for 2 cycles
        then restart
      
    if cpu 40% for 2 cycles
        then restart
      
    if 2 restarts within 5 cycles 
        then timeout 
    SSH :

    كود PHP:
    check process sshd with pidfile "/var/run/sshd.pid"
      
    start program "/etc/init.d/sshd start"
      
    stop program "/etc/init.d/sshd stop"
      
    if failed host 127.0.0.1 port 22 protocol ssh
        then restart
      
    if 2 restarts within 5 cycles 
        then timeout 
    Named :

    كود PHP:
    check process named with pidfile "/var/run/named/named.pid"
      
    start program "/etc/init.d/named start"
      
    stop program "/etc/init.d/named stop"
      
    if failed host 127.0.0.1 port 53 protocol dns
        then restart
      
    if 2 restarts within 5 cycles 
        then timeout 
    Pure-FTPD :

    كود PHP:
    check process ftp with pidfile "/var/run/pure-ftpd.pid"
      
    start program "/etc/init.d/pure-ftpd start"
      
    stop program "/etc/init.d/pure-ftpd stop"
      
    if failed host 127.0.0.1 port 21 protocol ftp
        then restart
      
    if 2 restarts within 5 cycles
        then timeout 
    EXIM :

    كود PHP:
    check process exim with pidfile "/var/spool/exim/exim-daemon.pid"
      
    start program "/etc/init.d/exim start"
      
    stop program "/etc/init.d/exim stop"
      
    if failed host 127.0.0.1 port 25 protocol smtp
        then restart
      
    if failed host 127.0.0.1 port 465 type TCPSSL protocol smtp
        then restart
      
    if 2 restarts within 5 cycles
        then timeout 
    IMAP :

    كود PHP:
    check process imapd with pidfile "/var/run/imapd.pid"
      
    start program "/usr/lib/courier-imap/libexec/imapd.rc start"
      
    stop program "/usr/lib/courier-imap/libexec/imapd.rc stop"
      
    if failed host 127.0.0.1 port 143 protocol imap
        then restart
      
    if 2 restarts within 5 cycles
        then timeout 
    IMAP-SSL :

    كود PHP:
    check process imapd-ssl with pidfile "/var/run/imapd-ssl.pid"
      
    start program "/usr/lib/courier-imap/libexec/imapd-ssl.rc start"
      
    stop program "/usr/lib/courier-imap/libexec/imapd-ssl.rc stop"
      
    if failed host 127.0.0.1 port 993 type TCPSSL protocol imap
        then restart
      
    if 2 restarts within 5 cycles
        then timeout 
    POP3 :

    كود PHP:
    check process pop3d with pidfile "/var/run/pop3d.pid"
      
    start program "/usr/lib/courier-imap/libexec/pop3d.rc start"
      
    stop program "/usr/lib/courier-imap/libexec/pop3d.rc stop"
      
    if failed host 127.0.0.1 port 110 protocol POP
        then restart
      
    if 2 restarts within 5 cycles
        then timeout 
    POP3-SSL :

    كود PHP:
    check process pop3d-ssl with pidfile "/var/run/pop3d-ssl.pid"
      
    start program "/usr/lib/courier-imap/libexec/pop3d-ssl.rc start"
      
    stop program "/usr/lib/courier-imap/libexec/pop3d-ssl.rc stop"
      
    if failed host 127.0.0.1 port 995 type TCPSSL protocol POP
        then restart
      
    if 2 restarts within 5 cycles
        then timeout 

  2. تشييك بعض الملفات والمجلدات المهمه

كود PHP:
check directory sbin with path "/sbin"
    
if failed permission 755 
      then unmonitor
    
if failed uid 0 
      then unmonitor
    
if failed gid 0 
      then unmonitor

check directory bin with path 
"/bin"
    
if failed permission 755 
      then unmonitor
    
if failed uid 0 
      then unmonitor
    
if failed gid 0 
      then unmonitor

check directory root with path 
"/root"
    
if failed permission 750 
      then unmonitor
    
if failed uid 0 
      then unmonitor
    
if failed gid 0 
      then unmonitor

check file my
.cnf with path "/root/.my.cnf"
   
if failed permission 600 
      then unmonitor
   
if failed uid 0 
      then unmonitor
   
if failed gid 0 
      then unmonitor

check file shadow with path 
"/etc/shadow"
   
if failed permission 600 
      then unmonitor
   
if failed uid 0 
      then unmonitor
   
if failed gid 0 
      then unmonitor 
ملاحظات :
عند قيامك بتفعيل monit عن طريق المتصفح ، تستطيع تنفيذ بعض الاوامر المهمه عن طريق الكوماند لاين مثل :

monit status
monit summary

عند قيامك بالتعديل ، لاتقم باعادة التشغيل ، قم بعمل reload :
monit reload

ان رغبت التاكد من ان ملف الاعدادات لديك سليم قم بتنفيذ الامر :
monit -t
سيقوم باخبارك ان كان ملف الاعداد لديك سليم .

الامثلة اعلاه خاصه بسيرفرات السي بنل ، قم بوضعها في داخل ملفات في المجلد :
/etc/monit.d ويكون اسمها مثلا : apache.conf ، sshd.conf ، لاننا قمنا في ملف الاعداد العام بعمل انكلود للملفات التي تنتهي بـ .conf .

المصادر :
موقع الشركة الرسمي :
http://www.tildeslash.com/monit/
قوقل :
http://www.google.com
صفحة المانيول :
man monit

خاتمة :
الموضوع يحمل اكثر مما ذكرت ، تغطية الموضوع بتفاصيل تقنية متقدمه يعتمد على نقاش الاعضاء وتبادلهم للخبرات .

طلب :
الله وحده يعلم قد ايش انا اتألم في اليوم والليله ... وقد ايش اخذ الموضوع مني كجهد .. ان اعجبك الموضوع واحسست باني قد افدتك بشيء ما ، ارجو ان تردد لي :
اللهم انه عبدك وبه املك فاجعل الشفاء في جسده واليقين في قلبه والنور في بصره والشكر في صدره .

للجميع التحية ،
علي حمد ،
أبعاد المعلومات ،
قسم الاستضافة .






التوقيع
علي حمد
ابعاد المعلومات لخدمات الويب المتكاملة

  #21  
قديم 30-08-2008, 12:56 PM
sosn sosn غير متصل
عضو
 
تاريخ التسجيل: Aug 2008
مشاركة: 10
مستوى تقييم العضوية: 0
sosn is on a distinguished road
الافتراضي

الف شكر اخوي علي حمد ولي تجربة وعودة اذا واجهت مشاكل ..


جزاك الله الف خير ومبارك عليكم شهر رمضان





  #22  
قديم 03-09-2008, 11:40 PM
ماهر العاني ماهر العاني غير متصل
عضو
 
تاريخ التسجيل: Aug 2008
مشاركة: 10
مستوى تقييم العضوية: 0
ماهر العاني is on a distinguished road
الافتراضي

مشكور يا اخي على المعلومات القيمه





  #23  
قديم 07-09-2008, 01:01 AM
AhmadASG AhmadASG غير متصل
عضو
 
تاريخ التسجيل: Sep 2004
المدينة: Jeddah
مشاركة: 232
مستوى تقييم العضوية: 20
AhmadASG is on a distinguished road
إرسال رسالة عبر MSN إلى AhmadASG
الافتراضي

كلمة مبدع قليلة في هالموضوع اللي مفروض ينشر في كل المنتديات المتخصصه ويترجم حتى لبساطته وسهولة تطبيقه للجميع ... من اول ماقرات الموضوع اجبرتني اني ادخل وارد مع ان العضويه لم تستخدم لاكثر من سنه

فجزاك الله كل خير على الموضوع المتكامل فانت من القلائل اللي طبق الحديث النبوي الشريف "لا خير في كاتم العلم"
اللهم انه عبدك وبه املك فاجعل الشفاء في جسده واليقين في قلبه والنور في بصره والشكر في صدره

الا على فكرة انا مو متابع مره لهالمجال وتقدر تقول توي مبتدا ومنجذب للابنتو ... فهل طلع اصدار له

وتعال كل يوم

اخوك
احمد






التوقيع
The Best Things In Life Are Free
  #24  
قديم 11-09-2008, 01:20 AM
كافي عذاب كافي عذاب غير متصل
عضو
 
تاريخ التسجيل: May 2006
المدينة: هكركوز الكويت
مشاركة: 345
مستوى تقييم العضوية: 18
كافي عذاب is on a distinguished road
وسام الويب البرونزي 
عدد الأوسمة: 1 (المزيد ...)
الافتراضي

كل الشكر والتقدير لك حبي






التوقيع
KuwaiT G3 101
AlGme3.coM
  #25  
قديم 16-09-2008, 02:54 AM
LinuxDuties LinuxDuties غير متصل
عضو
 
تاريخ التسجيل: Sep 2008
مشاركة: 14
مستوى تقييم العضوية: 0
LinuxDuties is on a distinguished road
الافتراضي

مشكووووووووووووور





  #26  
قديم 17-10-2008, 10:01 PM
سلطـ الوفاء ـان سلطـ الوفاء ـان غير متصل
عضو
 
تاريخ التسجيل: Jul 2007
المدينة: الكمبيوتر والأنترنت
مشاركة: 55
مستوى تقييم العضوية: 17
سلطـ الوفاء ـان is on a distinguished road
إرسال رسالة عبر ICQ إلى سلطـ الوفاء ـان إرسال رسالة عبر  AIM إلى سلطـ الوفاء ـان إرسال رسالة عبر MSN إلى سلطـ الوفاء ـان إرسال رسالة عبر Yahoo إلى سلطـ الوفاء ـان إرسال رسالة عبر  Skype إلى سلطـ الوفاء ـان
الافتراضي

الله يجزاك خير ويرحم والديك






التوقيع
سبحان الله وبحمده سبحان الله العظيم
  #27  
قديم 17-10-2008, 11:17 PM
الصورة الشخصية لـ Mustafa Albazy
Mustafa Albazy Mustafa Albazy غير متصل
مصطفى البازي
 
تاريخ التسجيل: Mar 2004
المدينة: المملكة المتحدة - لندن
مشاركة: 1,558
مستوى تقييم العضوية: 10
Mustafa Albazy is on a distinguished road
وسام المشرف المميز في الويب العربي وسام الويب البرونزي وسام الويب الفضي وسام الويب الذهبي 
عدد الأوسمة: 4 (المزيد ...)
الافتراضي

برنامج قوي فعلاً جزاك الله خيراً أخي علي حمد......






التوقيع
  #28  
قديم 29-10-2008, 05:51 AM
الصورة الشخصية لـ ServGroups.Com
ServGroups.Com ServGroups.Com غير متصل
عضو
 
تاريخ التسجيل: Apr 2007
مشاركة: 629
مستوى تقييم العضوية: 18
ServGroups.Com is on a distinguished road
إرسال رسالة عبر MSN إلى ServGroups.Com إرسال رسالة عبر Yahoo إلى ServGroups.Com إرسال رسالة عبر  Skype إلى ServGroups.Com
الافتراضي

بارك الله فيك على هذا المجهود العظيم
بالتوفيق اخى






التوقيع
إسم الشركة : سيرف جروبس لخدمات الويب
صاحب الشركة : احمد ناصر ابراهيم
خدمات الشركة : استضافة - ريسلرات - سيرفرات - دعم فنى - راديو - رسائل - ريسلر نطاقات - ترخيصات منتديات
مقر الشركة : 37 شارع الامن الغذائى . اعلى توتة للايس كريم . الدور الرابع .... الزقازيق - محافظة الشرقية - مصر
بريد الشركة : sales1@servgroups.com
هاتف الشركة : 0552338993
جوال الشركة : 0128313053 - 0106727577
روابط الشركة : www.servgroups.com
خانه إضافيه : خبرة 4 اعوام فى مجال تطوير الويب
  #29  
قديم 18-11-2008, 09:54 PM
sfadli sfadli غير متصل
عضو
 
تاريخ التسجيل: Sep 2005
مشاركة: 6
مستوى تقييم العضوية: 0
sfadli is on a distinguished road
الافتراضي

ماشاء الله تبارك الله

شرح رائع جداً .. زادك الله ووفقك لما يحب ويرضى





  #30  
قديم 01-12-2008, 09:30 AM
sa7m sa7m غير متصل
عضو
 
تاريخ التسجيل: Nov 2008
مشاركة: 6
مستوى تقييم العضوية: 0
sa7m is on a distinguished road
الافتراضي

مشكور وتسلم

وفعلاً هذا البرنامج غني عن التعريف ولا يتغني عنه اي سيرفر





  #31  
قديم 17-12-2008, 08:12 AM
JeddahBikers JeddahBikers غير متصل
عضو
 
تاريخ التسجيل: Apr 2007
المدينة: Jeddah
مشاركة: 127
مستوى تقييم العضوية: 17
JeddahBikers is on a distinguished road
إرسال رسالة عبر  AIM إلى JeddahBikers إرسال رسالة عبر MSN إلى JeddahBikers إرسال رسالة عبر Yahoo إلى JeddahBikers
الافتراضي

يعطيك الف عافيه كفيت و وفيت






  #32  
قديم 19-12-2008, 09:42 PM
electricien electricien غير متصل
عضو
 
تاريخ التسجيل: Dec 2008
مشاركة: 6
مستوى تقييم العضوية: 0
electricien is on a distinguished road
الافتراضي

تسلم حبيبي الغالي





  #33  
قديم 26-12-2008, 03:42 AM
صالح السبيعي صالح السبيعي غير متصل
عضو
 
تاريخ التسجيل: Oct 2006
مشاركة: 10
مستوى تقييم العضوية: 0
صالح السبيعي is on a distinguished road
الافتراضي

جزاكم الله خير





  #34  
قديم 26-12-2008, 03:53 AM
صالح السبيعي صالح السبيعي غير متصل
عضو
 
تاريخ التسجيل: Oct 2006
مشاركة: 10
مستوى تقييم العضوية: 0
صالح السبيعي is on a distinguished road
الافتراضي

جزاكم الله خير





  #35  
قديم 29-12-2008, 06:08 PM
المعروف المعروف غير متصل
عضو
 
تاريخ التسجيل: Jul 2005
مشاركة: 513
مستوى تقييم العضوية: 20
المعروف is on a distinguished road
إرسال رسالة عبر MSN إلى المعروف
وسام الويب البرونزي وسام انفنتي 
عدد الأوسمة: 2 (المزيد ...)
الافتراضي

لك مني كل التحية والتقدير يا استاذ علي ،،

مجهود تشكر عليه في الحقيقة ،،

تقبل مروري وردي ،،

تحياتي لك
المعروف
http://www.m3rof.com






التوقيع

فاكهة السماء ـ تصميم إستايلات إنفنتي

http://www.sky-fruit.com

تذوق أحلامك
  #36  
قديم 11-01-2009, 10:05 PM
شركة الصحراء شركة الصحراء غير متصل
عضو
 
تاريخ التسجيل: Nov 2006
مشاركة: 83
مستوى تقييم العضوية: 18
شركة الصحراء is on a distinguished road
الافتراضي

مشكور على الموضوع الرائع

و لكن هل البرنامج مجاني ام مدفوع ؟

ارجو منك الرد و شكرا






التوقيع
هاتف الشركة:
- من داخل الدانمارك: 26516939
- من خارج الدانمارك: 004526516939
www.desertservers.net
msn@desertservers.net
  #37  
قديم 20-01-2009, 05:23 PM
belsemtech.info belsemtech.info غير متصل
عضو
 
تاريخ التسجيل: Nov 2008
مشاركة: 34
مستوى تقييم العضوية: 0
belsemtech.info is on a distinguished road
الافتراضي

فعلا برنامج لا غنى عنه





  #38  
قديم 23-01-2009, 11:35 AM
ZADIP ZADIP غير متصل
عضو
 
تاريخ التسجيل: Aug 2008
مشاركة: 6
مستوى تقييم العضوية: 0
ZADIP is on a distinguished road
الافتراضي

شكرا لك اخي الكريم على ابداعاتك





  #39  
قديم 26-01-2009, 01:07 PM
Algerianhost.com Algerianhost.com غير متصل
عضو
 
تاريخ التسجيل: Apr 2008
المدينة: Arab we talk
مشاركة: 14
مستوى تقييم العضوية: 0
Algerianhost.com is on a distinguished road
إرسال رسالة عبر MSN إلى Algerianhost.com
الافتراضي

جزاكم الله خيرا






التوقيع
إسم الشركة: إستضافة الجزائر
خدمات الشركة : إستضافة - ريسيلر - تصميم - دعم فني
: مقر الشركة : الجزائر
:هاتف الشركة : ( 0021343381364 )- الجـــــوال : 00213554017864
بريد الشركة : webmaster@algerianhost.com
روابط الشركه : www.algerianhost.com
الدعم الفني :http://support.algerianhost.com
  #40  
قديم 27-01-2009, 07:27 PM
HARBI HARBI غير متصل
عضو
 
تاريخ التسجيل: Nov 2006
مشاركة: 26
مستوى تقييم العضوية: 0
HARBI is on a distinguished road
الافتراضي

بارك الله فيك وكثر الله من امثالك






التوقيع
لا اله الا الله
موضوع مغلق



خيارات الموضوع
طريقة العرض

قوانين المشاركة
لا يمكنك إضافة موضوع جديد
لا يمكنك الرد على المواضيع
لا يمكنك إضافة مرفقات
لا يمكنك تعديل مشاركاتك

كود vB متاح
كود [IMG] متاح
كود HTML مغلق
إنتقل إلى


جميع الأوقات بتوقيت مكة المكرمة. الساعة الآن » 10:49 PM.

Powered by vBulletin
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


 
 »  خدمات البرمجة   »  رئيسية الدليل
  »  خدمات التصميم   »  الأمن والحماية
  »  الدعاية والتسويق
  »  الدعم والتطوير
  »  الشركات الرسمية
  »  حجز دومينات
  »  خدمات الإستضافة
 
 
  »  مكتبة الإستايلات   »  رئيسية المكتبة
  »  أكواد برمجية   »  أدوات الويب ماسترز
  »  مكتبة الهاكات   »  أدوات المصممين
  »  سكربتات متنوعة
  »  مجلات إلكترونية
  »  بلوكات متنوعة
  »  ثيمات مختلفة
 
 

صحيفة متخصصة في متابعة أخبار وجديد الإنترنت العربي
والحوارات الصحفية ومعلومات تقنية متنوعة .

   
 
 

للتواصل مع فريق عمل الويب العربي
يمكنك ذالك من خلال مركز الدعم والمساندة.

 الدعم الفني |  اعتماد العضويات |  قوانين الإنتساب |  إتفاقية الإستخدام |  أهداف الويب العربي |  دليل الشركات |  مكتبة الويب |  صحيفة الويب العربي |  الرئيسية