راقب موارد الخادم باستخدام Collectd-web و Apache CGI في نظام Linux

هذا البرنامج التعليمي سيناقش كيفية تثبيت وتشغيل واجهة Collectd-web، وهي أداة مراقبة واجهة ويب أمامية لسيناريو Collectd، بالاشتراك مع واجهة Apache CGI لإنتاج مخرجات html رسومية من أجل مراقبة صناديق Linux.

Monitor Linux Server Resources

في نهاية المقال، سنقدم أيضًا كيفية حماية واجهة Collectd-web باستخدام آلية المصادقة عبر .hpasswd Apache.

المتطلبات

متطلبات هذا المقال هي أن يكون لديك Collectd و Collectd-Web مثبتين على نظام Linux الخاص بك. لتثبيت هذه الحزم، يجب عليك اتباع الخطوات #1 و #2 من المقال السابق في هذه السلسلة على الرابط:

  1. تثبيت Collectd و Collectd-Web في Linux

اتبع فقط الخطوتين التاليتين من الرابط أعلاه:

Step 1: Install Collectd Service 
Step 2: Install Collectd-Web and Dependencies 

بمجرد إكمال هاتين الخطوتين المطلوبتين بنجاح، يمكنك متابعة التعليمات الإضافية في هذا المقال لتكوين Collectd-web مع Apache CGI.

الخطوة 1: تثبيت خادم الويب Apache

1. نفترض أنك قد قمت بتثبيت خادم الويب Apache بالفعل على نظامك، إذا لم يكن الأمر كذلك يمكنك تثبيته باستخدام الأمر التالي وفقًا لتوزيعتك Linux.

# apt-get install apache2	[On Debian based Systems]
# yum install httpd		[On RedHat based Systems]

2. بعد تثبيت Apache، قم بتغيير الدليل إلى جذر المستندات الافتراضي لخادم الويب الخاص بك (الذي يقع تحت المسار النظامي /var/www/html/ أو /var/www وانسخ مشروع Collectd-web Github باستخدام الأوامر التالية:

# cd /var/www/html
# git clone https://github.com/httpdss/collectd-web.git

كما يجب جعل النص البرمجي التالي Collectd-web قابلًا للتنفيذ عن طريق إصدار الأمر التالي:

# chmod +x /var/www/html/collectd-web/cgi-bin/graphdefs.cgi

الخطوة 2: تمكين Apache CGI (.cgi scripts) للمضيف الافتراضي

3. من أجل تشغيل نصوص CGI التابعة لـ Apache الموجودة تحت دليل المضيف الافتراضي HTML Collectd-web cgi-bin، تحتاج إلى تمكين واجهة Apache CGI بشكل صريح لنصوص Bash (ذات الامتداد .cgi) من خلال تعديل ملف الإعداد الافتراضي للمضيف وإضافة كتلة البيانات التالية.

على أنظمة Debian

افتح أولاً ملف تكوين المضيف الافتراضي لـ Apache للتحرير باستخدام محرر nano:

# nano /etc/apache2/sites-available/000-default.conf

أثناء فتح الملف للتحرير، أضف الكتلة التوجيهية التالية أدناه توجيهة Document Root كما هو موضح في الصورة أدناه:

<Directory /var/www/html/collectd-web/cgi-bin>
                Options Indexes ExecCGI
                AllowOverride All
                AddHandler cgi-script .cgi
                Require all granted
</Directory>
Enable CGI in Debian

بعد الانتهاء من تحرير الملف، أغلقه باستخدام CTRL + o و اخرج من محرر nano (CTRL+x)، ثم قم بتمكين وحدة Apache CGI وإعادة تشغيل الخادم لتطبيق جميع التغييرات التي تم إجراؤها حتى الآن باستخدام الأوامر التالية:

# a2enmod cgi cgid
# service apache2 restart
OR
# systemctl restart apache2.service     [For systemd init scripts]
Enable Apache CGI

على أنظمة RedHat

4. لتمكين واجهة Apache CGI لـ CentOS/RHEL، افتح ملف تكوين Apache httpd.conf وأضف السطور التالية في الجزء الأسفل من الملف:

# nano /etc/httpd/conf/httpd.conf

أضف المقتطف التالي إلى ملف httpd.conf.

ScriptAlias /cgi-bin/ “/var/www/html/collectd-web/cgi-bin"
Options FollowSymLinks ExecCGI
AddHandler cgi-script .cgi .pl

لتطبيق التغييرات، أعد تشغيل خادم httpd بإصدار الأمر التالي:

# service httpd restart
OR
# systemctl restart httpd        [For systemd init scripts]

الخطوة 3: تصفح واجهة Collectd-web

5. لزيارة واجهة Collectd-web وتصور الإحصائيات حول الجهاز الذي تم جمعه حتى الآن، افتح متصفحًا وانتقل إلى موقع عنوان IP الخاص بجهازك/collectd-web/ باستخدام بروتوكول HTTP.

http://192.168.1.211/collect-web/
Collectd-Web Dashboard

الخطوة 4: حماية كلمة المرور لعنوان URL لـ Collectd-web باستخدام المصادقة الخاصة بأباتشي

6. في حالة رغبتك في تقييد الوصول إلى واجهة Collectd-web من خلال حمايتها باستخدام آلية المصادقة الخاصة بأباتشي (.htpasswd), التي تتطلب من الزوار إدخال اسم مستخدم وكلمة مرور للوصول إلى مورد ويب.

للقيام بذلك، يجب عليك تثبيت حزمة apache2-utils وإنشاء مجموعة من بيانات الاعتماد للمصادقة المحلية. لتحقيق هذا الهدف، أصدر أولا الأمر التالي لتثبيت حزمة apache2-utils:

# apt-get install apache2-utils	        [On Debian based Systems]
# yum install httpd-tools		[On RedHat based Systems]

7. بعد ذلك، قم بتوليد اسم مستخدم وكلمة مرور ستتم تخزينهما في ملف .htpass المخفي المحلي الذي يقع في المسار الافتراضي لمضيف أباتشي Collectd-web عن طريق إصدار الأمر التالي:

# htpasswd -c /var/www/html/collectd-web/.htpass  your_username

حاول حماية هذا الملف عن طريق تعيين الصلاحيات التالية:

# chmod 700 /var/www/html/collectd-web/.htpass
# chown www-data /var/www/html/collectd-web/.htpass

8. في الخطوة التالية، بعد أن تقوم بإنشاء ملف .htpass، افتح ملف الاستضافة الافتراضي لـ Apache للتحرير وأوجد الخادم لاستخدام المصادقة الأساسية على الخادم من الجانب الخادم عن طريق إضافة كتلة التوجيه التالية كما هو موضح في اللقطة الشاشة أدناه:

<Directory /var/www/html/collectd-web >
                AuthType Basic
                AuthName "Collectd Restricted Page"
                AuthBasicProvider file
                AuthUserFile /var/www/html/collectd-web/.htpass 
                Require valid-user
</Directory>
Apache Password Protect Directory

9. الخطوة الأخيرة لعكس التغييرات هي إعادة تشغيل خادم Apache عن طريق إصدار الأمر أدناه وزيارة صفحة عنوان URL Coollectd-web كما هو موضح أعلاه.

A pop-up should appear on the web page requesting for your authentication credentials. Use the username and password created earlier to access Collectd web interface.

# service apache2 restart		[On Debian based Systems]
# service httpd restart			[On RedHat based Systems]

OR
---------------- For systemd init scripts ----------------
# systemctl restart apache2.service		
# systemctl restart http.service  
Apache Password Authentication
Collectd-Web Panel

Source:
https://www.tecmint.com/monitor-linux-server-resources-with-collectd-web-and-apache-cgi/