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