Oggi parliamo di LibreNMS un’alternativa, totalmente free ed open source, al più noto Observium.
LibreNMS serve per il monitoraggio e il discovery dei dispositivi presenti sulla rete. La discovery può avvenire tramite i seguenti protocolli:
- CDP
- FDP
- LLDP
- OSPF
- BGP
- SNMP
- ARP
Tra le varie funzionalità include anche un sistema di Billing associato al consumo di banda rilevato dal sistema.
Inoltre il sistema di update automatico tiene sempre aggiornato il software alle ultime release.
E’ presente un sistema che permette di integrare facilmente i plugin scritti dalla community, sempre più in espansione, e una serie di API che permettono di integrare la piattaforma su eventuali sistemi di monitoraggio personalizzati.
Vediamo come installarlo su Debian/Ubuntu
1. Installazione Mysql
apt-get install mysql-server mysql-client
mysql -u root -pCreiamo il database:
CREATE DATABASE librenms;
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'<ip>' IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;
exitDove <ip> è l’indirizzo IP della macchina dove stiamo installando il database e <password> è la password che vogliamo associare all’utente librenms.
2. Installazione Componenti Aggiuntive
apt-get install libapache2-mod-php5 php5-cli php5-mysql php5-gd php5-snmp php-pear snmp graphviz php5-mcrypt php5-json apache2 fping imagemagick whois mtr-tiny nmap python-mysqldb snmpd mysql-client php-net-ipv4 php-net-ipv6 rrdtool gitSe vogliamo aggiungere a monitoraggio anche l’host dove abbiamo installato il software basta semplicemente editare il file /etc/snmp/snmpd.conf
e inserire:
rocommunity public 127.0.0.1poi con un “service snmpd restart” abbiamo configurato l’snmp per il sistema locale.
Adesso non ci resta che “clonare” il progetto:
cd /opt
git clone https://github.com/librenms/librenms.git librenms
cd /opt/librenmsCreiamo e modifichiamo i permessi delle directory che si occupano della costruzione dei grafici:
mkdir rrd logs
chown www-data:www-data logs/ rrd/<Aggiungiamo il VirtualHost per Apache:
<VirtualHost *:80>
DocumentRoot /opt/librenms/html/
ServerName librenms.example.com
CustomLog /opt/librenms/logs/access_log combined
ErrorLog /opt/librenms/logs/error_log
AllowEncodedSlashes On
<Directory "/opt/librenms/html/">
Require All granted
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>
</VirtualHost>Attiviamo l’host creato abilitando anche la funzione mcrypt di php:
php5enmod mcrypt
a2ensite librenms.conf
a2enmod rewrite
service apache2 restartL’installazione adesso può proseguire o tramite interfaccia web, dal link http://<ip_locale>/install.php oppure manualmente andando a configurare il file config.php:
cp config.php.default config.php
vim config.phpFatto questo si configura il DB con:
php build-base.phpE si aggiunge l’utente:
php adduser.php <name> <pass> 10Fatto questo possiamo iniziare ad aggiungere dispositivi, cominciando da localhost:
php addhost.php localhost public v2cUna volta aggiunto dobbiamo dire al software di fare la discovery:
php discovery.php -h all && php poller.php -h allLibreNMS utilizza come Poller, il Job Snijders’ poller-wrapper.py
Questo utilizza fino ad un massimo di 16 threads, ma generalmente si più ridurre (il numero consigliato è 4*num_core_CPU)
Di seguito un esempio di come ridurre a 12:
/opt/librenms/poller-wrapper.py 12 >> /dev/null 2>&1Finiamo aggiungendo librenms a crontab:
cp librenms.cron /etc/cron.d/librenmsIl gioco è fatto!
Come detto in precedenza il sistema si auto-aggiorna, per disattivare questa opzione basta andare nel file di config e trovare la riga:
#$config[‘update’] = 0;
Togliere il commento (#) così il sistema non effettuerà nessun aggiornamento.
Enjoy!
paolodaniele.it – linux & networking








sei un grande,