Ricerca nel sito web

LibreNMS: uno strumento di monitoraggio della rete completo per Linux


LibreNMS è un sistema di monitoraggio della rete basato su PHP open source, potente e ricco di funzionalità con rilevamento automatico che utilizza il protocollo SNMP. Supporta un'ampia 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:

  1. Rileva automaticamente un'intera rete utilizzando questi protocolli: CDP, FDP, LLDP, OSPF, BGP, SNMP e ARP.
  2. Ha un'interfaccia utente Web ottimizzata per dispositivi mobili, con dashboard personalizzabili.
  3. Supporta un agente Unix.
  4. Supporta il ridimensionamento orizzontale per espandersi con la tua rete.
  5. Supporta un sistema di avviso altamente flessibile e personalizzabile; invia notifiche tramite e-mail, irc, slack e altro.
  6. Supporta un'API per la gestione, la grafica e il recupero dei dati dal tuo sistema.
  7. Offre un sistema di fatturazione del traffico.
  8. Supporta anche app Android e iOS che offrono funzionalità di base.
  9. Supporta l'integrazione con NfSen, Collectd, SmokePing, RANCID e Oxidized.
  10. Supporta più metodi di autenticazione come MySQL, HTTP, LDAP, Radius e Active Directory.
  11. Consente l'aggiornamento automatico e molte altre funzionalità.

È disponibile una demo online da provare prima di installare LibreNMS su sistemi Linux.

Demo URL: https://demo.librenms.org/
Username: demo
Password: demo

Ambiente di test:

  1. Ubuntu 16.04 con stack LEMP
  2. CentOS 7 con stack LEMP

In questo tutorial impareremo come installare LibreNMS Network Monitoring Tool su un Ubuntu o CentOS Linux appena installato (le stesse istruzioni funzionano anche su CentOS distribuzioni basate su >Debian e RHEL).

NOTA: tutte queste istruzioni in questo articolo devono essere eseguite come utente root, in caso contrario, utilizza il comando sudo per ottenere root privilegi dell'utente.

Passaggio 1: installare i pacchetti richiesti

1. Inizia innanzitutto installando tutti i pacchetti richiesti utilizzando il gestore 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, nginx, php-fpm, mariadb e snmp< verranno avviati e abilitati per l'avvio automatico all'avvio (questo è normalmente il caso con Ubuntu), altrimenti puoi 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: installa 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. Quindi installa LibreNMS tramite il comando compositore 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

Passaggio 3: crea il database LibreNMS

5. Prima di poter iniziare a utilizzare il server MariaDB, devi proteggere la tua installazione, eseguire lo script di sicurezza fornito nel pacchetto binario. Ti verrà chiesto di impostare una password di root, rimuovere gli utenti anonimi, disabilitare l'accesso root da remoto e rimuovere il database di test.

Puoi avviare lo script emettendo il comando seguente e rispondendo a tutte le domande con sì/y.

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 (ricordati di utilizzare una password complessa/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. Successivamente, disabilita per il momento la modalità rigorosa MySQL (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]

Nella sezione [mysqld] aggiungi.

innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0

Quindi riavviare il server del database per rendere effettive le modifiche.

sudo systemctl restart mysql     [On Debian/Ubuntu]
systemctl restart mariadb        [On CentOS/RHEL]

Passaggio 4: configura e avvia PHP-FPM

8. Successivamente, imposta il tuo date.timezone nel php.ini sul tuo fuso orario corrente, ad esempio “Africa/Kampala ", come mostrato nello screenshot seguente.

------------ 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. Successivamente abilita il modulo PHP mcrypt in Ubuntu e riavvia php-fpm come mostrato.

------------ 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 php-fpm.

vi /etc/php-fpm.d/www.conf

Apportare 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 per accedere all'interfaccia utente 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 di blocco del server predefinita 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, dovrai disabilitare la sezione sito predefinito, se questa è la sezione unico sito che stai ospitando. Elimina la sezione server dal file /etc/nginx/nginx.conf.

14. Anche su CentOS/RHEL, è necessario installare il strumento policy per SELinux e configurare >contesti necessari a 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. Consenti fping creando il file http_fping.tt con i seguenti contenuti.

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 esegui 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 utilizzi il firewall su CentOS/RHEL, abilita l'accesso HTTP/HTTPS tramite 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. Ora utilizza la configurazione SNMP di esempio per creare il file di configurazione e aprirlo 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 modificala con la stringa della tua community come mostrato nello screenshot.

19. Successivamente, scarica uno script di shell sul tuo sistema, che aiuta a rilevare quale sistema operativo e se è Linux 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: crea Cron e configura Logrotate

20. Ora esegui il comando seguente per impostare un processo cron per LibreNMS.

cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms

21. Successivamente, tutti i registri LibreNMS vengono registrati in /opt/librenms/logs, è possibile che sia necessario configurare questi registri in modo che vengano ruotati automaticamente , utilizzando il file di configurazione logrotate fornito, in questo modo.

cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms

Quindi impostare le autorizzazioni appropriate sulla directory root di installazione di LibreNMS e sui file di registro.

------------ 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: accedi al programma di installazione Web LibreNMS

22. Successivamente, utilizza il seguente URL per accedere al programma di installazione web e seguire le istruzioni visualizzate sullo schermo.

http://librenms.tecmint.lan/install.php

Affinché questo indirizzo funzioni su un computer locale, è necessario impostare un DNS locale utilizzando il file degli host (/etc/hosts), per la risoluzione del dominio locale o a scopo di test prima della messa in funzione.

192.168.43.31 tecmint.lan
192.168.43.31 librenms.tecmint.lan

23. Vedrai la pagina di benvenuto dell'installazione come mostrato nello screenshot seguente, fai clic su Fase successiva per continuare.

24. Quindi inserisci le impostazioni (host del database, porta, nome utente e password utente) per il database LibreNMS e fai clic su Fase successiva per procedere.

25. Il programma di installazione web inizierà ora a importare il database MySQL, l'operazione richiederà del tempo. Tieni presente che il processo proverà a fermarsi in determinati punti, fai semplicemente clic su Riprova per continuare con il processo di importazione.

26. Una volta completata l'importazione del database, dovresti visualizzare il messaggio "Il database è aggiornato!", come mostrato nello screenshot qui sotto. Quindi fai clic su Vai ad Aggiungi utente per procedere.

27. Successivamente, aggiungi un utente LibreNMS, specifica nome utente, password ed e-mail, quindi fai clic su Aggiungi utente per rendere effettive le modifiche.

28. Ora fai clic su crea la configurazione LibreNMS per il tuo sistema, facendo clic 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 al programma di installazione web per continuare con il processo di installazione, facendo clic su Fine installazione.

31. Ora che l'installazione di LibreNMS è completa, puoi fare clic su "convalida la tua installazione e risolvi eventuali problemi", dovrebbe apparire la pagina di accesso.

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

33. Dal processo di convalida dell'installazione, LibreNMS ha scoperto due problemi, uno è che i dispositivi non sono stati aggiunti (per ora questo è un avviso) e in secondo luogo, abbiamo non impostare l'autorizzazione appropriata sul file di configurazione (/opt/librenms/config.php) che è stato aggiunto manualmente, come mostrato nella schermata seguente.

Ora esegui il comando seguente per impostare l'autorizzazione corretta sul file di configurazione.

sudo chown -R librenms:librenms /opt/librenms/config.php 

34. Per aggiungere dispositivi, vai a: http://librenms.tecmint.lan/addhost. Dopo aver aggiunto i dispositivi, puoi andare alla home page e aggiungere varie dashboard.

Questo è tutto! Puoi trovare ulteriori informazioni, inclusa l'installazione e la configurazione, nella documentazione di LibreNMS all'indirizzo https://docs.librenms.org/.

LibreNMS è un sistema di monitoraggio della rete completo che supporta una varietà di hardware di rete. Ci auguriamo che questa guida all'installazione sia chiara. Se hai domande, contattaci tramite il modulo di feedback riportato di seguito.