PDA

مشاهدة نسخة كاملة : [شرح] : Monit لمراقبة السيرفرات


Ali Hamad
06-08-2008, 08:38 PM
بسم الله الرحمن الرحيم

الموضوع :

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

اهداء :

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

مقدمة :

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

الحقوق :

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

تنبيه :

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

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

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

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


تنصيب البرنامج
اعداد البرنامج
اعداد Monit للعمل عن طريق المتصفح
تطبيق لاعدادات البرنامج لكي يعمل مع cPanel


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

متطلبات عمل البرنامج :
لكي يعمل البرنامج لابد من توفر البكجات التالية في السيرفر :
flex , openssl-devel, byacc
للتاكد من توفر هذه البكجات في السيرفر الخاص بك ، قم بتنفيذ الامر :
rpm –qa | egrep 'flex|byacc|openssl-devel'
ان تم عرض ثلاث بكجات تحمل اسماء البكجات اعلاه ، والا تستطيع تنصيبهم عن طريق الامر :
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 :

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

Redhat Enterprise Linux Server 5:

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

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

Fedora 7 :

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

بعد ان تنتهي من تحميل البكج المناسب للسيرفر الخاص بك ، قم بالتاكد من توقيع ال MD5 عن طريق الامر :
md5sum –c monit.*.md5
يفترض ان تكون النتيجة تحمل اسم البكج ملحوقة بكلمة OK .
الان ، قم بتنصيب البرنامج عن طريق الامر :
rpm –Uhv monit.*.rpm


عن طريق السورس كود للبرنامج :
ان لم تحبذ الطريقة اعلاه ، يمكنك تنصيب البرنامج يدويا كالتالي :


انشاء مجلد لحفظ الملفات :
mkdir /usr/local/src/monit
الانتقال الى المجلد :
cd /usr/local/src/monit
جلب الملفات وهي ملفين ، الاول يحتوي على السورس كود الخاص بالبرنامج ، والثاني يحتوي على توقيع ال md5 :
wget -c http://www.tildeslash.com/monit/dist/monit-4.10.1.tar.gz
wget -c http://www.tildeslash.com/monit/dist/monit-4.10.1.tar.gz.md5
قم بالتاكد من توقيع ال md5 عن طريق الامر :
md5sum -c monit-4.10.1.tar.gz.md5
يفترض ان تكون النتيجة :
monit-4.10.1.tar.gz: OK
فك الضغط عن الملف :
tar -xzvf monit-4.10.1.tar.gz
قم بالانتقال الى المجلد ا لذي قمنا بفك الضغط عنه:
cd monit-4.10.1
قم بعمل تعديل بسيط فائدته تغيير اسم ملف الكونفيق الى monit.conf بدلا من monitrc وايضا تفعيل الانكلود للمجلد الذي سنقوم بانشائه لاحقا :
perl -pi.orig -e 's|\bmonitrc\b|monit.conf|' monitor.h
perl -pi.orig -e 's|^#\s+(include .*)$|$1|' monitrc
الان ، نقوم باستدعاء سكربت الكونفيقيور كالتالي :
./configure --with-ssl-lib-dir=/usr/lib --bindir=/usr/bin --sysconfdir=/etc
ان كان كل شيء على مايرام ، قم بتنفيذ الامرين :
make && make install
نقوم بانشاء ملف init الخاص بتشغيل البرنامج بوضع المحتوى التالي في ملف monit في داخل مجلد init.d :
vi /etc/init.d/monit
نقوم بوضع المحتوي التالي فيه :
#!/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"

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

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

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

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

restart() {
stop
start
}

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

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

exit $RETVAL
نقوم بتغيير تصريح الملف :
chmod 0755 /etc/init.d/monit
نقل ملف الكونفيق :
cp -v monitrc /etc/monit.conf
chmod 600 /etc/monit.conf
chown root:root /etc/monit.conf

انشاء مجلد سنفحظ فيه الاعدادت وايضا مجلد سيكون هو الهوم دايروكتري للبرنامج :
mkdir /etc/monit.d/
chmod 755 /etc/monit.d
mkdir /var/lib/monit
اضافة اسم المستخدم الخاص بالبرنامج :
/usr/sbin/useradd -M -r -d /var/lib/monit -s /bin/sh -c "monit daemon" monit
اضافة البرنامج الى البرامج التي يتم تشغيلها اليا عند اعادة تشغيل السيرفر :
chkconfig monit on


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

الاعداد :

قمت بتقسيم هذه المرحلة الى قسمين :

اعداد البرنامج ككل .
الاعدادات الاضافية.


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

التعديلات كلها ستكون على ملف /etc/monit.conf وسيكون هو المكان الرئيسي لحفظ الاعدادات العامة للبرنامج Global Setting :


تكرار عمل البرنامج ، بمعنى كل كم ثانية تريد ان يقوم البرنامج بالتشييك . في حالتنا اخترت 5 دقائق . اذن نقوم بكتابة :

set daemon 300


ملف اللوج الخاص بالبرنامج ، في هذا الملف سيتم حفظ سجلات البرنامج . اذن نقوم بكتابة :

set logfile /var/log/monit.log


وضع ضيغة معينة لرسالة الايميل التي تريد ان تصلك عند حاجة البرنامج لاخبارك بشيء ما . اذن نقوم بكتابة :


set mail-format {
from: monit@hostName
subject: $SERVICE $EVENT at $DATE
message:
Action : $ACTION
Service : $SERVICE
Date : $DATE
Server : $HOST
Problem Description : $DESCRIPTION

Thank you,
}


الايميل الخاص بمدير السيرفر او مدراء السيرفر . الى هذه الايميلات سيتم ارسال التنبيهات والتبليغات . اذن نقوم بكتابة :

set alert you@domain.tld
set alert you2@domain.tld


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


set mailserver localhost


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


include /etc/monit.d/*.conf

اذن الشكل النهائي لملف الكونفيق /etc/monit.conf حتى الان :

# time
set daemon 300
# log file
set logfile /var/log/monit.log
# mail format
set mail-format {
from: monit@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

ثانيا : الاعدادات الاضافية :

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


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



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

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

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 دقيقه . سنقوم بكتابة التالي في اخر الاعداد اعلاه :

if 5 restarts within 4 cycles
then timeout

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

if children > 300
then restart
if cpu > 40%
then restart
if totalmem > 500.0 MB
then restart
if loadavg(10min) greater than 10
then restart

الشرح :
السطر الاول : اذا كان عدد العمليات الجزئية ( children ) الذين يتبعون للعملية الام ( parent) اكثر من 300 ، قم باعادة التشغيل .
السطر لثالث : اذا كان استهلاك العملية من المعالج اكثر من 40 % من نسبة اشغال المعالج ، قم باعادة التشغيل .
السطر الخامس : اذا كان الكمية المستهلكة من الرام لهذه العمليات كلها ( الشلدرن والبارنت ) اكثر من 500 ميجا ، قم باعادة التشغيل .
السطر السابع : اذا كان الضغط على السيرفر لمدة 10 دقائق اكبر من 10 قم باعادة تشغيل الاباتشى .

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

ج4 : نعم :
نقوم بكتابة الاعداد :
if cpu > 40% for 2 cycles
then restart

الشرح : السطر الاول : يختبر نسبة الاستهلاك لمدة دورتين ( كل دورة 5 دقائق ، قمنا بتحديد ذلك في الاعدادات الرئيسيه ) قم باعادة التشغيل .

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

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

check file su with path "/bin/su"
if failed checksum
then alert

الشرح :
السطر الاول : قمنا باخباره اننا نريد مراقبة ملف باسم su ومساره هو /bin/su .
السطر الثاني : الشرط ، ان اختلف توقيع ال md5 ، قم بالتبليغ .

س6: هل استطيع مراقبة حجم بارتشن معين في السيرفر بحيث ان وصل حجمه اعلى من 90% يتم ارسال تنبيه ؟
ج6: نعم :

check device backup with path "/dev/sdb1"
if space usage > 90%
then alert

الشرح :
السطر الاول : اخبرنا باننا نريد مراقبة ديفايس باسم backup ومساره /dev/sdb1 .
السطر الثاني : الشرط : اذا كان حجم المستهلك فيه اكبر من 90 %
السطر الثالث : قم بالتبليغ .

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

ج7 : نعم :

check system myhost.mydomain.tld
if loadavg (15min) > 10
then exec "/bin/myScript.sh"

س8 : عرفنا في الاعلى اني استطيع مراقبة حجم بارتشن معين ، لكن هل ستطيع مراقبة حجم ملف معين ؟
ج8 : نعم :

check file squid.log with path "/var/log/squid.log"
if size > 500 MB
then alert

س9: هل استطيع مراقبة تصريح مجلد معين وملكيته ؟

ج9 : نعم :

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
نقوم بكتابة القانون :

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: نعم :

check system myhost.mydomain.tld
if loadavg (1min) > 10
then alert
if loadavg (5min) > 7 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 :
باضافة التالي :

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 مع امثلة جاهزه :



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

الاباتشى :

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

المايسقول :

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 :

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 :

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 :

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 :

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 :

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 :

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 :

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 :

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



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


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

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

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

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

الصريح جداً
07-08-2008, 12:11 AM
جزاك الله خير .. فعلاً برنامج قوي جداً

أسأل الله لك التوفيق

تشآآآو

x35
07-08-2008, 01:16 AM
الله يجزاك خير يابو حمد ، موضوع متعوب عليه بصراحه

والله يشفيك ويمن عليك بالصحه والعافيه ، شد حيلك

فيصل الشهري
07-08-2008, 02:35 AM
موضوع قوي وبيستفيد منه الكثير

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

اخوك فيصل

Ali Hamad
07-08-2008, 05:14 AM
جزاك الله خير .. فعلاً برنامج قوي جداً

أسأل الله لك التوفيق

تشآآآو

حياك الله يالغالي ... وانا اتمنى لك التوفيق ،

علي حمد ،

Ali Hamad
07-08-2008, 05:15 AM
الله يجزاك خير يابو حمد ، موضوع متعوب عليه بصراحه

والله يشفيك ويمن عليك بالصحه والعافيه ، شد حيلك

الله يسمع منك ، اللهم امين يارب العالمين .
شكرا لك على مرورك ،

علي حمد ،

Ali Hamad
07-08-2008, 05:16 AM
موضوع قوي وبيستفيد منه الكثير

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

اخوك فيصل

حياك الله يافيصل ، اللهم امين ..

شكرا لك على تواجدك ،

lazezo
08-08-2008, 08:25 PM
شرح رائع جدا وواااااااااافى

مشكور حبيب قلبى على الشرح

والى الامام

Ali Hamad
08-08-2008, 08:28 PM
شرح رائع جدا وواااااااااافى

مشكور حبيب قلبى على الشرح

والى الامام

الغالي :

حياك الله ، وشكرا لك على مرورك .

علي حمد ،

Orango
09-08-2008, 02:42 PM
اللهم انه عبدك وبه املك فاجعل الشفاء في جسده واليقين في قلبه والنور في بصره والشكر في صدره .

أستاذنا علي حمد شرح رائع و متعوب عليه و يتضمن كل الجوانب فجزاك الله خير الجزاء على ما تقدمه لإخوانك :)

أسئلة:
1. هل تقدم برامج Zabbix أو Nagios نفس ما يقدمه Monit ؟
2. عندي نظام ديبياني --في الجهاز الشخصي طبعا :D -- و وجدت شرح لتركيب البرنامج (http://www.howtoforge.com/server_monitoring_with_ munin_monit_debian_etch_p2) و تفعليه للعمل من المتصفح .. هل يمكن تنفيذ جميع المهام التي ذكرتها من المتصفح .. أم لابد في أي حال من سطر الأوامر ؟

أعتذر عن الإطالة و جزاك الله كل خير يا أستاذنا :)

تحياتي

السكربت العربي
09-08-2008, 07:01 PM
اللهم انه عبدك وبه املك فاجعل الشفاء في جسده واليقين في قلبه والنور في بصره والشكر في صدره .

سلمت يالغلا, أكثــر من رائع والبرنــامج قوي جداً ..

بالتوفيق,,
السكربت العــربي.

newi4web
11-08-2008, 08:54 AM
مشكور وبارك الله فيك

Ali Hamad
16-08-2008, 07:38 PM
اللهم انه عبدك وبه املك فاجعل الشفاء في جسده واليقين في قلبه والنور في بصره والشكر في صدره .

أستاذنا علي حمد شرح رائع و متعوب عليه و يتضمن كل الجوانب فجزاك الله خير الجزاء على ما تقدمه لإخوانك :)

أسئلة:
1. هل تقدم برامج Zabbix أو Nagios نفس ما يقدمه Monit ؟
2. عندي نظام ديبياني --في الجهاز الشخصي طبعا :D -- و وجدت شرح لتركيب البرنامج (http://www.howtoforge.com/server_monitoring_with_ munin_monit_debian_etch_p2) و تفعليه للعمل من المتصفح .. هل يمكن تنفيذ جميع المهام التي ذكرتها من المتصفح .. أم لابد في أي حال من سطر الأوامر ؟

أعتذر عن الإطالة و جزاك الله كل خير يا أستاذنا :)

تحياتي

الله يجزاك الف خير يالغالي ... واليك اجابه على اسالتك :

1) لامقارنه اطلاقا ، نيقوس وزابيكس للحلول المتقدمه ، مونيت لسيرفر او سيرفرين ولايقارن بهم اطلاقا .
2) نعم يمكنك ذلك ، ولكن الاعدادات لابدد ان تكون من سطر الاوارم .

انا احييك على استخدام الدبيان ، ولكن ادعوك لتجربة فيدورا 9 .. لا اعتقد ان لها منافس حاليا كتوزيعه سطح مكتب .

علي حمد ،

Ali Hamad
16-08-2008, 07:39 PM
اللهم انه عبدك وبه املك فاجعل الشفاء في جسده واليقين في قلبه والنور في بصره والشكر في صدره .

سلمت يالغلا, أكثــر من رائع والبرنــامج قوي جداً ..

بالتوفيق,,
السكربت العــربي.

الله يسلمك ،الله يجزاك الخير .. شرفني حضورك .

علي حمد ،

Ali Hamad
16-08-2008, 07:39 PM
مشكور وبارك الله فيك

الله يزيك فضل ... شرفني مرورك واتمنى لك الاستفادة .

علي حمد ،

علي ناصر
16-08-2008, 08:09 PM
الف شكر على هذا الجهد الطيب

Ali Hamad
17-08-2008, 03:43 AM
الف شكر على هذا الجهد الطيب

تستاهل يابو ناصر الطيب ، وشكرا لك على مرورك .

علي حمد ،

almsha3er
20-08-2008, 09:29 AM
جزاك الله خير .. فعلاً برنامج قوي جداً

أسأل الله لك التوفيق

حمودي..
22-08-2008, 09:11 AM
ج ـزاك الله خير

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

boob11
29-08-2008, 09:14 AM
شكرا استاذ على :) .. وكل عام وانت بخير ..

مع التحيه
bad3r

sosn
30-08-2008, 12:56 PM
الف شكر اخوي علي حمد ولي تجربة وعودة اذا واجهت مشاكل ..


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

ماهر العاني
03-09-2008, 11:40 PM
مشكور يا اخي على المعلومات القيمه

AhmadASG
07-09-2008, 01:01 AM
كلمة مبدع قليلة في هالموضوع اللي مفروض ينشر في كل المنتديات المتخصصه ويترجم حتى لبساطته وسهولة تطبيقه للجميع ... من اول ماقرات الموضوع اجبرتني اني ادخل وارد مع ان العضويه لم تستخدم لاكثر من سنه :(

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

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

وتعال كل يوم :)

اخوك
احمد

كافي عذاب
11-09-2008, 01:20 AM
كل الشكر والتقدير لك حبي

LinuxDuties
16-09-2008, 02:54 AM
مشكووووووووووووور

سلطـ الوفاء ـان
17-10-2008, 10:01 PM
الله يجزاك خير ويرحم والديك

Mustafa Albazy
17-10-2008, 11:17 PM
برنامج قوي فعلاً جزاك الله خيراً أخي علي حمد......

ServGroups.Com
29-10-2008, 05:51 AM
بارك الله فيك على هذا المجهود العظيم
بالتوفيق اخى

sfadli
18-11-2008, 09:54 PM
ماشاء الله تبارك الله

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

sa7m
01-12-2008, 09:30 AM
مشكور وتسلم

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

JeddahBikers
17-12-2008, 08:12 AM
يعطيك الف عافيه كفيت و وفيت

electricien
19-12-2008, 09:42 PM
تسلم حبيبي الغالي

صالح السبيعي
26-12-2008, 03:42 AM
جزاكم الله خير

صالح السبيعي
26-12-2008, 03:53 AM
جزاكم الله خير

المعروف
29-12-2008, 06:08 PM
لك مني كل التحية والتقدير يا استاذ علي ،،

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

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

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

شركة الصحراء
11-01-2009, 10:05 PM
مشكور على الموضوع الرائع

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

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

belsemtech.info
20-01-2009, 05:23 PM
فعلا برنامج لا غنى عنه

ZADIP
23-01-2009, 11:35 AM
شكرا لك اخي الكريم على ابداعاتك

Algerianhost.com
26-01-2009, 01:07 PM
جزاكم الله خيرا

HARBI
27-01-2009, 07:27 PM
بارك الله فيك وكثر الله من امثالك

احمد الحربي
27-01-2009, 10:30 PM
الله يحفظك يالغالي ويبارك فيك

خالد الغنامي
29-01-2009, 08:50 AM
بارك الله فيك.....

amiduon
06-02-2009, 04:09 PM
مشكور يا معلم

amiduon
06-02-2009, 04:10 PM
موضوع مميز

عبد الغني أسامة
23-02-2009, 02:53 PM
شكرا بارك الله فيك

هاوي برامج نت
12-05-2009, 08:46 AM
شكرا اخي وجزاك الله خير

منتدى عقد وسوار
14-11-2009, 05:38 PM
يعطيك الف عافيه ياغالي

وعساكم على القوه

معلومات هوست
30-11-2009, 09:03 AM
موضوع متميز بجد وشرحك واضح
والللة يجزيك الف الف خير
اخوي

مـــوج
14-02-2010, 11:18 AM
ماقصرت يعطيك العافيه

kkk1
17-02-2010, 03:08 PM
جزاك الله خير اخي الكريم

oman-share.com
02-03-2010, 04:42 PM
مشكور وجزاك الله الف خير،،