منتديات عربكو التكنولوجي  

العودة   منتديات عربكو التكنولوجي > اخبار التقنية - الكمبيوتر العام - التصميم والجرافيك > منتدى التصميم والجرافيكس والفوتوشوب

موضوع مغلق
 
LinkBack أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 10-02-2008, 08:31 AM
مدير عام
 
تاريخ التسجيل: Oct 2015
المشاركات: 20,804
افتراضي شرح مونيت 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

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

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

المصدر : مطور
موضوع مغلق

الكلمات الدلالية (Tags)
الفتوشوب, برنامج, تعليم, photoshop, كتاب

أدوات الموضوع
انواع عرض الموضوع

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

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
كتاب تعليم الفيجوال بيسك بالعربي وبكل بساطة admin منتدى تقنية لغات البرمجة 27 06-07-2011 09:01 PM
تحميل برنامج الفوتوشوب العربي photoshop arabic admin تحميل البرامج الكامله download programs 70 10-12-2010 07:53 PM
كتاب تعليم الشطرنج صدى الهمس العاب الكمبيوتر Computer Games والقسم العـام 12 08-02-2010 11:03 AM
كتاب تعليم الفوتوشوب PhotoShop رائع وسهل وكامل admin منتدى التصميم والجرافيكس والفوتوشوب 1 11-17-2008 05:59 AM
كتاب تعليم الجافا بالغة العربية FINESKY منتدى تقنية لغات البرمجة 1 11-09-2008 05:26 PM


الساعة الآن 11:14 PM


Powered by vBulletin® Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1 TranZ By Almuhajir