LibreNMS è un sistema di monitoraggio di rete basato su PHP open source, potente e ricco di funzionalità che utilizza il protocollo SNMP. Supporta una vasta gamma di sistemi operativi tra cui Linux, FreeBSD, nonché dispositivi di rete tra cui Cisco, Juniper, Brocade, Foundry, HP e molti altri.
Caratteristiche di LibreNMS:
- Scopre automaticamente un’intera rete utilizzando questi protocolli: CDP, FDP, LLDP, OSPF, BGP, SNMP e ARP.
- Ha un’interfaccia Web mobile friendly, con cruscotti personalizzabili.
- Supporta un agente Unix.
- Supporta il ridimensionamento orizzontale per espandersi con la tua rete.
- Supporta un sistema di avvisi altamente flessibile e personalizzabile; invia notifiche tramite email, irc, slack e altro ancora.
- Supporta un’API per gestire, graficare e recuperare dati dal tuo sistema.
- Offre un sistema di fatturazione del traffico.
- Supporta anche app Android e iOS che offrono funzionalità di base.
- Supporta l’integrazione con NfSen, collectd, SmokePing, RANCID e Oxidized.
- Supporta metodi di autenticazione multipli come MySQL, HTTP, LDAP, Radius e Active Directory.
- Consente l’aggiornamento automatico e molte altre funzionalità.
È disponibile una demo online per provare prima di installare LibreNMS su sistemi Linux.
Demo URL: https://demo.librenms.org/ Username: demo Password: demo
Ambiente di test:
In questo tutorial impareremo come installare LibreNMS Network Monitoring Tool su un sistema Linux Ubuntu o CentOS appena installato (le stesse istruzioni funzionano anche su distribuzioni Debian e RHEL).
NOTA: Tutte le istruzioni in questo articolo devono essere eseguite come utente root, se non lo sei, utilizza il comando sudo per ottenere i privilegi dell’utente root.
Passaggio 1: Installare i pacchetti necessari
1. Inizia installando tutti i pacchetti necessari utilizzando il gestore di pacchetti predefinito come mostrato.
Su Ubuntu/Debian
$ sudo apt install 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-mcrypt php7.0-mysql php7.0-snmp php7.0-xml php7.0-zip python-memcache python-mysqldb rrdtool snmp snmpd whois
Su CentOS/RHEL
# yum install epel-release # rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm # yum install composer cronie fping git ImageMagick jwhois mariadb mariadb-server mtr MySQL-python net-snmp net-snmp-utils nginx nmap php72w php72w-cli php72w-common php72w-curl php72w-fpm php72w-gd php72w-mysql php72w-process php72w-snmp php72w-xml php72w-zip python-memcached rrdtool
2. Una volta installati tutti i pacchetti, i servizi nginx, php-fpm, mariadb e snmp verranno avviati ed abilitati per l’avvio automatico al boot (questo è normalmente il caso di Ubuntu), altrimenti è possibile eseguire i comandi seguenti per avviarli e abilitarli.
------------ On Debian/Ubuntu ------------ $ sudo systemctl nginx start php7.0-fpm mysql snmp $ sudo systemctl enable nginx php7.0-fpm mysql snmp ------------ On CentOS/RHEL ------------ # systemctl nginx start php-fpm mariadb snmpd # systemctl enable nginx php-fpm mariadb snmpd
Passaggio 2: Installare lo strumento di monitoraggio LibreNMS
3. Successivamente, crea un utente di sistema chiamato librenms, con il comando useradd; dove il flag -M
disabilita la creazione della directory home dell’utente e -r
abilita la creazione di un account di sistema. Quindi aggiungi l’utente librenms al gruppo www-data (su Ubuntu) o nginx (su CentOS) come segue.
------------ On Debian/Ubuntu ------------ $ sudo useradd librenms -d /opt/librenms -M -r $ sudo usermod -a -G librenms www-data ------------ On CentOS/RHEL ------------ # useradd librenms -d /opt/librenms -M -r # usermod -a -G librenms nginx
4. Successivamente, installa LibreNMS tramite il comando composer come mostrato.
------------ On Debian/Ubuntu ------------ $ cd /opt $ sudo composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master ------------ On CentOS/RHEL ------------ # cd /opt # composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master
Passo 3: Crea il Database di LibreNMS
5. Prima di poter iniziare a utilizzare il server MariaDB, è necessario proteggere la tua installazione, esegui lo script di sicurezza fornito nel pacchetto binario. Ti chiederà di impostare una password di root, rimuovere gli utenti anonimi, disabilitare il login remoto di root e rimuovere il database di test.
Puoi avviare lo script emettendo il comando seguente e rispondendo a tutte le domande con sì/s
.
$ sudo mysql_secure_installation [On Debian/Ubuntu] # mysql_secure_installation [On CentOS/RHEL]
6. Quindi accedi al database MariaDB per creare un database per LibreNMS (ricorda di utilizzare una password forte/sicura in un ambiente di produzione).
$ sudo mysql -u root -p MariaDB [(none)]> CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci; MariaDB [(none)]> CREATE USER 'librenms'@'localhost' IDENTIFIED BY '=@!#@%$libre'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> exit
7. In seguito, disabilita la modalità rigorosa di MySQL per ora (la compatibilità con la modalità rigorosa di MySQL deve ancora essere aggiunta).
$ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf [On Debian/Ubuntu] # vi /etc/my.cnf [On CentOS/RHEL]
All’interno della sezione [mysqld]
per favore aggiungi.
innodb_file_per_table=1 sql-mode="" lower_case_table_names=0
Quindi riavvia il server del database per applicare le modifiche.
$ sudo systemctl restart mysql [On Debian/Ubuntu] # systemctl restart mariadb [On CentOS/RHEL]
Passo 4: Configura e Avvia PHP-FPM
8. Successivamente, imposta il tuo date.timezone nel file php.ini
con il tuo fuso orario attuale, ad esempio “Africa/Kampala”, come mostrato nella seguente schermata.
------------ On Debian/Ubuntu ------------ $ sudo vim /etc/php/7.0/fpm/php.ini $ sudo vim /etc/php/7.0/cli/php.ini ------------ On CentOS/RHEL ------------ # vi /etc/php.ini

9. Attiva quindi il modulo PHP mcrypt in Ubuntu e riavvia php-fpm come indicato.
------------ On Debian/Ubuntu ------------ $ sudo phpenmod mcrypt $ sudo systemctl restart php7.0-fpm
10. Su CentOS/RHEL è necessario apportare le seguenti modifiche nel file di configurazione di php-fpm.
# vi /etc/php-fpm.d/www.conf
Effettua le seguenti modifiche.
;user = apache user = nginx group = apache ; keep group as apache ;listen = 127.0.0.1:9000 listen = /var/run/php-fpm/php7.2-fpm.sock listen.owner = nginx listen.group = nginx listen.mode = 0660
11. Riavvia il servizio php-fpm come mostrato.
# systemctl restart php-fpm
Passaggio 5: Configura Nginx per LibreNMS
12. In questo passaggio, è necessario configurare un blocco server Nginx per librenms al fine di accedere all’interfaccia web. Crea un file .conf
come mostrato.
$ sudo vim /etc/nginx/conf.d/librenms.conf [On Debian/Ubuntu] # vi /etc/nginx/conf.d/librenms.conf [On CentOS/RHEL]
Aggiungi il seguente config, modifica server_name
come richiesto.
server { listen 80; server_name librenms.example.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; } }
13. Quindi salva ed esci dal file. Rimuovi anche la configurazione predefinita del blocco server e riavvia il server Nginx.
------------ On Debian/Ubuntu ------------ $ sudo rm /etc/nginx/sites-enabled/default $ sudo systemctl restart nginx ------------ On CentOS/RHEL ------------ # systemctl restart nginx
NOTA: Su CentOS/RHEL, sarà necessario disabilitare la sezione del sito predefinito, se questo è l’unico sito che stai ospitando. Elimina la sezione del server dal file /etc/nginx/nginx.conf.
14. Anche su CentOS/RHEL, è necessario installare lo strumento di policy per SELinux e configurare i contesti necessari da LibreNMS utilizzando i seguenti comandi.
------------ On CentOS/RHEL ------------ # yum install policycoreutils-python # semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/logs(/.*)?' # semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/logs(/.*)?' # restorecon -RFvv /opt/librenms/logs/ # semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/rrd(/.*)?' # semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/rrd(/.*)?' # restorecon -RFvv /opt/librenms/rrd/ # setsebool -P httpd_can_sendmail=1 # setsebool -P httpd_execmem 1
15. Consentire fping creando il file http_fping.tt
con il seguente contenuto.
module http_fping 1.0; require { type httpd_t; class capability net_raw; class rawip_socket { getopt create setopt write read }; } #============= httpd_t ============== allow httpd_t self:capability net_raw; allow httpd_t self:rawip_socket { getopt create setopt write read };
16. Quindi eseguire questi comandi.
------------ On CentOS/RHEL ------------ # checkmodule -M -m -o http_fping.mod http_fping.tt # semodule_package -o http_fping.pp -m http_fping.mod # semodule -i http_fping.pp
17. Se stai utilizzando il Firewall su CentOS/RHEL, abilita l’accesso HTTP/HTTPS attraverso il firewall.
------------ On CentOS/RHEL ------------ # firewall-cmd --zone public --add-service http # firewall-cmd --permanent --zone public --add-service http # firewall-cmd --zone public --add-service https # firewall-cmd --permanent --zone public --add-service https
Passaggio 6: Configurare SNMPD per LibreNMS
18. Utilizza ora la configurazione di esempio SNMP per creare il tuo file di configurazione e aprilo per la modifica, come segue.
------------ On Debian/Ubuntu ------------ $ sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf $ sudo vim /etc/snmp/snmpd.conf ------------ On CentOS/RHEL ------------ # cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf # vi /etc/snmp/snmpd.conf
Trova la stringa RANDOMSTRINGGOESHERE
e cambiala con la tua community string come mostrato nello screenshot.

19. Successivamente, scarica uno script shell sul tuo sistema, che aiuta a rilevare quale OS e se è Linux, quindi rileverà quale distribuzione Linux stai utilizzando:
------------ On Debian/Ubuntu ------------ $ 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 ------------ On CentOS/RHEL ------------ # curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro # chmod +x /usr/bin/distro # systemctl restart snmpd
Passaggio 7: Creare Cron e Configurare Logrotate
20. Ora esegui il comando di seguito per configurare un lavoro cron per LibreNMS.
# cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
21. Successivamente, tutti i log di LibreNMS vengono registrati in /opt/librenms/logs, è necessario configurare questi log per essere ruotati automaticamente, utilizzando il file di configurazione logrotate fornito, come segue.
# cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
Imposta quindi i permessi appropriati sulla directory radice dell’installazione di LibreNMS e sui file di log.
------------ On Debian/Ubuntu ------------ $ sudo chown -R librenms:librenms /opt/librenms $ sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs $ sudo setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs ------------ On CentOS/RHEL ------------ # chown -R librenms:librenms /opt/librenms # setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs # setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs
Passaggio 8: Accedere all’installatore web di LibreNMS
22. Successivamente, utilizza l’URL seguente per accedere all’installatore web e segui le istruzioni visualizzate.
http://librenms.tecmint.lan/install.php
Per far funzionare questo indirizzo su una macchina locale, è necessario configurare un DNS locale utilizzando il file hosts (/etc/hosts), per la risoluzione del dominio locale o per scopi di test prima di andare online.
192.168.43.31 tecmint.lan 192.168.43.31 librenms.tecmint.lan

23. Vedrai la pagina di benvenuto all’installazione come mostrato nello screenshot seguente, clicca su Prossima Fase per continuare.

24. Successivamente inserisci le impostazioni (host del database, porta, nome utente e password utente) per il database di LibreNMS e clicca su Prossima Fase per procedere.

25. L’installatore web inizierà ora ad importare il database MySQL, ci vorrà del tempo. Nota che il processo cercherà di mettersi in pausa in certi punti, basta cliccare su Riprova per continuare con il processo di importazione.

26. Una volta completata l’importazione del database, dovresti vedere il messaggio “Il database è aggiornato!”, come mostrato nello screenshot sottostante. Quindi clicca su Passa a Aggiungi Utente per procedere.

27. Successivamente, aggiungi un utente LibreNMS, specifica nome utente, password ed email, quindi clicca su Aggiungi Utente per effettuare le modifiche.

28. Ora clicca su crea la configurazione di LibreNMS per il tuo sistema, cliccando su Genera Configurazione.


29. Una volta generata la configurazione, come mostrato nello screenshot precedente, copiala e salvala nella directory principale della tua installazione, in un file chiamato /opt/librenms/config.php.
# vi /opt/librenms/config.php
<?php ## Have a look in defaults.inc.php for examples of settings you can set here. DO NOT EDIT defaults.inc.php! ### Database config $config['db_host'] = 'localhost'; $config['db_port'] = '3306'; $config['db_user'] = 'librenms'; $config['db_pass'] = '=@!#@%$libre'; $config['db_name'] = 'librenms'; $config['db_socket'] = ''; // This is the user LibreNMS will run as //Please ensure this user is created and has the correct permissions to your install $config['user'] = 'librenms'; ### Locations - it is recommended to keep the default #$config['install_dir'] = "/opt/librenms"; ### This should *only* be set if you want to *force* a particular hostname/port ### It will prevent the web interface being usable form any other hostname #$config['base_url'] = "http://librenms.company.com"; ### Enable this to use rrdcached. Be sure rrd_dir is within the rrdcached dir ### and that your web server has permission to talk to rrdcached. #$config['rrdcached'] = "unix:/var/run/rrdcached.sock"; ### Default community $config['snmp']['community'] = array("public"); ### Authentication Model $config['auth_mechanism'] = "mysql"; # default, other options: ldap, http-auth #$config['http_auth_guest'] = "guest"; # remember to configure this user if you use http-auth ### List of RFC1918 networks to allow scanning-based discovery #$config['nets'][] = "10.0.0.0/8"; #$config['nets'][] = "172.16.0.0/12"; #$config['nets'][] = "192.168.0.0/16"; # Update configuration #$config['update_channel'] = 'release'; # uncomment to follow the monthly release channel #$config['update'] = 0; # uncomment to completely disable updates
30.Salva e chiudi il file. Quindi torna all’installatore web per continuare il processo di installazione, cliccando su Termina Installazione.

31.Ora che l’installazione di LibreNMS è completa, puoi fare clic su “valida l’installazione e risolvi eventuali problemi”, e comparirà la pagina di accesso.

32.Successivamente, inserisci le credenziali utente per accedere alla pagina di convalida.

33.Dal processo di convalida dell’installazione, LibreNMS ha riscontrato due problemi: uno riguarda l’aggiunta dei dispositivi (al momento è solo un avviso) e in secondo luogo non abbiamo impostato le autorizzazioni appropriate sul file di configurazione (/opt/librenms/config.php) che è stato aggiunto manualmente, come mostrato nello screenshot qui sotto.

Ora esegui il seguente comando per impostare le autorizzazioni corrette sul file di configurazione.
$ sudo chown -R librenms:librenms /opt/librenms/config.php
34.Per aggiungere dispositivi, vai su: http://librenms.tecmint.lan/addhost. Dopo aver aggiunto i dispositivi, puoi andare alla pagina iniziale e aggiungere vari cruscotti.

Ecco fatto! Puoi trovare ulteriori informazioni, inclusa l’installazione e la configurazione, sulla Documentazione di LibreNMS su https://docs.librenms.org/.
LibreNMS è un sistema di monitoraggio di rete completo che supporta una varietà di hardware di rete. Speriamo che questa guida all’installazione sia stata chiara. Se hai domande, contattaci tramite il modulo di feedback qui sotto.
Source:
https://www.tecmint.com/install-librenms-monitoring-on-ubuntu-centos/