Monitor Server Resources met Collectd-web en Apache CGI in Linux

Deze tutorial zal bespreken hoe je de Collectd-web interface kunt installeren en uitvoeren, wat een front-end web monitoring tool is voor de Collectd daemon, in combinatie met de Apache CGI interface om grafische html-uitvoer te produceren om Linux systemen te monitoren.

Monitor Linux Server Resources

Aan het einde van het artikel zullen we ook presenteren hoe je de Collectd-web interface kunt beveiligen met behulp van het .hpasswd Apache Authenticatie mechanisme.

Vereisten

De vereiste voor dit artikel is dat je Collectd en Collectd-Web geïnstalleerd moet hebben op je Linux systeem. Om deze pakketten te installeren, moet je de stappen #1 en #2 volgen uit het vorige artikel van deze serie op:

  1. Installeer Collectd en Collectd-Web in Linux

Volg alleen de volgende twee stappen van de bovenstaande link:

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

Zodra deze twee vereiste zaken succesvol zijn afgerond, kun je verdergaan met de instructies in dit artikel om Collectd-web te configureren met Apache CGI.

Stap 1: Apache Web Server Installeren

1. Ga ervan uit dat je Apache webserver al hebt geïnstalleerd op je systeem, zo niet, dan kun je deze installeren met behulp van de volgende opdracht, afhankelijk van je Linux distributie.

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

2. Nadat Apache is geïnstalleerd, wijzig de directory naar uw standaard webserver document root (die zich bevindt onder /var/www/html/ of /var/www systeempad en kloon het Collectd-web Github project door de onderstaande commando’s uit te voeren:

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

Ook, maak het volgende Collectd-web script uitvoerbaar door het volgende commando uit te voeren:

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

Stap 2: Schakel Apache CGI (.cgi scripts) in voor Standaard Host

3. Om Apache de CGI scripts te laten uitvoeren die zich bevinden onder de standaard host HTML Collectd-web cgi-bin directory, moet u expliciet de Apache CGI-interface inschakelen voor Bash scripts (met .cgi extensie) door de sites-available standaard host te wijzigen en het onderstaande statementsblok toe te voegen.

Op Debian-systemen

Open eerst het Apache standaard host configuratiebestand voor bewerking met de nano editor:

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

Terwijl het bestand geopend is voor bewerking, voeg het volgende directive blok toe onder de Document Root directive zoals geïllustreerd op de onderstaande afbeelding:

<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

Nadat u klaar bent met het bewerken van het bestand, sluit het met CTRL + o en verlaat de nano editor (CTRL+x), schakel vervolgens de Apache CGI-module in en herstart de server om alle tot nu toe gemaakte wijzigingen toe te passen door de onderstaande commando’s uit te voeren:

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

Op RedHat-systemen

4. Om de Apache CGI-interface in te schakelen voor CentOS/RHEL, open het httpd.conf Apache configuratiebestand en voeg de volgende regels toe onderaan het bestand:

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

Voeg het volgende fragment toe aan het httpd.conf bestand.

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

Om wijzigingen toe te passen, herstart de httpd daemon door het volgende commando uit te voeren:

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

Stap 3: Blader door de Collectd-web Interface

5. Om de Collectd-web interface te bezoeken en statistieken over uw machine te visualiseren die tot nu toe zijn verzameld, opent u een browser en navigeert u naar de IP-adres/collectd-web/ URI-locatie van uw machine met behulp van het HTTP-protocol.

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

Stap 4: Beveilig de Collectd-web URL met Apache Authenticatie

6. Als u de toegang tot de Collectd-web interface wilt beperken door deze te beveiligen met het Apache Authenticatie mechanisme (.htpasswd), waarbij bezoekers een gebruikersnaam en wachtwoord moeten invoeren om toegang te krijgen tot een webresource.

Om dit te doen, moet u het apache2-utils pakket installeren en een set referenties maken voor lokale authenticatie. Om dit doel te bereiken, voert u eerst het volgende commando uit om het apache2-utils pakket te installeren:

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

7. Vervolgens genereert u een gebruikersnaam en wachtwoord die worden opgeslagen in een verborgen lokale .htpass bestand dat zich bevindt onder de Apache standaard host Collectd-web pad door het onderstaande commando uit te voeren:

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

Probeer dit bestand te beveiligen door de volgende machtigingen toe te wijzen:

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

8. Op de volgende stap, nadat je het .htpass bestand hebt gegenereerd, open je de standaard Apache-host voor bewerking en geef je de server opdracht om basis server-side authenticatie met htpasswd te gebruiken door het volgende richtlijnblok toe te voegen zoals geïllustreerd op de onderstaande schermafbeelding:

<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. De laatste stap om de wijzigingen door te voeren is het herstarten van de Apache server door het onderstaande commando uit te voeren en de Coollectd-web URL-pagina te bezoeken zoals hierboven beschreven.

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/