Este tutorial discutirá cómo puedes instalar y ejecutar la interfaz Collectd-web, que es una herramienta de monitoreo web de front-end para el demonio Collectd, en conjunto con la interfaz Apache CGI para producir salidas html gráficas con el fin de monitorear cajas Linux.

Al final del artículo, también presentaremos cómo puedes proteger la interfaz Collectd-web utilizando el mecanismo de Autenticación de Apache .hpasswd.
Requisitos
El requisito de este artículo es que debes tener Collectd y Collectd-Web instalados en tu sistema Linux. Para instalar estos paquetes, debes seguir los Pasos #1 y #2 del artículo anterior de esta serie en:
Solo sigue los siguientes dos pasos del enlace anterior:
Step 1: Install Collectd Service Step 2: Install Collectd-Web and Dependencies
Una vez que hayas completado con éxito estas dos cosas requeridas, puedes continuar con las instrucciones adicionales en este artículo para configurar Collectd-web con Apache CGI.
Paso 1: Instalando el Servidor Web Apache
1. Suponiendo que ya has instalado el servidor web Apache en tu sistema, si no lo has hecho, puedes instalarlo usando el siguiente comando según la distribución de Linux que tengas.
# apt-get install apache2 [On Debian based Systems] # yum install httpd [On RedHat based Systems]
2. Después de instalar Apache, cambie el directorio a la raíz del documento del servidor web predeterminado (que se encuentra en la ruta del sistema /var/www/html/ o /var/www y clone el proyecto Collectd-web Github emitiendo los comandos a continuación:
# cd /var/www/html # git clone https://github.com/httpdss/collectd-web.git
También, haga que el script Collectd-web sea ejecutable emitiendo el siguiente comando:
# chmod +x /var/www/html/collectd-web/cgi-bin/graphdefs.cgi
Paso 2: Habilitar Apache CGI (scripts .cgi) para el Host Predeterminado
3. Para que Apache ejecute los scripts CGI ubicados en el directorio cgi-bin de Collectd-web HTML del host predeterminado, es necesario habilitar explícitamente la interfaz CGI de Apache para scripts Bash (con extensión .cgi) modificando el host predeterminado de sites-available y agregando el bloque de declaraciones a continuación.
En Sistemas Debian
Primero abra el archivo de configuración del host predeterminado de Apache para editar con el editor nano:
# nano /etc/apache2/sites-available/000-default.conf
Mientras el archivo está abierto para edición, agregue el siguiente bloque de directivas debajo de la directiva Document Root como se ilustra en la imagen a continuación:
<Directory /var/www/html/collectd-web/cgi-bin> Options Indexes ExecCGI AllowOverride All AddHandler cgi-script .cgi Require all granted </Directory>

Después de editar el archivo, ciérrelo con CTRL + o y salga del editor nano (CTRL+x), luego habilite el módulo CGI de Apache y reinicie el servidor para aplicar todos los cambios realizados hasta ahora emitiendo los comandos a continuación:
# a2enmod cgi cgid # service apache2 restart OR # systemctl restart apache2.service [For systemd init scripts]

En Sistemas RedHat
4. Para habilitar la interfaz CGI de Apache para CentOS/RHEL, abra el archivo de configuración de Apache httpd.conf y agregue las siguientes líneas al final del archivo:
# nano /etc/httpd/conf/httpd.conf
Agregue el siguiente fragmento al archivo httpd.conf.
ScriptAlias /cgi-bin/ “/var/www/html/collectd-web/cgi-bin" Options FollowSymLinks ExecCGI AddHandler cgi-script .cgi .pl
Para aplicar los cambios, reinicie el demonio httpd emitiendo el siguiente comando:
# service httpd restart OR # systemctl restart httpd [For systemd init scripts]
Paso 3: Navegar por la Interfaz de Collectd-web
5. Para visitar la interfaz de Collectd-web y visualizar estadísticas sobre su máquina recopiladas hasta ahora, abra un navegador y navegue hasta la ubicación URI de su máquina Dirección IP/collectd-web/ utilizando el protocolo HTTP.
http://192.168.1.211/collect-web/

Paso 4: Proteger con Contraseña la URL de Collectd-web utilizando Autenticación de Apache
6. En caso de que desee limitar el acceso a la interfaz de Collectd-web protegiéndola mediante el mecanismo de Autenticación de Apache (.htpasswd), lo que requiere que los visitantes ingresen un nombre de usuario y una contraseña para acceder a un recurso web.
Para hacerlo, necesita instalar el paquete apache2-utils y crear un conjunto de credenciales para la autenticación local. Para lograr este objetivo, primero emita el siguiente comando para instalar el paquete apache2-utils:
# apt-get install apache2-utils [On Debian based Systems] # yum install httpd-tools [On RedHat based Systems]
7. A continuación, genere un nombre de usuario y una contraseña que se almacenarán en un archivo local oculto .htpass ubicado en la ruta predeterminada del host Apache Collectd-web emitiendo el siguiente comando:
# htpasswd -c /var/www/html/collectd-web/.htpass your_username
Intente proteger este archivo asignando los siguientes permisos:
# chmod 700 /var/www/html/collectd-web/.htpass # chown www-data /var/www/html/collectd-web/.htpass
8. En el siguiente paso, después de haber generado el archivo .htpass, abre el host predeterminado de Apache para editarlo e instruir al servidor para usar autenticación básica del lado del servidor con htpasswd añadiendo el siguiente bloque de directivas como se ilustra en la captura de pantalla a continuación:
<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. El último paso para reflejar los cambios es reiniciar el servidor Apache emitiendo el siguiente comando y visitar la página URL de Coollectd-web como se describe arriba.
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/