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

في نهاية المقال، سنقدم أيضًا كيفية حماية واجهة Collectd-web باستخدام آلية المصادقة عبر .hpasswd Apache.
المتطلبات
متطلبات هذا المقال هي أن يكون لديك Collectd و Collectd-Web مثبتين على نظام Linux الخاص بك. لتثبيت هذه الحزم، يجب عليك اتباع الخطوات #1 و #2 من المقال السابق في هذه السلسلة على الرابط:
اتبع فقط الخطوتين التاليتين من الرابط أعلاه:
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>

بعد الانتهاء من تحرير الملف، أغلقه باستخدام CTRL + o و اخرج من محرر nano (CTRL+x)، ثم قم بتمكين وحدة Apache CGI وإعادة تشغيل الخادم لتطبيق جميع التغييرات التي تم إجراؤها حتى الآن باستخدام الأوامر التالية:
# a2enmod cgi cgid # service apache2 restart OR # systemctl restart apache2.service [For systemd init scripts]

على أنظمة 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/

الخطوة 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>

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


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