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 -p
Creiamo il database:
CREATE DATABASE librenms;
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'<ip>' IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;
exit
Dove <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 git
Se 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.1
poi 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/librenms
Creiamo 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 restart
L’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.php
Fatto questo si configura il DB con:
php build-base.php
E si aggiunge l’utente:
php adduser.php <name> <pass> 10
Fatto questo possiamo iniziare ad aggiungere dispositivi, cominciando da localhost:
php addhost.php localhost public v2c
Una volta aggiunto dobbiamo dire al software di fare la discovery:
php discovery.php -h all && php poller.php -h all
LibreNMS 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>&1
Finiamo aggiungendo librenms a crontab:
cp librenms.cron /etc/cron.d/librenms
Il 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!
sei un grande,