Búsqueda de sitios web

Monitoree los recursos del servidor con Collectd-web y Apache CGI en Linux


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

Al final del artículo, también presentaremos cómo puede proteger la interfaz web de Collectd utilizando el mecanismo de autenticación Apache .hpasswd.

Requisitos

El requisito de este artículo es que debe tener Collectd y Collectd-Web instalados en su sistema Linux. Para instalar estos paquetes, debe seguir los pasos #1 y #2 del artículo anterior de esta serie en:

  1. Instalar Collectd y Collectd-Web en Linux

Siga únicamente los siguientes dos pasos del enlace anterior:


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

Una vez que estas dos cosas requeridas se hayan completado exitosamente, puede continuar con más instrucciones en este artículo para configurar Collectd-web con Apache CGI.

Paso 1: instalar el servidor web Apache

1. Suponiendo que ya tiene instalado el servidor web Apache en su sistema, si no, puede instalarlo usando el siguiente comando de acuerdo con su distribución de Linux.


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 de documentos de su servidor web predeterminado (que se encuentra en /var/www/html/ o /var/www ruta del sistema y clone el proyecto Collectd-web Github emitiendo los siguientes comandos:


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

Además, haga ejecutable el siguiente script Collectd-web emitiendo el siguiente comando:


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

Paso 2: Habilite Apache CGI (scripts .cgi) para el host predeterminado

3. Para que Apache ejecute los scripts CGI ubicados en el directorio HTML Collectd-web cgi-bin del host predeterminado, debe habilitar explícitamente la interfaz Apache CGI para los scripts Bash (con .cgi). extensión) modificando el host predeterminado de sitios disponibles y agregando el siguiente bloque de declaraciones.

Sobre los sistemas Debian

Primero abra el archivo de configuración del host predeterminado de Apache para editarlo con el editor nano:


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

Mientras el archivo está abierto para editarlo, agregue el siguiente bloque de directiva debajo de la directiva Document Root como se ilustra en la siguiente imagen:


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

Una vez que haya terminado de editar el archivo, ciérrelo con CTRL + o y salga del editor nano (CTRL+x), luego habilite el módulo Apache CGI y reinicie el servidor en orden. para aplicar todos los cambios realizados hasta ahora emitiendo los siguientes comandos:


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

Sobre los sistemas RedHat

4. Para habilitar la interfaz Apache CGI para CentOS/RHEL, abra el archivo de configuración httpd.conf de Apache y agregue las siguientes líneas al final del archivo:


nano /etc/httpd/conf/httpd.conf

Agregue el siguiente extracto 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: Explorar la interfaz web recopilada

5. Para visitar la interfaz Collectd-web y visualizar las estadísticas recopiladas hasta el momento sobre su máquina, abra un navegador y navegue hasta la Dirección IP/collectd- de su máquina. web/ ubicación URI utilizando el protocolo HTTP.


http://192.168.1.211/collect-web/

Paso 4: Proteger con contraseña la URL web recopilada mediante la autenticación Apache

6. En caso de que desee limitar el acceso a la interfaz Collectd-web protegiéndola mediante el mecanismo de autenticación Apache (.htpasswd), que requiere visitantes para ingresar 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 ejecute 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 .htpass local oculto ubicado en el host predeterminado de Apache Collectd-web. ruta 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, abra el host predeterminado de Apache para editarlo e indique al servidor que use htpasswd básico. autenticación del lado del servidor agregando el siguiente bloque de directivas como se ilustra en la siguiente captura de pantalla:


<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 Coollectd-web como descrito arriba.

Debería aparecer una ventana emergente en la página web solicitando sus credenciales de autenticación. Utilice el nombre de usuario y la contraseña creados anteriormente para acceder a la interfaz web de 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