صفحة 1 من 3 123 الأخيرةالأخيرة
النتائج 1 إلى 15 من 32

الموضوع: [شرح] : Monit لمراقبة السيرفرات

  1. #1
    عضو نشيط جدا
    تاريخ التسجيل
    May 2005
    المشاركات
    329

    [شرح] : 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

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

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

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







  2. #2


    عليكم السلام ورحمة الله وبركاته

    انتظرت كثير وها انت تاتى بالجمال هذا لا يسعنى الا تثبيته الان لكى تعم الفائدة ولى عودة للنقاش ان شاء الرحمن >>>

    تقبل تحياتى





    __________________
    GNU/Linux system EngineerVps & Dedicated servers & ManagementContact Me On : 00201003338749 or ceo@murabba.comwww.murabba.com

  3. #3
    عضو فعال
    تاريخ التسجيل
    Mar 2005
    المشاركات
    1,482


    موضوع اكثر من رائع

    نورت المنتدى بعد غياب

    اللهم انه عبدك وبه املك فاجعل الشفاء في جسده واليقين في قلبه والنور في بصره والشكر في صدره .
    اللهم انه عبدك وبه املك فاجعل الشفاء في جسده واليقين في قلبه والنور في بصره والشكر في صدره .
    اللهم انه عبدك وبه املك فاجعل الشفاء في جسده واليقين في قلبه والنور في بصره والشكر في صدره .






    __________________

    D0 Th3 B3$T 2B Th3 B3$T !
    L1nux - L1f3 Fr33 0R D13

  4. #4
    عضو فعال جدا
    تاريخ التسجيل
    Feb 2003
    المشاركات
    2,313


    اللهم انه عبدك وبه املك فاجعل الشفاء في جسده واليقين في قلبه والنور في بصره والشكر في صدره .





    __________________
    Be Happy

  5. #5
    عضو فعال
    تاريخ التسجيل
    Mar 2005
    المشاركات
    1,482


    صراحة بعد ما قرأت الموضوع استفدت كتير جدا

    موضوع ممتاز
    وشرح ما علية اى كلام
    واداة جديدة رائعة بمعنى الكلمة ....

    تحياتى واعدوا الله لك بالشفاء ان شاء الله





    __________________

    D0 Th3 B3$T 2B Th3 B3$T !
    L1nux - L1f3 Fr33 0R D13

  6. #6


    لك من القلب

    اللهم انه عبدك وبه املك فاجعل الشفاء في جسده واليقين في قلبه والنور في بصره والشكر في صدره .
    اللهم انه عبدك وبه املك فاجعل الشفاء في جسده واليقين في قلبه والنور في بصره والشكر في صدره .
    اللهم انه عبدك وبه املك فاجعل الشفاء في جسده واليقين في قلبه والنور في بصره والشكر في صدره .







  7. #7


    مشاء الله سلمت يمينك
    بالفعل شرح ممتاز وجاري التجربه ان شاء الله
    بارك الله فيك :nice:






    __________________
    مؤسسة الشرق الاوسط - WwW.East4Serv.CoM ( رسمية )
    سيرفرات-VPS-ريسيلر-استضافة-ديجي شات-دعم فني-تصميم
    مسنجر :sales@east4serv.com
    جوال : 00201112705800
    العنوان : المنصوره مدينة الفردوس شارع مسجد الرحمن

  8. #8
    عضو نشيط جدا
    تاريخ التسجيل
    May 2005
    المشاركات
    329


    عليكم السلام ورحمة الله وبركاته

    انتظرت كثير وها انت تاتى بالجمال هذا لا يسعنى الا تثبيته الان لكى تعم الفائدة ولى عودة للنقاش ان شاء الرحمن >>>

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

    علي حمد ،






  9. #9
    عضو نشيط جدا
    تاريخ التسجيل
    May 2005
    المشاركات
    329


    موضوع اكثر من رائع

    نورت المنتدى بعد غياب

    اللهم انه عبدك وبه املك فاجعل الشفاء في جسده واليقين في قلبه والنور في بصره والشكر في صدره .
    اللهم انه عبدك وبه املك فاجعل الشفاء في جسده واليقين في قلبه والنور في بصره والشكر في صدره .
    اللهم انه عبدك وبه املك فاجعل الشفاء في جسده واليقين في قلبه والنور في بصره والشكر في صدره .
    اللهم امين اللهم امين .. الله يسعدك والنور نورك ياغالي .

    علي حمد ،






  10. #10
    عضو نشيط جدا
    تاريخ التسجيل
    May 2005
    المشاركات
    329


    اللهم انه عبدك وبه املك فاجعل الشفاء في جسده واليقين في قلبه والنور في بصره والشكر في صدره .
    يابعد قلبي يابو ساره .. اللهم امين اللهم امين .
    شكرا لك ،






  11. #11
    عضو نشيط جدا
    تاريخ التسجيل
    May 2005
    المشاركات
    329


    صراحة بعد ما قرأت الموضوع استفدت كتير جدا

    موضوع ممتاز
    وشرح ما علية اى كلام
    واداة جديدة رائعة بمعنى الكلمة ....

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

    الله يسمع منك وشكرا لك على تواجدك ،
    علي حمد ،






  12. #12
    عضو نشيط جدا
    تاريخ التسجيل
    May 2005
    المشاركات
    329


    يابعد قلبي ، اللهم امين ، الله يسمع منك .

    علي حمد ،






  13. #13
    عضو نشيط جدا
    تاريخ التسجيل
    May 2005
    المشاركات
    329


    مشاء الله سلمت يمينك
    بالفعل شرح ممتاز وجاري التجربه ان شاء الله
    بارك الله فيك :nice:
    الله يسلمك ، ممتاز .. اتمنى تجربتك ، وانا جاهز لاي مساعدة باذن الله .

    علي حمد ،






  14. #14


    اخي الكريم
    قمت بتركيب وتم التركيب بدون مشاكل في الاعدادت ولا اي شيء
    لكن عندي سؤال
    اين يتم اضافة هذه القوانين ؟
    في انتظار ردك بارك الله فيك





    __________________
    مؤسسة الشرق الاوسط - WwW.East4Serv.CoM ( رسمية )
    سيرفرات-VPS-ريسيلر-استضافة-ديجي شات-دعم فني-تصميم
    مسنجر :sales@east4serv.com
    جوال : 00201112705800
    العنوان : المنصوره مدينة الفردوس شارع مسجد الرحمن

  15. #15
    عضو نشيط جدا
    تاريخ التسجيل
    May 2005
    المشاركات
    329


    اخي الكريم
    قمت بتركيب وتم التركيب بدون مشاكل في الاعدادت ولا اي شيء
    لكن عندي سؤال
    اين يتم اضافة هذه القوانين ؟
    في انتظار ردك بارك الله فيك
    يامرحبا يالغالي :

    انا افترض انك تتكلم عن الاعدادات الاضافية الخاصه بالسي بنل .
    انا ذكرت في الموضوع :

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

    كود PHP:
    cd /etc/monit.
    تنشا ملف مثلا باسم الاباتشى او اسم تبي بس لازم ينتهي ب .conf :

    كود PHP:
    vi apache.conf 
    بعدها انسخ اللي كتبته بخصوص الاباتشى في الاعلى والصقه ، سوي حفظ للملف .

    الان ، شيك ان كل شيء سليم :

    كود PHP:
    monit -
    اذا طلع لك مافيه مشاكل ، مبروك عليك ، سوي ريلود للبرنامج علشان ياخذ القانون ويبدا يراقبه :

    كود PHP:
    /etc/init.d/monit reload 
    اذا احتجت شيء لايردك الا الكيبورد ،
    علي حمد ،










ضوابط المشاركة

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

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض