Friday, January 20, 2012

Remote Monitoring - RMON

موضوع اليوم هو عبارة عن واحدة من ال troubleshooting tools التى يمكن لل network admin الاعتماد عليها فى مراقبة ال network و قبل البدء فى قراءة الموضوع احب ان انوه انه يجب عليك فهم ال SNMP concepts مثل ال NMS , MIB وغيرها من ال terms ويوجد العديد من الشروحات التى تناولت ال SNMP بالتفصيل باللغة العربية والانجليزية تستطيع البحث عنها ...


كما نعلم ان هنالك اكثر من tool او technique لعمل مراقبة لل network مثل ( SNMP , NETFLOW , SYSLOG Messages ,EEM,RMON وغيرها ....) و لكن فى تدوينة اليوم سوف اتناول بالشرح ال Remote monitoring او كما هو معروف بال RMON


  يستخدم ال  RMON فى ال small invironment وليس فى ال networks الكبيرة و المعقدة وذلك نظرا لان طريقة اعدادة تعتمد فى المقام الاول على ال commands وال configurations وتكون هذه ال configurations مخصصة لعمل check على condition وحيد فى كل مرة وهذا يعنى انه فى حالة مراقبة اكثر من condition او entity محددة سيكون هنالك كمية كبيرة من ال commands , وبذلك ستكون هنالك صعوبة فى ايجاد اى error او فى ال  troubleshooting process ....وعلى الجانب الاخر هنالك العديد من ال managements suites المخصصة للتعامل مع ال networks المعقدة و الكبيرة و التى تغنى عن الRMON ولكنها ستكون بالتاكيد مكلفة   .
يعتمد ال RMON على 2 Componenets رئيسيتين فى عمله :


1- ال ALARM :
وهو ال action او ال condition اللى هيحصل وانا بصفتى Admin مهتم وحابب اعرفه مثل ( CPU utilization , Memory usage , Interface utilization , ....  )


2- ال EVENT :
وهو ال action اللى هيتخذ فى حالة حدوث ال alarm وهذا ال action يكون عباره عن message بتتبعت لل NMS ومن خلال ال NMS هقدر اعمل monitoring لل messages دى و اتخذ الاجراء المناسب .


كما ذكرنا ان ال ALARM هو عبارة عن ال condition فيجب تحديد شىء يسمى ال MIB SAMPLING اثناء عمل configure لل ALARM ويوجد نوعين من ال SAMPLING ويتم تحديد اى نوع منهما سوف نستخدم بناء على نوع ال condition :
1- DELTA SAMPLING :
فى هذا النوع من ال sampling بيتم ايجاد الفرق بين القيمة الحالية و اخر مرة عملت sampling فيها ... فلو منذ ساعة قمت بتحديد ان ال alarm اللى هستخدمه هو عدد ال packets التى تخرج من interface معين فلو حصل sampling وتم تحديد عدد هذه ال Packets وكان 1000 packets والان قمت بعمل sampling من النوع delta و كانت عدد ال packets التى خرجت من هذا الinterface حتى الان هو 2000 packets فال delta sampling هياخد( الفرق بين عدد ال packets الان - عدد ال packet فى اخر sampling )
وبذلك سيكون الناتج 2000-1000=1000 packet فى الساعة
ويستخدم هذا النوع من ال sampling فى عمل sampling لل variables التى قيمتها تكون فى تصاعد مستمر مثل عدد ال packets التى تخرج من interface محدد فغير المعقول انها ستقل مع الزمن وايضا مثل عدد ال bytes او ال packets التى تدخل عبر interface محدد..وفعلا الكلام دا منطقى لانى لو عايز اعمل monitoring لقيمة فى تصاعد مستمر هكون مهتم بتحديد عدد ال packets فى زمن محدد الا تزيد عن قيمة محددة و ال delta sampling هيتيح دا .
2-ABSOLUTE SAMPLING :
يستخدم هذا النوع من ال sampling مع ال variables او ال conditions التى تزداد قيمتها وتقل مع الزمن مثل ال MEMORY USAGE , CPU Utilization فمثلا احب ان يتم اخبارى عما اذا تخطت ال CPU Utilization  قيمة ال 95%.. و هذا منطقى فلن استفيد من تطبيق ال delta sampling فى تحديد مثل هذا ال condition .


قبل ان نتطرق لل configurations الخاصة بال RMON لابد ان نحدد ال MIB Entity الخاصة بال cndition المراد عمل monitoring له .... و لعرض ال MIB Entities سوف نستخدم :


ROUTER#SHOW SNMP MIB

ولنفترض اننا نريد عمل monitoring لل numbers of packets اللى خارجة من interface معين وليكن S3/0 فهنختار ال MIB Object اللى اسمها IfOutUcastPkts ويمكنك البحث عن ال OIDs الخاصة بال MIB و معرفة خصائص ووظيفة كل منها و هذا ال link يعطيك معلومات تفصيلية عن كل OID .. 
بعد ما توصلنا لل Object name اللى محتاجنها دلوقتى عايزين نشوف ال index الخاص بال interfaces عشان نحدد ال S3/0 و دا من خلال ال command الاتى :
اضغط على الصورة لكى تظهر بالحجم الاصلى

























وكما نرى ان ال S3/0 ال index الخاصة بيه هو 6 و ب\لك سيكون ال Object ID الخاص بال Number of packets الخارجة من ال S3/0 هو IfOutUcastPkts.6     
و سيكون ال configurations النهائية على الشكل التالى :

Router(config)#rmon alarm 1 IfOutUcastPkts.6 60 delta rising-threshold 6000 30 falling-threshold 60 30

وهذه الصورة للتوضيح :
اضغط على الصورة لكى تظهر بالحجم الاصلى

وكما هو موضح اننا استخدمنا ال delta sampling كما وضحنا من قبل ان ال object المراد تتبعها قيمتها فى تزايد مستمر اذا نستخدم ال delta .. يتبقى لنا ان نحدد ما هو ال Event no. 30 و ال Event no. 40 :

Router(config)#rmon event 30 trap CISCO " S3/0 above 6000 PacketsPerMin"q

Router(config)#rmon event 40 trap CISCO " S3/0 below 30 PacketsPerMin"q

وهذا يدل على ان ال event الذى سيحدث هو عمل generate لل traps الموضحة فى حالة اذا تعدى عدد ال packets 6000 فى الدقيقة او كانت اقل من 30 .

بقى لنا ان نحدد الip الخاص بال  NMS و ان نعمل enable لل traps بالضبط كما كنا نستخدمهم فى ال logging & SNMP configurations :

Router(config)#snmp-server host 10.0.0.1 CISCO
Router(config)#snmp-server enable traps

وكما هو موضح لابد من وجود Matching لل Key string فى ال event configurations و فى ال snmp traps command وكما هو موضح اننا استخدمناها فى الحالتين CISCO.


ارجو ان يكون الموضوع كان بسيط ومفهوم.....

2 comments: