Recherche de site Web

Surveiller les ressources du serveur avec Collectd-web et Apache CGI sous Linux


Ce didacticiel explique comment installer et exécuter l'interface Collectd-web, qui est un outil de surveillance Web frontal pour le démon Collectd, en conjonction avec Apache CGI. afin de produire des sorties graphiques html afin de surveiller les boîtiers Linux.

À la fin de l'article, nous présenterons également comment protéger l'interface Collectd-web à l'aide du mécanisme d'authentification Apache .hpasswd.

Exigences

La condition requise pour cet article est que vous devez avoir Collectd et Collectd-Web installés sur votre système Linux. Pour installer ces packages, vous devez suivre les étapes #1 et #2 de l'article précédent de cette série à l'adresse :

  1. Installer Collectd et Collectd-Web sous Linux

Suivez uniquement les deux étapes suivantes à partir du lien ci-dessus :


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

Une fois ces deux tâches requises terminées avec succès, vous pouvez continuer avec les instructions supplémentaires de cet article pour configurer Collectd-web avec Apache CGI.

Étape 1 : Installation du serveur Web Apache

1. En supposant que vous avez déjà installé le serveur Web Apache sur votre système, sinon vous pouvez l'installer à l'aide de la commande suivante en fonction de votre distribution Linux.


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

2. Une fois Apache installé, remplacez le répertoire par la racine des documents de votre serveur Web par défaut (qui se trouve sous /var/www/html/ ou /var/www chemin système et clonez le projet Collectd-web Github en exécutant les commandes ci-dessous :


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

Rendez également le script Collectd-web suivant exécutable en exécutant la commande suivante :


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

Étape 2 : Activer Apache CGI (scripts .cgi) pour l'hôte par défaut

3. Pour qu'Apache puisse exécuter les scripts CGI situés sous le répertoire hôte par défaut HTML Collectd-web cgi-bin, vous devez activer explicitement l'interface Apache CGI pour les scripts Bash (avec .cgi extension) en modifiant l'hôte par défaut sites-available et en ajoutant le bloc d'instructions ci-dessous.

Sur les systèmes Debian

Ouvrez d'abord le fichier de configuration de l'hôte par défaut d'Apache pour le modifier avec l'éditeur nano :


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

Pendant que le fichier est ouvert pour édition, ajoutez le bloc de directive suivant sous la directive Document Root, comme illustré sur l'image ci-dessous :


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

Une fois que vous avez terminé de modifier le fichier, fermez-le avec CTRL + o et quittez l'éditeur nano (CTRL+x), puis activez le module Apache CGI et redémarrez le serveur pour pour appliquer toutes les modifications apportées jusqu'à présent en exécutant les commandes ci-dessous :


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

Sur les systèmes RedHat

4. Pour activer l'interface Apache CGI pour CentOS/RHEL, ouvrez le fichier de configuration httpd.conf Apache et ajoutez les lignes suivantes au bas du fichier :


nano /etc/httpd/conf/httpd.conf

Ajoutez l'extrait suivant au fichier httpd.conf.


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

Afin d'appliquer les modifications, redémarrez le démon httpd en exécutant la commande suivante :


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

Étape 3 : Parcourir l'interface Collectd-Web

5. Afin de visiter l'interface Collectd-web et de visualiser les statistiques sur votre machine collectées jusqu'à présent, ouvrez un navigateur et accédez à l'Adresse IP/collectd- de votre machine. localisation URI web/ à l'aide du protocole HTTP.


http://192.168.1.211/collect-web/

Étape 4 : Protection par mot de passe de l'URL Web collectée à l'aide de l'authentification Apache

6. Si vous souhaitez limiter l'accès à l'interface Collectd-web en la protégeant à l'aide du mécanisme d'authentification Apache (.htpasswd), qui nécessite que les visiteurs pour saisir un nom d'utilisateur et un mot de passe afin d'accéder à une ressource Web.

Pour ce faire, vous devez installer le package apache2-utils et créer un ensemble d'informations d'identification pour l'authentification locale. Pour atteindre cet objectif, exécutez d'abord la commande suivante pour installer le package apache2-utils :


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

7. Ensuite, générez un nom d'utilisateur et un mot de passe qui seront stockés dans un fichier .htpass local caché situé sous l'hôte par défaut d'Apache Collectd-web. chemin en exécutant la commande ci-dessous :


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

Essayez de protéger ce fichier en attribuant les autorisations suivantes :


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

8. À l'étape suivante, après avoir généré le fichier .htpass, ouvrez l'hôte par défaut d'Apache pour le modifier et demandez au serveur d'utiliser htpasswd basic. authentification côté serveur en ajoutant le bloc de directive suivant, comme illustré sur la capture d'écran ci-dessous :


<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. La dernière étape afin de refléter les modifications consiste à redémarrer le serveur Apache en exécutant la commande ci-dessous et à visiter la page URL Coollectd-web comme décrit ci-dessus.

Une fenêtre contextuelle devrait apparaître sur la page Web vous demandant vos informations d'authentification. Utilisez le nom d'utilisateur et le mot de passe créés précédemment pour accéder à l'interface Web Collectd.


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