ניטור משאבי שרת עם Collectd-web ו-Apache CGI ב-Linux

המדריך הזה ידון באופן בו ניתן להתקין ולהפעיל את ממשק הרשת Collectd-web, שהוא כלי ניטור רשת חזיתי עבור דמון Collectd, בשילוב עם ממשק Apache CGI כדי לייצר פלטים html גרפיים לצורך ניטור של קופסאות Linux.

Monitor Linux Server Resources

לסיום המאמר נציג גם כיצד ניתן להגן על ממשק Collectd-web באמצעות שימוש במנגנון אימות Apache .hpasswd.

דרישות

הדרישה של מאמר זה היא, עליך להפעיל את Collectd ואת Collectd-Web על המערכת שלך. כדי להתקין את החבילות אלו, עליך לעקוב אחר השלבים #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) עבור Default Host

3. כדי ש-Apache יפעיל את סקריפטי ה-CGI הממוקמים בתיקיית cgi-bin של Collectd-web ב-HTML של Default Host, עליך לאפשר באופן פשוט את ממשק ה-CGI של Apache עבור סקריפטים של Bash (עם סיומת .cgi) על ידי שינוי בפועל המארח המוגדר כברירת מחדל והוספת הבלוק הבא של הצהרות.

במערכות Debian

פתח תחילה את קובץ התצורה של המארח המוגדר כברירת מחדל של Apache לעריכה בעזרת העורך nano:

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

כאשר הקובץ פתוח לעריכה, הוסף את הבלוק ההוראות הבא למטה לפקודת השורש המסמך כפי שמוצג בתמונה למטה:

<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), לאחר מכן הפעל את מודול ה-CGI של Apache ואתחל את השרת כדי ליישם את כל השינויים שבוצעו עד כה על ידי הנפקת הפקודות הבאות:

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

במערכות RedHat

4. כדי לאפשר את ממשק ה-CGI של Apache עבור 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 ולהציג סטטיסטיקות על המחשב שלך שנאספו עד כה, פתח דפדפן ונווט לכתובת ה-URI של המחשב שלך כתובת ה-IP/collectd-web/ באמצעות פרוטוקול HTTP.

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

שלב 4: הגן על סיסמת Collectd-web URL באמצעות אימות של אפאצ'י

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 לעריכה והורה לשרת להשתמש באימות בסיסי של htpasswd בצד השרת על ידי הוספת בלוק הוראות הבא כפי שמוצג בתמונת המסך למטה:

<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/