Ricerca nel sito web

Come installare lo strumento di monitoraggio LibreNMS su Debian 11/10


LibreNMS è uno strumento di monitoraggio della rete open source e completo che offre un'ampia gamma di funzionalità e funzionalità di monitoraggio per i tuoi dispositivi di rete.

Le caratteristiche principali includono:

  • Rilevamento automatico dell'intera rete utilizzando i protocolli ARP, SNMP, BGP, OSPF, LLDP e FDP.
  • Un sistema di avviso altamente personalizzabile e che può essere ottimizzato per inviare avvisi tramite e-mail, Slack e altri canali.
  • Una dashboard semplice e facilmente personalizzabile.
  • Un'API completa per la gestione e la rappresentazione grafica dei dati dal tuo server di monitoraggio.
  • Ampio supporto dei dispositivi: supporta un'ampia gamma di fornitori di hardware come Cisco, Juniper, HP e molti altri.
  • Aggiornamenti automatici e correzioni di bug.
  • Autenticazione a più fattori.
  • Supporto nativo per app Android e iOS.
  • e molti altri.

In questa guida installeremo lo strumento di monitoraggio LibreNMS su Debian 11/10.

Passaggio 1: installa Nginx, MariaDB e PHP

Per iniziare, aggiorna i repository e installa i pacchetti prerequisiti come segue:

sudo apt update
sudo apt install software-properties-common wget apt-transport-https

Il passaggio successivo è installare Nginx e pacchetti aggiuntivi come curl, git, SNMP e python che saranno richiesti dallo strumento di monitoraggio LibreNMS.

Quindi, esegui il comando:

sudo apt install nginx-full curl acl fping graphviz composer git imagemagick mtr-tiny nmap python3-pip python3-memcache python3-mysqldb python3-dotenv python3-pymysql rrdtool snmp snmpd whois python3-redis python3-systemd python3-setuptools python3-systemd

Successivamente, installa il server database MariaDB, PHP e le estensioni PHP aggiuntive necessarie allo strumento di monitoraggio LibreNMS.

sudo apt install mariadb-server php php-fpm php-cli php-xml php-common php-gd php-json php-snmp php-pdo php-mysql php-zip php-curl php-mbstring php-pear php-bcmath

Una volta installato, assicurati di abilitare i servizi Nginx, php-fpm, MariaDB e SNMP come mostrato.

sudo systemctl enable --now nginx
sudo systemctl enable --now php7.4-fpm
sudo systemctl enable --now mariadb
sudo systemctl enable --now snmpd.service

Passaggio 2: configura TimeZone per PHP

Il passaggio successivo richiede di configurare o impostare il fuso orario PHP. Questo viene fatto nel file php.ini che è il file di configurazione PHP predefinito.

Accedi ai file di configurazione php.ini nei seguenti percorsi utilizzando il tuo editor preferito.

sudo nano /etc/php/7.4/fpm/php.ini
sudo nano /etc/php/7.4/cli/php.ini

Passa al parametro date.timezone e impostalo sul tuo fuso orario. Per ottenere un elenco completo di tutti i fusi orari supportati, vai al sito PHP ufficiale.

In questo esempio, impostiamo il fuso orario su UTC.

date.timezone = UTC

Quindi salva le modifiche ed esci dai file.

Passaggio 3: crea un database per LibreNMS

In questo passaggio creeremo un database per l'installazione di LibreNMS. Ma prima, proteggiamo il database eseguendo il seguente script:

sudo mysql_secure_installation

Segui le istruzioni dettagliate che ti guideranno su come creare la password root di MariaDB, rimuovere gli utenti anonimi, testare il database e infine disabilitare l'accesso root remoto.

Successivamente, accedi a MariaDB:

sudo mysql -u root -p

Quindi eseguire i seguenti comandi per creare un database e un utente del database e assegnare tutti i privilegi all'utente del database.

CREATE DATABASE librenms_db CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'librenms_user'@'localhost' IDENTIFIED BY 'P@ssword321'; 
GRANT ALL PRIVILEGES ON librenms_db.* TO 'librenms_user'@'localhost';

Quindi salva le modifiche e chiudi il prompt di MariaDB.

FLUSH PRIVILEGES;
EXIT;

Sono necessarie alcune ottimizzazioni del database. Quindi apri il file di configurazione di MariaDB mostrato:

sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf

Quindi incolla le seguenti righe di codice nella sezione "mysqld".

innodb_file_per_table=1
lower_case_table_names=0

Salvare le modifiche ed uscire dal file. Per applicare le modifiche, riavviare il server del database.

sudo systemctl restart mariadb

Passaggio 4: aggiungi l'utente LibreNMS

Devi anche creare un nuovo utente LibreNMS. Questo è l'utente con cui verrà eseguito LibreNMS. In questo esempio, stiamo creando un utente chiamato librenms con i seguenti attributi.

sudo useradd librenms -d /opt/librenms -M -r -s /bin/bash
sudo usermod -aG librenms www-data
  • L'opzione -d imposta la directory home dell'utente librenms nella directory /opt/librenms.
  • L'opzione -r configura l'utente librenms come utente di sistema.
  • L'opzione -M salta la creazione di una directory home per l'utente poiché è già stata definita utilizzando l'opzione -d.
  • L'opzione -s specifica il tipo di shell, in questo caso bash.

Passaggio 5: clonare il repository Git di LibreNMS

Cambiando marcia, ora cloneremo il repository git LibreNMS per iniziare a configurarlo.

Esegui i seguenti comandi per clonare il repository Git

cd /opt
sudo git clone https://github.com/librenms/librenms.git

Quindi torna alla directory home.

cd  ~

Successivamente, dobbiamo assegnare la proprietà e le autorizzazioni della directory alla directory home Librenms. Per ottenere ciò, esegui i seguenti comandi:

sudo chown -R librenms:librenms /opt/librenms
sudo chmod 771 /opt/librenms

Inoltre, modifica gli elenchi di controllo degli accessi per la directory home di Librenms utilizzando il comando setfacl. Ciò garantisce al gruppo Librenms il permesso di leggere e scrivere nelle sottodirectory nella directory home.

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/

Passaggio 6: installa le dipendenze PHP

Alcune dipendenze sono richieste da PHP durante la configurazione dello strumento di monitoraggio LibreNMS. Per fare ciò, devi aver effettuato l'accesso come librenmsuser.

sudo su - librenms

Successivamente, installa tutte le dipendenze PHP come segue.

./scripts/composer_wrapper.php install --no-dev

Una volta completata l'installazione delle dipendenze, uscire dall'utente librenms.

exit

Passaggio 7: configurare PHP-FPM per l'installazione di LibreNMS

Andando avanti, dobbiamo apportare alcune modifiche a PHP-FPM per supportare LibreNMS.

Per realizzare questo. Copia il file "www.conf" che è il file di configurazione del pool predefinito nel file "librenms.conf" come segue.

sudo cp /etc/php/7.4/fpm/pool.d/www.conf /etc/php/7.4/fpm/pool.d/librenms.conf

Successivamente, modifica il file "librenms.conf".

sudo nano /etc/php/7.4/fpm/pool.d/librenms.conf

Modificare i parametri dell'utente e del gruppo in librenms come mostrato

user = librenms
group = librenms

Successivamente, modifica l'attributo listen in /run/php-fpm-librenms.sock come segue.

listen = /run/php-fpm-librenms.sock

Salva le modifiche ed esci dalla configurazione. Assicurati di riavviare il servizio PHP-FPM per applicare le modifiche.

sudo systemctl restart php7.4-fpm

Passaggio 8: configurare il demone SNMP

Il protocollo SNMP è un protocollo TCP/IP che raccoglie e organizza parametri o informazioni dai dispositivi gestiti su una rete.

La maggior parte degli strumenti di monitoraggio come Cacti sfruttano il servizio SNMP per raccogliere informazioni da host remoti. E lo stesso vale per LibreNMS.

Per configurare il servizio SNMP, vai avanti e copia il file snmpd.conf.example nel file /etc/snmp/snmpd.conf.

sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf

Successivamente, modifica il file snmpd.conf.

sudo vim /etc/snmp/snmpd.conf

Individua la stringa RANDOMSTRINGGOESHERE.

com2sec readonly  default         RANDOMSTRINGGOESHERE

Cambialo in librenms.

com2sec readonly  default		  librenms

Salva le modifiche ed esci.

Successivamente, scarica il file distro, che è un file che rileva automaticamente il sistema operativo dei nodi gestiti e ne distingue la distribuzione.

sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro

Rendilo eseguibile e riavvia il servizio SNMP.

sudo chmod +x /usr/bin/distro
sudo systemctl restart snmpd

Passaggio 9: configura Nginx per LibreNMS

Con Nginx come server web preferito, dobbiamo fare un passo in più e configurarlo per poter server LibreNMS.

Per prima cosa creeremo un blocco server Nginx come mostrato.

sudo nano /etc/nginx/sites-available/librenms

Incolla le seguenti righe di codici. Per l'attributo server_name, fornisci il nome di dominio registrato o l'indirizzo IP del tuo server.

server {
  listen      80;
  server_name 23.92.30.144;        
  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/php-fpm.sock;
  }
  location ~ /.ht {
   deny all;
  }
 }

Salvare le modifiche ed uscire dal file di configurazione. Successivamente, abilita il blocco del server Nginx creando un collegamento simbolico come mostrato.

sudo ln -s /etc/nginx/sites-available/librenms /etc/nginx/sites-enabled/

Quindi riavvia Nginx per applicare le modifiche apportate alla configurazione.

sudo systemctl restart nginx

Inoltre, puoi verificare che tutte le impostazioni di Nginx siano corrette eseguendo il comando:

sudo nginx -t

Passaggio 10: copiare la configurazione di Logrotate e Cron

Per impostazione predefinita, LibreNMS memorizza i suoi log nella directory /opt/librenms/logs. Con il passare del tempo questo può facilmente riempirsi e presentare problemi di spazio. Per evitare ciò, si consiglia la rotazione dei vecchi file di registro.

Copia quindi il file logrotate nella directory LibreNMS nella directory /etc/logrotate.d/.

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

Altrettanto importante, copiare il file del processo cron come segue per consentire il polling e il rilevamento automatici di nuovi dispositivi

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

Passaggio 11: completa la configurazione di LibreNMS da un browser

Per completare la configurazione da un browser, vai al seguente URL:

http://server-ip

Verrà visualizzato l'elenco di controllo pre-installazione. Se tutto sembra a posto, fai clic sull'icona "database" a destra.

Assicurati di inserire tutti i dettagli del database e fai clic su "Verifica credenziali".

Una volta convalidati i dettagli del database, fai clic su "Crea database".

Una volta superato questo passaggio, fai clic sull'icona successiva per creare un utente Amministratore. Fornire il nome utente, la password e l'e-mail dell'utente amministratore e fare clic su "Aggiungi utente".

Infine, fai clic sull'ultimo pulsante per completare l'installazione.

Ti imbatterai in questo errore che ti informa che il programma di installazione "Impossibile scrivere il file: /opt/librenms/.env".

Ma non preoccuparti. Aggiorna semplicemente manualmente il file /opt/librenms/.env con i dettagli del database forniti. Questi dettagli varieranno nel tuo caso.

Quindi, accedi al file.

sudo nano /opt/librenms/.env

Elimina tutto il contenuto del file e incolla i dettagli forniti sopra nel file e salva le modifiche.

Quindi torna indietro e fai clic sul pulsante "Riprova". Questo ti porta alla pagina di accesso di LibreNMS. Fornire le credenziali di accesso e fare clic su "Accedi".

Una volta effettuato l'accesso otterrai tale dashboard. Da qui puoi iniziare ad aggiungere i tuoi host e monitorare varie metriche.

E questo è tutto. In questa guida ti abbiamo guidato attraverso l'installazione dello strumento di monitoraggio LibreNMS su Debian 11/10.