Ricerca nel sito web

Monitora le risorse del server con Collectd-web e Apache CGI in Linux


Questo tutorial spiegherà come installare ed eseguire l'interfaccia Collectd-web, che è uno strumento di monitoraggio web front-end per il demone Collectd, insieme ad Apache CGI interfaccia per produrre output grafici html per monitorare i sistemi Linux.

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

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 dell'articolo precedente di questa serie all'indirizzo:

  1. Installa Collectd e Collectd-Web in Linux

Segui solo i due passaggi seguenti dal link sopra:


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

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

Passaggio 1: installazione del server Web Apache

1. Supponendo che tu abbia già installato il server web Apache sul tuo sistema, in caso contrario puoi installarlo utilizzando il seguente comando in base alla tua distribuzione Linux.


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

2. Dopo aver installato Apache, modifica la directory nella root dei documenti del server Web predefinito (che si trova in /var/www/html/ o /var/www percorso di sistema e clonare il progetto Collectd-web Github immettendo i comandi seguenti:


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

Inoltre, rendi eseguibile il seguente script Collectd-web immettendo il seguente comando:


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

Passaggio 2: abilitare Apache CGI (script .cgi) per l'host predefinito

3. Affinché Apache possa eseguire gli script CGI situati nella directory HTML Collectd-web cgi-bin dell'host predefinito, è necessario abilitare esplicitamente l'interfaccia Apache CGI per gli script Bash (con .cgi estensione) modificando l'host predefinito siti disponibili e aggiungendo il blocco delle istruzioni seguenti.

Sui sistemi Debian

Per prima cosa apri il file di configurazione 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 seguente:


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

Dopo aver finito di modificare il file, chiudilo con CTRL + o ed esci dall'editor nano (CTRL+x), quindi abilita il modulo Apache CGI e riavvia il server in ordine per applicare tutte le modifiche apportate finora immettendo i comandi seguenti:


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

Sui sistemi RedHat

4. Per abilitare l'interfaccia Apache CGI per CentOS/RHEL, apri il file di configurazione httpd.conf Apache 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 immettendo 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 Collectd-web e visualizzare le statistiche sulla tua macchina raccolte finora, apri un browser e vai all'Indirizzo IP/collectd- della tua macchina posizione URI web/ utilizzando il protocollo HTTP.


http://192.168.1.211/collect-web/

Passaggio 4: proteggere con password l'URL Web raccolto utilizzando l'autenticazione Apache

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

Per fare ciò, devi installare il pacchetto apache2-utils e creare un set di credenziali per l'autenticazione locale. Per raggiungere questo obiettivo, esegui innanzitutto il comando seguente 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 archiviati in un file .htpass locale nascosto situato nell'host predefinito Apache Collectd-web percorso emettendo il comando seguente:


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

Prova a proteggere questo file assegnando le seguenti autorizzazioni:


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

8. Nel passaggio successivo, dopo aver generato il file .htpass, apri l'host predefinito Apache per la modifica e indica al server di utilizzare htpasswd basic autenticazione lato server aggiungendo il seguente blocco direttiva come illustrato nello screenshot seguente:


<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. L'ultimo passaggio per riflettere le modifiche è riavviare il server Apache immettendo il comando seguente e visitare la pagina URL Coollectd-web come descritto sopra.

Sulla pagina Web dovrebbe apparire un popup che richiede le credenziali di autenticazione. Utilizzare il nome utente e la password creati in precedenza per accedere all'interfaccia web di 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