LibreNMS è un software open source autodiscovering di monitoraggio di rete basato su PHP / MySQL / SNMP che include il supporto per un’ampia gamma di hardware e sistemi operativi di rete tra cui Cisco, Linux, FreeBSD, Juniper, Brocade, Foundry, HP e molti altri.
CARATTERSTICHE DI LIBRENMS
Automatic discovery:
scopri automaticamente l’intera rete utilizzando CDP, FDP, LLDP, OSPF, BGP, SNMP e ARP.
Avvisi personalizzabili: sistema di avviso altamente flessibile, notifica via e-mail, irc, allentamento e altro ancora.
Accesso API: un’API completa per gestire, rappresentare graficamente e recuperare i dati dall’installazione.
Sistema di fatturazione: genera fatture di larghezza di banda per le porte sulla rete in base all’utilizzo o al trasferimento.
Aggiornamenti automatici: rimani aggiornato automaticamente con correzioni di bug, nuove funzionalità e altro ancora.
Polling distribuito: ridimensionamento orizzontale per crescere con la rete.
App per iPhone: è disponibile l’app nativa per iPhone che fornisce funzionalità di base.
App Android: è disponibile l’app nativa per Android che fornisce funzionalità di base.
METODI DI AUTENTICAZIONE
MySQL
HTTP
LDAP
Raggio
Active Directory
In questo tutorial, ti mostrerò come installare e configurare LibreNMS su un server Ubuntu 16.04 con Nginx come server web e MariaDB come database.
PRE-REQUISITI
Un server Ubuntu 16.04 con un utente non root con privilegi sudo
INSTALLAZIONE PACCHETTI
Il primo passo che dobbiamo fare per installare LibreNMS Monitoring Tools è installare alcuni pacchetti necessari sul server.
Lanciare quindi i comandi in sequenza:
0 1 2 |
sudo apt install fping imagemagick whois mtr-tiny nmap python-mysqldb snmpd rrdtool git snmp graphviz sudo apt-get update sudo apt install acl composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.0-cli php7.0-curl php7.0-fpm php7.0-gd php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-snmp php7.0-xml php7.0-zip python-memcache python-mysqldb rrdtool snmp snmpd whois |
CONTROLLI NGINX
0 1 2 |
systemctl enable nginx netstat -plntu | grep 80 curl -I localhost |
CREAZIONE UTENTE LIBRENMS
0 1 |
useradd librenms -d /opt/librenms -M -r usermod -a -G librenms www-data |
INSTALLAZIONE LIBRENMS
0 1 |
cd /opt composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master |
CONFIGURAZIONE MYSQL
0 1 |
sudo systemctl restart mysql sudo mysql -u root -p |
Inserire la password da assegnare all’utente di root del DB
Lanciare quindi i seguenti comandi dalla shell del mysql:
0 1 2 3 4 |
CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci; CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost'; FLUSH PRIVILEGES; exit |
NOTA: inserire al posto del campo ‘password’ una password a proprio piacimento.
Adesso aprire il file di configurazione di mariadb con il seguente comando:
0 |
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf |
All’interno della sezione [mysqld] aggiungere:
0 1 |
innodb_file_per_table=1 lower_case_table_names=0 |
Se è tutto corretto dovremmo vedere una schermata come quella sovrastante
Salvare e chiudere il file di configurazione.
Riavviare il SQL con il comando:
0 |
systemctl restart MySQL |
CONFIGURARE E AVVIARE IL WEB SERVER PHP-FPM
Prima di procedere assicurarsi che date.timezone sia impostato in php.ini nel tuo fuso orario preferito.
Nel nostro caso il time zone sarà Europe/Rome
Lanciare i seguenti comandi per editare i file php.ini
0 |
sudo nano /etc/php/7.0/fpm/php.ini |
Cercare la stringa ;date.timezone = quindi de-commentarla e aggiungere Europe/Rome
In pratica dovrebbe essere così : date.timezone = Europe/Rome
Salvare e chiudere il file php.ini
Adesso lanciamo il comando:
0 |
sudo nano /etc/php/7.0/cli/php.ini |
Anche qui fare la stessa cosa fatta per il file precedente.
Quindi cercare la stringa ;date.timezone = quindi de-commentarla e aggiungere Europe/Rome
Salvare e chiudere il file php.ini
Per verificare che sia tutto ok lanciare il comando:
0 |
sudo timedatectl |
Dovremmo vedere le seguenti righe:
0 1 2 3 4 5 6 |
Local time: ven 2018-08-24 11:58:25 CEST Universal time: ven 2018-08-24 09:58:25 UTC RTC time: ven 2018-08-24 09:58:25 Time zone: Europe/Rome (CEST, +0200) Network time on: yes NTP synchronized: yes RTC in local TZ: no |
Lanciare quindi i seguenti comandi in sequenza:
0 1 2 3 |
sudo phpenmod mcrypt sudo systemctl restart php7.0-fpm sudo systemctl restart MySQL systemctl enable php7.0-fpm |
CONFIGURAZIONE NGINX
Editare il file librenms.conf lanciando il comando:
0 |
sudo nano /etc/nginx/conf.d/librenms.conf |
Aggiungere la seguente configurazione cambiando solo il nome del server (SERVER.DOMINIO.COM):
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
server { listen 80; server_name SERVER.DOMINIO.COM; root /opt/librenms/html; index index.php; charset utf-8; gzip on; gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon; location / { try_files $uri $uri/ /index.php?$query_string; } location /api/v0 { try_files $uri $uri/ /api_v0.php?$query_string; } location ~ \.php { include fastcgi.conf; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; } location ~ /\.ht { deny all; } } |
Salvare e chiudere il file di configurazione.
Lanciare i seguenti comandi:
0 1 |
sudo rm /etc/nginx/sites-enabled/default sudo systemctl restart nginx |
CONFIGURAZIONE SNMPD
Lanciare il seguente comando per copiare il file di configurazione di esempio:
0 |
sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf |
Quindi aprire il file di configurazione con il comando:
0 |
sudo nano /etc/snmp/snmpd.conf |
Modifica il testo che dice RANDOMSTRINGGOESHERE e imposta la stringa della tua community.
0 |
com2sec readonly default labcommunity |
Salvare e chiudere il file di configurazione
Lanciare i seguenti comandi in sequenza:
0 1 2 |
sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro sudo chmod +x /usr/bin/distro sudo systemctl restart snmpd |
CONFIGURAZIONE CRON JOB
Lanciare il comando:
0 |
sudo cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms |
CONFIGURAZIONE LOG
LibreNMS mantiene i log in /opt/librenms/logs.
Nel tempo questi possono diventare grandi e essere ruotati. Per ruotare i vecchi registri è possibile utilizzare il file di configurazione log rotate che vedete di seguito:
0 |
sudo cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms |
CONFIGURAZIONE PERMESSI LOG
0 1 2 |
sudo chown -R librenms:librenms /opt/librenms sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/ sudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/ |
CONFIGURAZIONE FIREWALL UFW (FACOLTATIVO)
NOTA BENE:
di default il firewall su Ubuntu è disattivato quindi questa operazione è del tutto facoltativa e serve a rendere il server più sicuro.
Ora, è necessario consentire i protocolli ssh, http, https e la porta utilizzata da snmpd 161 sul firewall.
Lanciare i comandi:
0 1 2 3 4 |
sudo ufw allow ssh sudo ufw allow http sudo ufw allow https sudo ufw allow 161/udp sudo ufw enable |
Adesso se lanciamo il comando:
0 |
sudo ufw status |
possiamo vedere lo stato del firewall se è attivo.
NOTA BENE: io per comodità lascio sempre il firewall ufw in stato Inattivo.
INSTALLAZIONE LIBRENMS
Procediamo quindi con l’installazione di LibreNMS attraverso il browser web.
Aprire il browser Web, digitare il nome di dominio LibreNMS “http://SERVER.DOMINIO.COM.install.php” nella barra degli indirizzi e premere Invio.
ATTENZIONE
A volte può succedere che mancando alcune dipendenze esca fuori un messaggio di errore
Se vedete nel browser un messaggio come quello dell’immagine sovrastante eseguite gli steps elencati di seguito:
Posizionarsi nella cartella /opt/librenms con il comando
0 |
cd /opt/librenms/ |
Lanciare il comando:
0 |
su librenms |
quindi inserire la password dell’utente librenms
Lanciare il comando:
0 |
run ./scripts/composer_wrapper.php install --no-dev |
Verrai reindirizzato alla pagina install.php mostrando il risultato dei controlli di supporto del modulo PHP.
Assicurarsi che tutto lo stato sia verde come mostrato nella figura sovrastante.
Fai clic su Next Stage per continuare.
Inserire la password dell’utente librenms creato in precedenza quindi cliccare su Next Stage
verificare che non ci siano errori quindi cliccare su Goto Add User
Inserire la user, password e email dell’account amministrativo via GUI quindi cliccare su Add User
Cliccare su Generate Config per generare la configurazione del server
In questa pagina dovremmo vedere il file di configurazione generato.
A questo punto non dobbiamo far altro che collegarci al server in SSH e lanciare il seguente comando:
0 |
sudo nano /opt/librenms/config.php |
All’interno del file copiare tutto il codice che viene visualizzato nella pagina web
Salvare e chiudere il file config.php
A questo punto l’installazione è terminata e per tutta sicurezza cliccare su validate your install and fix any issue per fare un check complessivo ed eventualmente correggere alcuni errori.
Questa è la schermata di login nella quale bisogna inserire le credenziali di admin create in precedenza.
Una volta aggiunti i device, configurati gli alerts e impostato tutti i parametri a nostro piacimento sarà possibile creare delle dashboard come quella mostrata nell’immagine sopra.
CHECK LIBRENMS VIA SSH
Per verificare che l’applicativo LibreNMS funzioni correttamente da SSS basta lanciare il seguente comando
0 1 |
cd /opt/librenms ./validate.php |
Se è tutto OK dovremmo vedere una schermata come mostrato nell’immagine sovrastante.
Sono Raffaele Chiatto, un appassionato di informatica a 360 gradi.
Tutto è iniziato nel 1996, quando ho scoperto il mondo dell'informatica grazie a Windows 95, e da quel momento non ho più smesso di esplorare e imparare.
Ogni giorno mi dedico con curiosità e passione a scoprire le nuove frontiere di questo settore in continua evoluzione.
0 commenti