Guida all'Installazione e Configurazione di Jffnms
1.
Principi di Jffnms
Introduzione
Jffnms è un sistema di gestione e
monitoraggio della rete, in grado di reperire informazioni da differenti tipi
di host e protocolli. Scopo di questa guida è mostrare come installare
correttamente Jffnms e come tenere sotto controllo i propri sistemi con questo
stupefacente strumento.
2.
Configurazione iniziale
Scegliere le corrette flag USE
Il pacchetto Jffnms ha le seguenti flag USE:
| Flag USE per Jffnms |
Descrizione |
| mysql |
Abilita il salvataggio dei dati di Jffnms in un backend Mysql |
| postgres |
Abilita il salvataggio dei dati di Jffnms in un backend PostgreSQL |
| snmp |
Abilita il supporto al protocollo snmp, grazie al quale Jffnms ottiene
dati da altri host.
|
Flag USE per PHP
Essendo scritto in PHP, Jffnms mantiene una stretta dipendenza con le flag USE
di quest'ultimo. Pertanto per installarlo correttamente, occorre compilare il
pacchetto PHP con (almeno) le seguenti flag USE impostate:
| Flag USE per PHP |
Descrizione |
| gd |
Abilita il supporto per la libreria media-libs/gd (per disegnare grafici
dinamicamente)
|
| wddx |
Abilita il supporto per Web Distributed Data eXchange, che permette a
differenti applicazioni web di scambiarsi dati facilmente
|
| sockets |
Abilita il supporto per connessioni tcp/ip |
| session |
Abilita il supporto per sessioni persistenti |
| spl |
Abilita il supporto per la Libreria Standard di PHP |
| cli |
Compila ed installa /usr/bin/php |
Installazione
Come ogni pacchetto presente in Portage, Jffnms può venire installato con
emerge:
Codice 2.1: Installare Jffnms |
# emerge jffnms
|
Jffnms dovrebbe venire installato in /opt/jffnms/.
Configurare Apache 2
Avvertenza:
La procedura di configurazione di Apache descritta in seguito è piuttosto
basilare e non copre tutti gli aspetti di come installare un server web.
|
Jffnms può venire eseguito su un computer locale piuttosto che su un server
remoto. In questo caso, molto probabilmente non sarà presente un server web
Apache configurato e funzionante. Portage si sarà già occupato
dell'installazione; tuttavia occorre configurare Apache e verificarne il
funzionamento. Anzitutto Apache deve venire aggiunto al runlevel di default:
Codice 2.2: Aggiungere Apache 2 al runlevel di default |
# rc-update add apache2 default
|
Nel caso in cui non sia ancora stato fatto, avviare Apache2;
Codice 2.3: Avviare Apache2 |
# /etc/init.d/apache2 start
|
Infine, indirizzando il browser su http://localhost/, dovrebbe
apparire una pagina di presentazione riguardante il web server appena
installato. Dopo aver verificato che Apache è correttamente funzionante,
occorre configurare il modulo di PHP (mod_php): con il proprio editor di testi
preferito, aprire il file /etc/conf.d/apache2 e aggiungere -D
PHP5 alla variabile APACHE2_OPTS.
Codice 2.4: Configurazione di Apache 2 |
# nano -w /etc/conf.d/apache2
APACHE2_OPTS="-D DEFAULT_VHOST -D PHP5"
|
A questo punto, è necessario creare un collegamento simbolico alla cartella
in cui è stato installato Jffnms nella directory radice del server web. In
Gentoo, Apache utilizza in modo predefinito
/var/www/localhost/htdocs come directory radice. Quindi:
Codice 2.5: Creare un collegamento simbolico a Jffnms |
# cd /var/www/localhost/htdocs && ln -s /opt/jffnms/
|
Configurare PHP
Adesso che Apache è in funzione, è il momento di configurare PHP. Jffnms ha
bisogno che vengano impostate alcune variabili all'interno del file
php.ini, solitamente riposto in
/etc/php/apache2-php5/php.ini. Occorre impostare le seguenti
variabili:
Codice 2.6: Configurare PHP |
# nano -w /etc/php/apache2-php5/php.ini
register_globals = On
register_argc_argv = On
error_reporting = E_ALL & ~E_NOTICE
allow_url_fopen = On
include_path = ".:/usr/share/php5:/usr/share/php:/usr/share/php/PEAR"
short_open_tag = On
|
Configurazione del database
Avvertenza:
La procedura di configurazione descritta in seguito è piuttosto basilare e non
copre tutti gli aspetti di come installare un database server.
|
Jffnms permette di utilizzare sia PostgreSQL che MySQL. In questa guida viene
indicato per entrambi come creare il database e le tabelle necessarie a Jffnms
per salvare i suoi dati. Notare che non è obbligatorio che il database risieda
sulla stessa macchina che esegue Jffnms; in ogni caso, salvo il fatto che i
comandi seguenti debbano essere eseguiti sulla macchina remota, la procedura
risulta la stessa.
Configurare PostgreSQL
Nota:
Se è già presente un'istanza di PostgreSQL funzionante, procedere con la sezione seguente.
|
Aggiungere PostgreSQL al runlevel predefinito, in modo che venga avviato
automaticamente. Assicurati di cambiare lo ${SLOT} del tuo PostgreSQL
slot, come ad esempio 9.1 o 9.2
Codice 2.7: Aggiungere PostgreSQL al runlevel di default |
# rc-update add postgresql-${SLOT} default
|
Ora è necessario configurare il database PostgreSQL. Assicurati
di cambiare ${VERSION} con quella la versione del tuo PostgreSQL,
come ad esempio 9.0.9 o 9.1.5
Codice 2.8: Preparare PostgreSQL |
# emerge --config postgresql-server-${VERSION}
|
Avviare PostgreSQL:
Codice 2.9: Avviare PostgreSQL |
# /etc/init.d/postgresql-${SLOT} start
|
Utilizzare PostgreSQL come banca dati
Dopo aver configurato PostgreSQL, occorre creare un utenza ed un database per
Jffnms.
Codice 2.10: Creare l'utente e il database per Jffnms |
# psql template1 postgres
template1=# create user jffnms password 'jfnms' createdb;
template1=# \connect template1 jffnms
template1=# create database jffnms;
template1=# \q
|
Infine è necessario creare tutte le tabelle in cui verranno immagazzinati i
dati:
Codice 2.11: Creare le tabelle per Jffnms |
# psql jffnms jffnms < /opt/jffnms/docs/jffnms-0.9.3.pgsql
|
A questo punto la configurazione di PostgreSQL per Jffnms dovrebbe essere
terminata.
Utilizzare MySQL come banca dati.
Avvertenza:
L'installazione e la configurazione di MySQL non viene trattata in questa guida.
Si faccia riferimento a Guida introduttiva
per MySQL.
|
Nel caso si voglia utilizzare Jffnms con MySQL, bisogna prima creare un database
ed un utente MySQL. Dopodiché si deve creare la propria tabella MySQL:
Codice 2.12: Creare una tabella mysql. |
# mysql -u jffnms -pjffnms jffnms < /opt/jffnms/docs/jffnms-0.9.3.mysql
|
Scoprire e monitorare le porte UDP
Avvertenza:
Questa sezione spiega come impostare ed utilizzare dei programmi come
amministratore, quindi può non risultare adeguata per sistemi in cui sia
necessario un elevato livello di sicurezza.
|
Per abilitare la ricerca ed il monitoraggio di porte UDP, occorre impostare il
flag SUID per i programmi nmap e fping. Questo può indebolire la
sicurezza del sistema nel caso in cui sia presente un errore in uno di essi.
Per impostare il flag SUID, eseguire i seguenti comandi:
Codice 2.13: Impostare la ricerca ed il monitoraggio delle porte UDP |
# chmod +s /usr/bin/nmap ; chmod a+x /usr/bin/nmap
# chmod +s /usr/sbin/fping ; chmod a+x /usr/sbin/fping
|
3.
Configurare Jffnms
Schedulare i processi
Per reperire informazioni dai sistemi da monitorare, Jffnms si affida ad un
processo schedulato ad intervalli regolari tramite crontab.
Codice 3.1: Leggere dati ad intervalli regolari |
# crontab -u jffnms /opt/jffnms/docs/unix/crontab
# crontab -e -u jffnms
|
Configurazione finale
A questo punto, Jffnms dovrebbe essere correttamente installato sul sistema,
tuttavia occorre ancora configurare il processo server. Fortunatamente, Jffnms
fornisce una interfaccia web di semplice utilizzo, tramite la quale è possibile
impostare l'accesso al database o gestire gli utenti, ma anche controllare se
la configurazione dei sistemi da monitorare rispetta le esigenze di Jffnms.
E' possibile accedere a questa interfaccia web al seguente indirizzo:
http://localhost/jffnms/admin/setup.php. Si può effettuare il login
nella propria nuova installazione usando il nome utente e la password
admin. Per ulteriori informazioni sulle funzioni avanzate, visitare la
pagina web di Jffnms.
4.
Supporto
Jffnms è un'applicazione meravigliosa, ma leggermente complicata da installare e
configurare. Nel caso in cui sorgano dei problemi, esistono alcuni siti di
riferimento:
I contenuti di questo documento sono rilasciati sotto la licenza Creative
Commons - Attribution / Share Alike.
|