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.

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

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]

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/

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

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


Source:
https://www.tecmint.com/monitor-linux-server-resources-with-collectd-web-and-apache-cgi/