ديف أوبس

مراقبة الخوادم بـ Icinga Ubuntu

كيف تستخدم Icinga لمراقبة خواديمك وخدماتك على Ubuntu 14.04

الكلمات المفتاحية: Icinga، مراقبة الخوادم، Ubuntu 14.04، أدوات المراقبة، Icinga Web، Linux Monitoring، إدارة النظام، Nagios، تنصيب Icinga، مراقبة الشبكة


تُعد مراقبة الخوادم والخدمات أمراً بالغ الأهمية في بيئات العمل التقنية الحديثة، حيث تتيح للمسؤولين عن الأنظمة اكتشاف المشكلات قبل أن تؤثر على المستخدمين أو توقف الخدمات الحيوية. في هذا السياق، يأتي Icinga كأحد أقوى الحلول المجانية والمفتوحة المصدر لمراقبة الأنظمة والبنية التحتية. تم تطوير Icinga أساساً كفرع من مشروع Nagios، إلا أنه تطور بشكل مستقل ليقدم واجهة أفضل، مرونة أعلى، ودعماً واسعاً للتقنيات الحديثة.

سنقوم في هذا المقال بشرح مفصل لكيفية تنصيب وتكوين Icinga على نظام Ubuntu 14.04، مع تقديم أفضل الممارسات والإعدادات الضرورية لمراقبة الخواديم والخدمات بشكل فعّال.


1. ما هو Icinga؟

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

بفضل بنيته المرنة، يتيح Icinga مراقبة مئات بل آلاف الأجهزة والخدمات من خلال واجهة مركزية، مما يجعله مناسباً لبيئات المؤسسات والشركات.


2. المتطلبات الأساسية قبل التثبيت

قبل البدء بتنصيب Icinga على Ubuntu 14.04، يجب التأكد من توفر العناصر التالية:

  • جهاز يعمل بنظام Ubuntu 14.04 مع صلاحيات root أو مستخدم لديه صلاحيات sudo

  • اتصال بالإنترنت لتحديث المستودعات وتنزيل الحزم

  • إعداد DNS وتكوين hostname بشكل صحيح

  • تثبيت خادم ويب مثل Apache أو Nginx

  • قاعدة بيانات MySQL أو PostgreSQL (حسب التفضيل)

يُنصح بتحديث النظام قبل البدء بتنصيب أي حزم:

bash
sudo apt-get update sudo apt-get upgrade

3. تنصيب Icinga على Ubuntu 14.04

3.1. تثبيت Apache و PHP

bash
sudo apt-get install apache2 php5 php5-cli php5-gd php5-mysql php5-xmlrpc php5-xsl libapache2-mod-php5

3.2. تثبيت قاعدة البيانات MySQL

bash
sudo apt-get install mysql-server mysql-client

أثناء التثبيت، سيُطلب منك تعيين كلمة مرور للمستخدم root في MySQL.

3.3. تثبيت Icinga Core

bash
sudo apt-get install icinga icinga-doc icinga-idoutils

3.4. تفعيل دعم قاعدة البيانات في Icinga

يجب إعداد قاعدة بيانات لتخزين معلومات المراقبة. لإنشاء قاعدة بيانات باسم icinga:

bash
mysql -u root -p

داخل الـ MySQL:

sql
CREATE DATABASE icinga; GRANT ALL PRIVILEGES ON icinga.* TO 'icingauser'@'localhost' IDENTIFIED BY 'icingapassword'; FLUSH PRIVILEGES; EXIT;

ثم إعداد قاعدة البيانات من خلال:

bash
sudo dpkg-reconfigure icinga-idoutils

اتبع التعليمات لإدخال بيانات قاعدة البيانات التي أنشأتها.


4. إعداد Icinga وتكوينه

4.1. تفعيل وحدات الـ IDOUtils

تعديل ملف إعدادات ido2db.cfg:

bash
sudo nano /etc/icinga/ido2db.cfg

تأكد من وجود الأسطر التالية:

ini
db_user=icingauser db_pass=icingapassword db_name=icinga

ثم تعديل ملف icinga.cfg لتفعيل الوحدة:

bash
sudo nano /etc/icinga/icinga.cfg

تأكد من إلغاء التعليق عن السطر:

ini
broker_module=/usr/lib/icinga/ido2db.so

5. إعداد Icinga Web لواجهة رسومية

5.1. تثبيت Icinga Web

bash
sudo apt-get install icinga-web

أثناء التثبيت، اتبع الإعدادات الخاصة بقاعدة البيانات.

5.2. تهيئة قاعدة بيانات الواجهة

bash
mysql -u root -p icinga < /usr/share/dbconfig-common/data/icinga-web/install/mysql

5.3. تهيئة صلاحيات Apache

تأكد من أن Apache قادر على تنفيذ واجهة Icinga Web:

bash
sudo chown -R www-data:www-data /usr/share/icinga-web

ثم أعد تشغيل Apache:

bash
sudo service apache2 restart

يمكنك الآن الوصول إلى الواجهة الرسومية من خلال المتصفح:

arduino
http:///icinga-web

6. إضافة خدمات ومضيفين للمراقبة

6.1. تعديل ملف localhost.cfg

bash
sudo nano /etc/icinga/objects/localhost.cfg

أضف خدمات لمراقبة Apache أو MySQL كمثال:

cfg
define service { use generic-service host_name localhost service_description HTTP check_command check_http } define service { use generic-service host_name localhost service_description MySQL check_command check_mysql }

بعد التعديلات، تحقق من صلاحية التكوين:

bash
sudo icinga -v /etc/icinga/icinga.cfg

ثم أعد تشغيل Icinga:

bash
sudo service icinga restart

7. التنبيهات والإشعارات

يتميز Icinga بنظام تنبيهات مرن يعتمد على البريد الإلكتروني أو الرسائل النصية. لتفعيل البريد الإلكتروني، تأكد من وجود الحزمة mailutils:

bash
sudo apt-get install mailutils

ثم قم بتعديل ملف contacts.cfg لإدخال بريد مسؤول النظام:

cfg
define contact{ contact_name admin alias System Administrator service_notification_period 24x7 host_notification_period 24x7 service_notification_options w,u,c,r host_notification_options d,u,r service_notification_commands notify-service-by-email host_notification_commands notify-host-by-email email [email protected] }

8. المراقبة عن بُعد عبر NRPE

لربط خوادم أخرى بـ Icinga، يمكن استخدام NRPE (Nagios Remote Plugin Executor):

8.1. على الخادم الهدف:

bash
sudo apt-get install nagios-nrpe-server nagios-plugins

ثم تعديل /etc/nagios/nrpe.cfg لإضافة IP خادم Icinga:

cfg
allowed_hosts=127.0.0.1,

8.2. على خادم Icinga:

bash
sudo apt-get install nagios-nrpe-plugin

أضف تعريفات جديدة في ملفات التكوين لإضافة الخادم الجديد.


9. الجدول التوضيحي: أهم مكونات Icinga ووظيفتها

المكون الوظيفة
Icinga Core المحرك الأساسي الذي يقوم بجميع عمليات التحقق وجمع البيانات
Icinga Web واجهة رسومية لعرض النتائج والتقارير
IDOUtils وحدة وسيطة لتخزين البيانات في قاعدة بيانات
Plugins سكربتات تستخدم للتحقق من حالة الخدمات المختلفة
NRPE أداة لتمكين المراقبة عن بُعد عبر الشبكة
Apache/PHP خادم الويب الضروري لتشغيل Icinga Web
MySQL/PostgreSQL لتخزين معلومات الأداء والتنبيهات

10. الخلاصة التقنية

يمثل Icinga أداة فعالة وموثوقة لإدارة البنية التحتية التقنية من خلال المراقبة الشاملة والتقارير الدقيقة. وبالرغم من أن Ubuntu 14.04 تُعد إصداراً قديماً نسبياً، لا يزال بالإمكان تشغيل Icinga عليها بكفاءة عالية، شرط التأكد من تحديث الحزم وضمان التوافق مع إصدارات PHP وقاعدة البيانات.

الاعتماد على Icinga في بيئة الإنتاج يوفّر قدرات متقدمة في الاكتشاف المبكر للمشكلات، تحسين وقت التشغيل، تقليل الأعطال، وتوفير صورة شاملة عن أداء الخدمات. كما يمكن دمجه مع أدوات أخرى مثل Grafana وInfluxDB لعرض إحصائيات مرئية متقدمة.


المصادر:

  1. Icinga Documentation – https://icinga.com/docs

  2. Ubuntu Packages – https://packages.ubuntu.com/