Zoeken op website

Bewaak serverbronnen met Collectd-web en Apache CGI in Linux


In deze tutorial wordt besproken hoe u de Collectd-web interface, een front-end webmonitoringtool voor de Collectd daemon, kunt installeren en uitvoeren, in combinatie met Apache CGI interface om grafische html-uitvoer te produceren om Linux-boxen te monitoren.

Aan het einde van het artikel zullen we ook presenteren hoe u de Collectd-webinterface kunt beschermen met behulp van het .hpasswd Apache-authenticatiemechanisme.

Vereisten

De vereiste van dit artikel is dat Collectd en Collectd-Web op uw Linux-systeem moeten zijn geïnstalleerd. Om deze pakketten te installeren, moet u stap #1 en #2 uit het vorige artikel van deze serie volgen op:

  1. Installeer Collectd en Collectd-Web onder 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 met succes zijn voltooid, kunt u doorgaan met de verdere instructies in dit artikel om Collectd-web te configureren met Apache CGI.

Stap 1: Apache-webserver installeren

1. Ervan uitgaande dat u de Apache-webserver al op uw systeem hebt geïnstalleerd, kunt u de installatie uitvoeren met de volgende opdracht, afhankelijk van uw Linux-distributie.


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

2. Nadat Apache is geïnstalleerd, wijzigt u de map in de hoofdmap van uw standaardwebserverdocument (die zich bevindt onder /var/www/html/ of /var/www systeempad en kloon het Collectd-web Github-project door de onderstaande opdrachten uit te voeren:


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

Maak ook het volgende Collectd-web-script uitvoerbaar door de volgende opdracht te geven:


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

Stap 2: Schakel Apache CGI (.cgi-scripts) in voor standaardhost

3. Om ervoor te zorgen dat Apache de CGI-scripts uitvoert die zich onder de standaard host HTML Collectd-web cgi-bin map bevinden, moet u de Apache CGI-interface voor Bash-scripts expliciet inschakelen (met .cgi extensie) door de sites-beschikbare standaardhost te wijzigen en het onderstaande instructiesblok toe te voegen.

Op Debian-systemen

Open eerst het standaard hostconfiguratiebestand van Apache om te bewerken met de nano editor:


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

Terwijl het bestand wordt geopend voor bewerking, voegt u het volgende richtlijnblok toe onder de Document Root richtlijn, zoals geïllustreerd in de onderstaande afbeelding:


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

Nadat u klaar bent met het bewerken van het bestand, sluit u het met CTRL + o en sluit u de nano-editor af (CTRL+x). Schakel vervolgens de Apache CGI-module in en start de server opnieuw op. om alle tot nu toe aangebrachte wijzigingen toe te passen door de onderstaande opdrachten uit te voeren:


a2enmod cgi cgid
service apache2 restart
OR
systemctl restart apache2.service     [For systemd init scripts]

Op RedHat-systemen

4. Om de Apache CGI-interface voor CentOS/RHEL in te schakelen, opent u het httpd.conf Apache-configuratiebestand en voegt u de volgende regels toe onder aan 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 de wijzigingen toe te passen, start u de httpd daemon opnieuw op door de volgende opdracht te geven:


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

Stap 3: Blader door de verzamelde webinterface

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


http://192.168.1.211/collect-web/

Stap 4: Beveilig de verzamelde web-URL met een wachtwoord met behulp van Apache-authenticatie

6. Als u de toegang tot de Collectd-web-interface wilt beperken door deze te beschermen met behulp van het Apache-authenticatiemechanisme (.htpasswd), waarvoor bezoekers nodig zijn om een gebruikersnaam en een wachtwoord in te voeren om toegang te krijgen tot een webbron.

Om dit te doen, moet u het apache2-utils pakket installeren en een set inloggegevens voor lokale authenticatie aanmaken. Om dit doel te bereiken, geeft u eerst de volgende opdracht 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. Genereer vervolgens een gebruikersnaam en een wachtwoord die worden opgeslagen in een verborgen lokaal .htpass-bestand onder de Apache-standaardhost 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. Bij de volgende stap, nadat u het .htpass-bestand heeft gegenereerd, opent u de Apache-standaardhost voor bewerking en instrueert u de server om htpasswd basic te gebruiken authenticatie aan de serverzijde door het volgende instructieblok toe te voegen, zoals geïllustreerd in 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>

9. De laatste stap om de wijzigingen weer te geven is het herstarten van de Apache server door het onderstaande commando uit te voeren en naar de Coollectd-web URL-pagina te gaan als hierboven omschreven.

Er zou een pop-up moeten verschijnen op de webpagina waarin om uw authenticatiegegevens wordt gevraagd. Gebruik de eerder aangemaakte gebruikersnaam en het wachtwoord om toegang te krijgen tot de Collectd-webinterface.


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