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

Ce tutoriel discutera de la façon dont vous pouvez installer et exécuter l’interface Collectd-web, qui est un outil de surveillance web en frontal pour le démon Collectd, en conjonction avec l’interface Apache CGI afin de produire des sorties html graphiques pour surveiller les boîtes Linux.

Monitor Linux Server Resources

À la fin de l’article, nous présenterons également comment vous pouvez protéger l’interface Collectd-web en utilisant le mécanisme d’authentification Apache .hpasswd.

Exigences

L’exigence de cet article est que vous devez avoir Collectd et Collectd-Web installés sur votre système Linux. Pour installer ces paquets, 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 du lien ci-dessus :

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

Une fois ces deux éléments requis complétés avec succès, vous pouvez continuer avec les instructions supplémentaires dans 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 en utilisant la commande suivante selon votre distribution Linux.

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

2. Après l’installation d’Apache, changez le répertoire vers votre racine de document par défaut du serveur web (qui se trouve sous le chemin système /var/www/html/ ou /var/www) et clonez le projet Collectd-web Github en utilisant les commandes suivantes :

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

De plus, rendez le script Collectd-web exécutable en utilisant la commande suivante :

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

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

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

Sur les systèmes Debian

Commencez par ouvrir le fichier de configuration par défaut de l’hôte Apache pour l’édition avec l’éditeur nano :

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

Pendant que le fichier est ouvert pour l’édition, ajoutez le bloc de directives 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>
Enable CGI in Debian

Une fois que vous avez terminé d’éditer le fichier, fermez-le avec CTRL + o et quittez l’éditeur nano (CTRL+x), puis activez le module CGI d’Apache et redémarrez le serveur pour appliquer toutes les modifications apportées jusqu’à présent en utilisant les commandes suivantes :

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

Sur les systèmes RedHat

4. Pour activer l’interface CGI d’Apache pour CentOS/RHEL, ouvrez le fichier de configuration d’Apache httpd.conf et ajoutez les lignes suivantes en 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. Pour visiter l’interface Collectd-web et visualiser les statistiques de votre machine collectées jusqu’à présent, ouvrez un navigateur et accédez à l’adresse IP de votre machine/collectd-web/ en utilisant le protocole HTTP.

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

Étape 4 : Protéger l’URL de Collectd-web par un mot de passe en utilisant 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 oblige les visiteurs à saisir un nom d’utilisateur et un mot de passe pour accéder à une ressource web.

Pour ce faire, vous devez installer le paquet 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 paquet 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 le chemin par défaut de l’hôte Apache Collectd-web 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 l’édition et indiquez au serveur d’utiliser l’authentification de base côté serveur htpasswd en ajoutant le bloc de directive suivant tel qu’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>
Apache Password Protect Directory

9. La dernière étape pour refléter les changements est de redémarrer le serveur Apache en exécutant la commande ci-dessous et de visiter la page URL de Coollectd-web comme décrit ci-dessus.

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/