اذهب إلى المحتوى

مراقبة التوفر والأداء على خواديم أوبنتو باستخدام Nagios وMunin


عبد اللطيف ايمش

المراقبة هي جزء مهم من إدارة الخواديم والخدمات الأساسية؛ تُراقَب معظم الخدمات الشبكية للأداء (performance) أو التوفر (availability) أو كليهما؛ سيَشرح هذا الفصل طريقة تثبيت وضبط Nagios لمراقبة التوفر، و Munin لمراقبة الأداء.

ubuntu-server-monitoring.thumb.png.1757a

سنستخدم في أمثلة هذا الفصل خادومين بأسماء server01 و server02؛ سيُضبَط server01 مع Nagios لمراقبة الخدمات التي عليه وعلى الخادوم server02؛ وسيُضبَط server01 مع Munin لجمع المعلومات من الشبكة، باستخدام حزمة munin-node، وسيُضبَط server02 لكي يُرسِل المعلومات إلى server01.

نأمل أن تساعدك هذه الأمثلة البسيطة في مراقبة الخواديم والخدمات الإضافية في شبكتك.

Nagios

التثبيت

أولًا، ثبت الحزمة nagios على خادوم server01، وذلك بإدخال الأمر الآتي في الطرفية:

sudo apt-get install nagios3 nagios-nrpe-plugin

سيُطلَب منك إدخال كلمة مرور لمستخدم nagiosadmin، تصاريح المستخدم مخزنة في ‎/etc/nagios3/htpasswd.users. ولتعديل كلمة مرور nagiosadmin أو إضافة مستخدمين آخرين إلى سكربتات Nagios CGI، فاستخدم htpasswd الذي هو جزء من حزمة apache2-utils.

على سبيل المثال، لتغيير كلمة المرور لمستخدم nagiosadmin:

sudo htpasswd /etc/nagios3/htpasswd.users nagiosadmin

لإضافة مستخدم جديد:

sudo htpasswd /etc/nagios3/htpasswd.users steve

الآن على خادوم server02، ثبِّت الحزمة nagios-nrpe-server؛ بتنفيذ الأمر الآتي على server02:

sudo apt-get install nagios-nrpe-server

ملاحظة: سيسمح NRPE لك بتنفيذ فحوصات محلية على الأجهزة البعيدة، هنالك طرق أخرى للقيام بذلك عبر إضافات Nagios أخرى.

لمحة عن الضبط

هنالك عدة مجلدات تحتوي على ضبط Nagios وملفات التحقق (check files).

  • ‎/etc/nagios3: يحتوي على ملفات الضبط لعمل عفريت nagios، وملفات CGI، والمضيفين ...إلخ.
  • ‎/etc/nagios-plugins: يحتوي ملفات الضبط للتحقق من الخدمات.
  • /etc/nagios: في المضيفين البعيدين، ويحتوي على ملفات ضبط nagios-nrpe-server.
  • /usr/lib/nagios/plugins/‎: المكان الذي تخزَّن فيه ملفات التحقق الثنائية، استخدم الخيار ‎-h لمشاهدة المساعدة لتحققٍ ما. مثال: ‎/usr/lib/nagios/plugins/check_dhcp -h

هنالك وفرة في التحققات التي يمكن ضبط Nagios ليجريها على أي مضيف؛ سيُضبَط Nagios في هذا المثال للتحقق من مساحة القرص الصلب المتوفرة و DNS و MySQL؛ سيُجرى تحقق DNS على server02 وتحقق MySQL على server01 و server02.

هنالك بعض المصطلحات التي عندما تُشرَح ستُسهِّل فهم ضبط Nagios:

  • المضيف (host): خادوم أو محطة عمل (workstation)، أو جهاز شبكي ...إلخ. الذي يُراقَب.
  • مجموعة مضيفين (host group): مجموعة من المضيفين المتشابهين؛ على سبيل المثال، تستطيع أن تُجمِّع كل خواديم الويب أو خواديم الملفات ...إلخ.
  • الخدمة (service): الخدمة التي تُراقَب في المضيف، مثل HTTP أو DNS أو NFS ...إلخ.
  • مجموعة الخدمات (service group): تسمح لك بجمع عدِّة خدمات متشابهة مع بعضها بعضًا، هذا مفيد لتجميع عدّة خدمات HTTP على سبيل المثال.
  • جهة الاتصال (contact): الشخص الذي سيُنبَّه عندما يحدث حدثٌ ما؛ يمكن ضبط Nagios ليرسل بريدًا إلكترونيًا أو رسائل SMS ...إلخ.

افتراضيًا، يكون ضبط Nagios ليتحقق من HTTP، والمساحة التخزينية المتوفرة في القرص، و SSH، والمستخدمين الحاليين، والعمليات، والحِمل على localhost؛ سيتحقق Nagios أيضًا من البوابة بعمل ping لها.

تثبيتات Nagios الضخمة قد يصبح ضبطها معقدًا جدًا، لذلك من الأفضل عادةً البدء بمضيف واحد أو اثنين ثم التوسع بعد ضبطهما جيدًا.

الضبط

  1. أولًا، أنشئ ملف ضبط للمضيف للخادوم server02؛ ما لم يُذكر عكس ذلك، فعليك تنفيذ هذه الأوامر على server01؛ أدخِل ما يلي في الطرفية:

sudo cp /etc/nagios3/conf.d/localhost_nagios2.cfg \
/etc/nagios3/conf.d/server02.cfg

ملاحظة: في الأوامر السابقة أو التالية استبدل «server01» و «server02» و 172.18.100.100 و 172.18.100.101 بأسماء المضيفين وعناوين IP لخادومَيك.

  1. ثم عدِّل الملف ‎/etc/nagios3/conf.d/server02.cfg:

define host{
        use                                       generic-host ; Name of host template to use  
        host_name                                 server02
        alias                                     Server 02
        address                                   172.18.100.101
}

# check DNS service.
define service {
        use                                       generic-service
        host_name                                 server02
        service_description                       DNS
        check_command                             check_dns!172.18.100.101
}
  1. أعد تشغيل عفريت nagios لتفعيل الضبط الجديد:

sudo service nagios3 restart
  1. أضف الآن تعريفًا للتحقق من MySQL بإضافة ما يلي إلى ‎/etc/nagios3/conf.d/‎ services_nagios.cfg:

# check MySQL servers.
define service {
        hostgroup_name        mysql-servers
        service_description   MySQL
        check_command         check_mysql_cmdlinecred!nagios!secret!$HOSTADDRESS 
        use                   generic-service
        notification_interval 0 ; set > 0 if you want to be renotified
}
  1. يجب الآن تعريف مجموعة المضيفين mysql-servers؛ عدِّل الملف ‎/etc/nagios3/conf.d ‎/hostgroups_nagios2.cfg مضيفًا:

# MySQL hostgroup.
define hostgroup {
        hostgroup_name     mysql-servers
        alias              MySQL servers
        members            localhost, server02
}
  1. يحتاج Nagios لأن يستوثق إلى MySQL، فأضف مستخدم nagios إلى MySQL بإدخال الأمر:

mysql -u root -p -e "create user nagios identified by 'secret';"

ملاحظة: يجب أن يتواجد المستخدم nagios في كل المضيفين في مجموعة mysql-servers.

  1. أعد تشغيل nagios ليبدأ التحقق من خواديم MySQL:

sudo service nagios3 restart
  1. أخيرًا، اضبط NRPE للتحقق من المساحة الفارغة في القرص على الخادوم server02.

أضف التحقق من الخدمة في server01 في ملف ‎/etc/nagios3/conf.d/server02.cfg:

# NRPE disk check.
define service {
        use                          generic-service
        host_name                    server02
        service_description          nrpe-disk
        check_command                check_nrpe_1arg!check_all_disks!172.18.100.101
}
  1. الآن على الخادوم server02، عدِّل الملف ‎/etc/nagios/nrpe.cfg مغيّرًا:

allowed_hosts=172.18.100.100

ثم في منطقة تعريف الأمر أضف ما يلي:

command[check_all_disks]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -e
  1. في النهاية، أعد تشغيل nagios-nrpe-server:

sudo service nagios-nrpe-server restart
  1. وأيضًا على الخادوم server01 أعد تشغيل nagios:

sudo service nagios3 restart

يجب أن تكون قادرًا على رؤية المضيف والتحقق من الخدمات في ملفات Nagios CGI؛ للوصول إليهم، وجِّه متصفحك إلى http://server01/nagios3؛ ثم ستُسأل عن اسم مستخدم nagiosadmin وكلمة مروره.

مصادر

لم يشرح هذا القسم من الدرس إلا القليل من ميزات Nagios؛ تحتوي الحزمتين nagios-plugins-extra و nagios-snmp-plugins على المزيد من تحققات الخدمات.

  • للمزيد من المعلومات، راجع موقع Nagios، تحديدًا موقع «التوثيق».
  • هنالك قائمة بالكتب المتعلقة بمراقبة الشبكة و Nagios.
  • صفحة ويكي أوبتتو «Nagios» فيها بعض التفاصيل الإضافية.

Munin

التثبيت

قبل تثبيت Munin على server01، فيجب أن يُثبَّت قبله apache2؛ الضبط الافتراضي كافٍ لتشغيل خادوم munin.

أولًا، ثبت munin على الخادوم server01 بإدخال الأمر:

sudo apt-get install munin

الآن ثبِّت الحزمة munin-node على الخادوم server02:

sudo apt-get install munin-node

الضبط

عدِّل الملف ‎/etc/munin/munin.conf على الخادوم server01 مُضيفًا عنوان IP للخادوم server02:

## First our "normal" host.
[server02]
address 172.18.100.101

ملاحظة: استبدل server02 و 172.18.100.101 باسم المضيف وعنوان IP الحقيقي لخادومك.

الآن اضبط munin-node على الخادوم server02، بتعديل ‎/etc/munin/munin-node.conf للسماح بالوصول إلى الخادوم server01:

allow ^172\.18\.100\.100$

ملاحظة: استبدل ‎^172\.18\.100\.100$ بعنوان IP لخادوم Munin الخاص بك.

أعد تشغيل munin-node على server02 لكي تأخذ التعديلات مجراها:

sudo service munin-node restart

في النهاية، وجِّه متصفحك إلى http://server01/munin، يجب أن ترى روابط إلى مخططات بيانية جميلة تعرض معلومات من الحزمة القياسية munin-plugins للقرص والشبكة والعمليات والنظام.

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

إضافات أخرى

تحتوي حزمة munin-plugins-extra على تحققات من أداء خدماتٍ إضافية مثل DNS و DHCP، وسامبا ...إلخ. أدخل الأمر الآتي لتثبيت هذه الحزمة:

sudo apt-get install munin-plugins-extra

تأكد من تثبيت هذه الحزمة على جهازَيّ الخادوم والعقدة.

مصادر

  • راجع موقع Munin لمزيدٍ من التفاصيل.
  • تحديدًا صفحة «توثيق Munin» التي تحتوي على معلومات عن الإضافات الأخرى، وكيفية كتابة إضافات ...إلخ.
  • مصدر آخر هو صفحة ويكي أوبنتو «Munin».

ترجمة -وبتصرف- للمقال Ubuntu Server Guide: Monitoring.

 


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...