nagios2sms



الموديل nagios2sms  هي عبارة عن موديل (او سمئها كما شئت) (plug-in) للـ ناجيوس (nagios) يمكن تركيبها ليتمكن سيرفر الناجيوس من ارسال رسائل الجوال عند حدوث اي عطل او مشكلة في احد اطراف الشبكة التي يقوم سيرفر الناجيوس على مراقبتها. لقد تم انشاء النسخة التجريبية لتقوم بارسال رسائل الجوال عن طريق بوابة موبايلي دبليو اس (mobily.ws) فقط وربما في التحديثات القادمة للموديل يتم دعم بوابات اخرى.
في هذا الاصدار التجريبي لقد تم تطوير الموديل لتقوم بارسال رسائل الجوال عند تغير حالة هوست (host) فقط ، حيث انه لم يتم تطويرها لتقوم بالاعلام عند تغير حالة الخدمات (services).

الاصدار الحالي من الموديل : BETA

الفكرة العامة:

بعد ان يتم تركيب الموديل وضبطها وفق ما هو معمول به فان الموديل سوف تقوم بارسال رسائل الجوال لاي جهة محددة عند تغير حالة اي هوست (host) مثلا خروجة عن الخدمة او عودتة الى الخدمة (down or up).
وهذه الميزة مفيدة جدا لمدراء الانظمة الذين يرغبون باستقبال تقارير عبر الجوال تفيد بخروج احد اطراف الشبكة عن الخدمة او دخوله ثانية. حيث انها ليس من الضروري ان يكون مدير النظام متواجدا امام شاشة الناجبوس لكي يستطيع مراقبة حركة شبكته.

تخيل معي: الساعة الرابعة صباحا اذا خرج احد اطراف الخدمة عن العمل ولم يكن مناوب الشفت الليل يعمل فهل يجب ان تنتظر الى الساعة الثامنة صباحا لتدري عن ذلك؟! :) مع هذه الموديل سوف تدري عن ذلك في الساعة الرابعة وخمس دقائق ، ويتبقى عليك فقط ان تقوم برفع صوت جوالك :) انا مثلا وضعت نغمة مزعجة للرسائل حتى استيقظ اذا حدث خلل ما :).

متطلبات عمل الموديل:

- دعم السيرفر لغة PHP 4.x او PHP 5.x
- عدم حظر السيرفر لدالة fopen و fread كونهما المستخدمات في عملية ارسال رسائل الجوال.
- وجود سيرفر ناجبوس 2.x او 3.x علما بانه تم التجربة على nagios 2.x و nagios 3.x ولم تكن هناك اي مشاكل.
- وجود حساب ارسال رسائل جوال مفعل لدى mobily.ws علما بانه يمكنك الحصول عليه مجانا واضافة عدد من النقاط مجانا عند التسجيل لاول مرة للتجربة عن طريق زيارة موقعهم www.mobily.ws والتسجيل فيه.


كيفية تركيب الموديل على سيرفر الناجيوس:

- في البداية يجب ان تسجل الدخول الى السيرفر الخاص بالناجيوس عن طريق الشل SSH وتسجل الدخول بالمستخدم root
- ومن ثم بعدها نفذ الامر التالي للوصول الى ملفات الناجبوس
cd /usr/local/nagios/libexec/

- ومن ثم بعدها قم على تحميل الموديل من خلال الامر التالي
wget http://tech.di.net.sa/layer3/nag/nagios2sms.tar.gz

- والان يجب عليك فك ضغط الملف الذي تم تحميله عن طريق الامر السابق وذلك عن طريق الامر
tar zxvf nagios2sms.tar.gz

- والان  يجب ان تقوم على تغيير صلاحيات المجلد nagios2sms  حتى يصبح للناجيوس صلاحيات استخدام ملفاته وذلك عن طريق الامر التالي
chown -R nagios:nagiosmt nagios2sms

لاحظ ان nagios هو اسم مستخدم الناجيوس الذي انشئته عند تركيب سيرفر الناجيوس للمرة الاولى ، وكذلك nagiosmt هي اسم مجموعة المستخدمين التي انشئتها عند تركيب سيرفر الناجيوس ، وفي حال كان اسم المستخدم مختلفا او المجموعة مختلفة قم باستبدالها بالمعلومات الصحيحة.

- الان يجب علينا نظبط بوابة ارسال رسائل الجوال ، افتح الملف core.php الموجوج في ملفات الموديل وذلك عن طريق الامر التالي
cd nagios2sms
nano  lib/core.php

سوف تجد في السطر 6 العبارة
$sms_gateway = new mobilyws ( 'user','password' );
استبدل user باسم مستخدم بوابة رسائل الجوال لدى mobily.ws وكذلك استبدل password بكلمة المرور لمستخدم بوابة رسائل الجوال لدى mobily.ws.

وفي السطر 10 سوف تجد العبارة
$sms_sender = "Nagios";
ان العبارة Nagios هو اسم المرسل لرسائل الجوال والذي سوف يظهر على جوال المستلم، استبدل هذا الاسم باي اسم انجليزي ترغب به بشرط ان لا يزيد عن 11 حرف وان يكون بلغة الانجليزية وبدون فراغات.
لاحظ ان هذا الاسم يجب تفويضه من قبل موبايلي قبل ان تستطيع ارسال الرسائل باستخدامه الى مستخدمي شبكة الاتصالات السعودية STC، لهذا يفضل استخدام الاسم المفوض او اضافة الاسم وتفويضه قبل محاولة ارسال الرسائل.

ومن ثم قم على حفظ الملف وذلك بالنقر على CTRL+X ومن ثم الموافقة على عملية الحفظ.

- الان بعد ان قمنا على ضبط اعدادات رسائل الجوال نريد ان نختبر عملية ارسال رسائل الجوال انها ستتم بنجاح او لا ، قم على تنفيذ الامر التالي
./host-status-to-sms.php UP 966564688299 "hello this is a test"

ان هذا الامر سوف يقوم بارسال رسائل جوال hello this is a test الى رقم الجوال 966564688299 بكل تاكيد انت يجب ان تستبدل هذا الرقم برقمك الخاص حتى تستطيع مشاهدة الرسالة ، خلال اقل من دقيقة من المفترض ان تصلك رسالة الى الجوال المدخل تحتوي على هذه العبارة، وكذلك يمكنك من خلال زاوية حسابي في موقع موبايلي ان تقوم بالتاكد من ان الرسالة تم ارسالها او لا من خلال الشبكة.
اذا وصلت الرسالة الى رقم الجوال المحدد ، فهذا يعني ان الموديل الان جاهزه للاستخدام ، وكل ما تبقى هو ان نقوم الان بتوليف هذه الموديل لتعمل تزامنا مع الناجبوس.

الان يجب علينا ان نقوم بتعريف امر الارسال داخل الناجيوس ، وذلك من خلال الامر التالي
nano /usr/local/nagios/etc/commands.cfg
لاحظ اننا هنا نريد تحرير الملف command.cfg والذي يحتوي على اوامر الناجيوس لهذا اذا كان الملف في مسار مختلف قم على تحرير الملف من المسار المناسب.
بعد فتح الملف في المحرر اذهب الى اخر سطر في الملف واكتب العبارة التالية
define command{
 command_name    host-status-to-sms
 command_line    /usr/local/nagios/libexec/nagios2sms/host-status-to-sms.php $HOSTSTATE$ $CONTACTPAGER$ "Host Alert: $HOSTALIAS$\nHost Status: $HOSTSTATE$\nDate/Time: $LONGDATETIME$"
        }


لاحظ ان العبارات المكتوبة بعد command_line اعلاه كلها تاتي في سطر واحد لهذا تاكد من انها في سطر واحد وليس في سطرين في المحرر.
ومن ثم بعدها قم على حفظ الملف عن طريق الظغط على CTRL+X ومن ثم الموافقة على عملية التعديل.

- الان يجب علينا ان نقوم باضافة رقم الجوال لكل جهة من ال contacts الذين نرغب لهم استبقال رسائل الجوال ، وهي غالبا في ملف contacts.cfg ولمن اتبع طريقتي في تركيب الناجبوس فان عليه القيام بالامر التالي
nano /usr/local/nagios/etc/contacts.cfg
وفي حال كانت قد اتبعت طريقة اخرى في التركيب ان ان جهات الاتصال موجودة بملف ثاني قم على تحرير ملف جهات الاتصال ، وعلى سبيل المثال سوف تجد احد جهات الاتصال داخل الملف كالتالي
define contact{
        contact_name                    SAM
        alias                           SAM_SHANNAQ
        service_notification_period     24x7
        host_notification_period        24x7
        service_notification_options    c,r,w
        host_notification_options       d,r
        service_notification_commands   notify-service-by-email
        host_notification_commands      notify-host-by-email
        email                           sysadmin@example.com
        }
الان سوف اقوم على اضافة رقم الجوال لهذا المدير وذلك باضافة العبارة pager ومن ثم رقم الجوال بالصيغة المتوافقة لتصبح معلوماته كالتالي

define contact{
        contact_name                    SAM
        alias                           SAM_SHANNAQ
        service_notification_period     24x7
        host_notification_period        24x7
        service_notification_options    c,r,w
        host_notification_options       d,r
        service_notification_commands   notify-service-by-email
        host_notification_commands      notify-host-by-email
        email                           sysadmin@example.com
                 pager                           966564688299
        }

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

define contact{
contact_name                    SAM
alias                          
SAM_SHANNAQ
service_notification_period     24x7
host_notification_period        24x7
service_notification_options    c,r,w
host_notification_options       d,r
service_notification_commands   notify-by-email
host_notification_commands    host-notify-by-email,host-status-to-sms
email                          
sysadmin@example.com
pager                           966564688299
 }

كما تلاحظ انني اضفت فاصلة ومن ثم الامر host-status-to-sms  هذا يعني انني اقوم لسيرفر الناجيوس انه عندنا يكون اي هوست مشترك به هذا المستخدم داون او ريفكوفري كما هو معرف في host_notification_options اعلاه ، استخدم طريقة الاعلام عبر البريد وطريقة الاعلام عبر الجوال.
الان قم على حفظ الملف عن طريق CTRL+X ومن ثم الموافقة عل حفظ الملف.

والان قم على عمل اعادة تشغيل سيرفر الناجيوس عن طريق الامر

service nagios restart
او
/etc/init.d/nagios restart

يجب ان تظهر العبارة
Running configuration check...done.
Stopping nagios: done.
Starting nagios: done.
والتي تدل على انه تم اعادة تشغيل سيرفر الناجيوس بنجاح ، اذا ظهر نص يدل على وجود خلل تاكد من عملية التركيب انها تمت بشكل صحيح ، قد يعود الخلل غالبا الى خلل في النسخ واللصق يد يقفز احد السطور الى سطر جديد بالرغم من انه يجب ان يكون في سطر واحد

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

طبعا لتجربة الخدمة ان كانت تعمل او لا ليس من الضروري ان ننتظر الى ان يخرج احد السيرفرات عن العمل :) ، كل ما عليك هو الدخول الى احد السيرفرات وعمل حظر لاي بي الناجيوس مثلا اذا كنت تستخدم apf على السيرفر المراقب قم على الدخول الى السيرفر عن طريق الشل ونفذ الامر.
/etc/apf/apf -d X.X.X.X
استبدل X.X.X.X برقم اي بي سيرفر الناجيوس الاساسي الذي يقوم بالمراقبة ، ومن قم بعدها انتظر حوالي 10 دقايق ويجب ان تتوقع ان تصلك رسالة من سيرفر الناجيوس تخبرك بان احد الاطراف خرج عن الخدمة على الجوال. اذا لم تصل الرسالة تحقق من الاعدادات وطريقة التركيب انها كانت صحيحة.
ومثلا النص التالي هو مثال على رسالة الجوال التي سوف تصلك :
Host Alert: server.example.com.sa
Host Status: Down
Date/Time: Fri Sept 25 23:26:42 AST 2009

اذا لم تكن تستخدم apf يمكنك التجربة عن طريق حظر اي بي الناجيوس عن طريق iptables ولكن كن حذرا.
اذا وصلت رسالة الجوال واردت ان تقوم بالغاء الحظر الذي قمنا به قبل قليل عن طريق ال apf  نفذ الامر التالي
/etc/apf/apf -u x.x.x.x
مع مراعاة وضع رقم الايبي المناس لسيرفر الناجيوس الذي قمنا بحظرة في الخطوة السابقة بدلا من x.x.x.x


ملاحظات:
  • الرسالة المرسلة الى الجوال يجب ان تكون باللغة الانجليزية فقط ، وان اردت استخدام لغة عربية يجب ان تكون الاحرف العربية مدخله بترميز windows-1256 - cp1256
  • لا تستخدم هذه الخدمة للاعلام عن التغير في احد الخدمات (services) بدلا من ال (hosts) لان محتويات رسالة الجوال سوف تاتي منقوصة. قد يتم دعم الخدمات في تحديثات اخرى للموديل.
  • هذه الموديل ما زالت بنسخة تجريبية ولم تصل لمرحلة الثبات وبالتالي انا لا اتحمل تبعيات تشغيله بالرغم من انني تاكدت من انه يعمل وقمت على تجربته لفترة معقولة.
  • عند خروج اخد الخوادم (host) عن العمل سوف يبدا البرنامج بارسال رسائل الجوال لحين عودة هذا الخادم الى العمل ، والفاصل بين كل رسالة والاخرى هو كما تم تعريفة في خيار notification_interval في تعريف الخدمة. انا انصحك ث بان تباعد بين عمليات ارسال رسائل الجوال وذلك لعدم اهدار رصيدك  ، ولكن لا تباعد بين مدة ارسال رسائل البريد الاليكتروني فهي فرسائل البريد الاليكتروني مجانية :). قد اشرح في تحديثات لاحقة كيفية المباعدة بين الرسائل.

لتحميل الموديل يمكنك النقر هنا


ان اي تحديث للموديل سوف تجده على هذا الرابط


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




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

  Sign in   Recent Site Activity   Terms   Report Abuse   Print page  |  Powered by Google Sites