Monitorare le Risorse del Server con Collectd-web e Apache CGI in Linux

Questo tutorial discuterà di come è possibile installare ed eseguire l’interfaccia Collectd-web, che è uno strumento di monitoraggio web front-end per il demone Collectd, insieme all’interfaccia Apache CGI per produrre output html grafici al fine di monitorare le caselle Linux.

Monitor Linux Server Resources

Alla fine dell’articolo presenteremo anche come proteggere l’interfaccia Collectd-web utilizzando il meccanismo di autenticazione Apache .hpasswd.

Requisiti

Il requisito di questo articolo è che devi avere Collectd e Collectd-Web installati sul tuo sistema Linux. Per installare questi pacchetti, devi seguire i Passaggi #1 e #2 dall’articolo precedente di questa serie su:

  1. Installare Collectd e Collectd-Web in Linux

Segui solo i seguenti due passaggi dal link sopra:

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

Una volta completate con successo queste due cose richieste, puoi continuare con le istruzioni ulteriori in questo articolo per configurare Collectd-web con Apache CGI.

Passo 1: Installazione del server web Apache

1. Presumendo che tu abbia già installato il server web Apache sul tuo sistema, altrimenti puoi installarlo usando il seguente comando in base alla tua distribuzione Linux.

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

Dopo aver installato Apache, cambia la directory alla radice dei documenti del tuo server web predefinito (che si trova sotto il percorso di sistema /var/www/html/ o /var/www e clona il progetto Collectd-web Github mediante i comandi seguenti:

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

Inoltre, rendi eseguibile lo script Collectd-web seguendo il comando sottostante:

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

Passaggio 2: Abilita Apache CGI (script .cgi) per l’host predefinito

3. Affinché Apache esegua gli script CGI situati nella directory cgi-bin dell’host predefinito HTML Collectd-web, è necessario abilitare esplicitamente l’interfaccia CGI di Apache per gli script Bash (con estensione .cgi) modificando l’host predefinito sites-available e aggiungendo il blocco di istruzioni sottostante.

Nei sistemi Debian

Innanzitutto, apri il file di configurazione dell’host predefinito di Apache per la modifica con l’editor nano:

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

Mentre il file è aperto per la modifica, aggiungi il seguente blocco di direttive sotto la direttiva Document Root come illustrato nell’immagine sottostante:

<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

Dopo aver terminato la modifica del file, chiudilo con CTRL + o ed esci dall’editor nano (CTRL+x), quindi abilita il modulo Apache CGI e riavvia il server per applicare tutte le modifiche effettuate finora mediante i comandi sottostanti:

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

Nei sistemi RedHat

4. Per abilitare l’interfaccia CGI di Apache per CentOS/RHEL, apri il file di configurazione di Apache httpd.conf e aggiungi le seguenti righe in fondo al file:

# nano /etc/httpd/conf/httpd.conf

Aggiungi il seguente estratto al file httpd.conf.

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

Per applicare le modifiche, riavvia il demone httpd emettendo il seguente comando:

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

Passaggio 3: Sfoglia l’Interfaccia Web di Collectd

5. Per visitare l’interfaccia web di Collectd e visualizzare le statistiche sulla tua macchina raccolte finora, apri un browser e vai al tuo indirizzo IP della macchina /collectd-web/ utilizzando il protocollo HTTP.

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

Passaggio 4: Proteggi con Password l’URL di Collectd-web utilizzando l’Autenticazione Apache

6. Nel caso in cui desideri limitare l’accesso all’interfaccia di Collectd-web proteggendola con il meccanismo di Autenticazione Apache (.htpasswd), che richiede ai visitatori di inserire un nome utente e una password per accedere a una risorsa web.

Per farlo, devi installare il pacchetto apache2-utils e creare un set di credenziali per l’autenticazione locale. Per raggiungere questo obiettivo, emetti prima il seguente comando per installare il pacchetto apache2-utils:

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

7. Successivamente, genera un nome utente e una password che verranno memorizzati in un file locale nascosto .htpass situato nel percorso predefinito dell’host Apache Collectd-web emettendo il comando sottostante:

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

Prova a proteggere questo file assegnando i seguenti permessi:

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

8. Al passo successivo, dopo aver generato il file .htpass, apri il file host predefinito di Apache per modificarlo e istruisci il server ad utilizzare l’autenticazione di base lato server htpasswd aggiungendo il seguente blocco di direttive come illustrato nella schermata sottostante:

<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. L’ultimo passo per riflettere le modifiche è riavviare il server Apache emettendo il comando sottostante e visitare la pagina URL di Coollectd-web come descritto sopra.

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/