Come installare lo strumento di monitoraggio LibreNMS su Debian 11

16 dic 2021 6 min di lettura
Come installare lo strumento di monitoraggio LibreNMS su Debian 11
Indice dei contenuti

Introduzione

LibreNMS è uno strumento di monitoraggio della rete gratuito, open source, basato sul Web e con rilevamento automatico scritto in PHP. Utilizza MySQL o MariaDB come backend del database e utilizza SNMP per scoprire i client remoti. Supporta un'ampia gamma di dispositivi di rete tra cui Linux, Cisco, Juniper, FreeBSD, HP, Windows e altri. Supporta più metodi di autenticazione tra cui Radius, Active Directory, LDAP, MySQL e altro. È semplice, intuitivo e facile da capire e da usare per chiunque.

In questo tutorial, spiegheremo come installare LibreNMS con Nginx su Debian 11.

Se desideri installare LibreNMS su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh root@IP_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh nome_utente@IP_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Prerequisiti

  • Un server che esegue Debian 11.
  • Un nome di dominio valido puntato con l'IP del tuo server.
  • Una password di root è configurata sul tuo server.

Installare e configurare il database MariaDB

Innanzitutto, dovrai installare il server del database MariaDB sul tuo server. Puoi installarlo usando il seguente comando:

apt-get install mariadb-server -y

Una volta completata l'installazione, esegui il seguente script per proteggere l'installazione di MariaDB e impostare una password di root:

mysql_secure_installation

Rispondi a tutte le domande come mostrato di seguito:

Enter current password for root (enter for none): 
Switch to unix_socket authentication [Y/n] n
Change the root password? [Y/n] Y
New password: 
Re-enter new password: 
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] 
Reload privilege tables now? [Y/n] Y

Una volta che MariaDB è protetto, modifica il file di configurazione di MariaDB e modifica alcune impostazioni con il tuo editor preferito:

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Aggiungi le seguenti righe all'interno della sezione [mysqld]:

innodb_file_per_table=1
lower_case_table_names=0

Salva e chiudi il file, quindi riavvia MariaDB per applicare le modifiche:

systemctl restart mariadb

Successivamente, accedi a MariaDB con il seguente comando:

mysql -u root -p

Una volta effettuato l'accesso, crea un database e un utente per LibreNMS:

CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'securepassword';

Quindi, concedi tutti i privilegi al database LibreNMS usando il comando seguente:

GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';

Infine, svuota i privilegi ed esci dalla shell MariaDB usando il seguente comando:

FLUSH PRIVILEGES;
EXIT;

Una volta terminato, puoi procedere al passaggio successivo.

Installare Nginx, PHP e le dipendenze richieste

Successivamente, dovrai installare il server web Nginx, PHP e altre dipendenze richieste da LibreNMS. Puoi installarli tutti eseguendo il seguente comando:

apt-get install nginx-full nmap php-cli php-curl php-fpm php-gd php-json php-mbstring php-mysql php-snmp php-xml php-zip python3-dotenv python3-pip python3-pymysql python3-redis python3-setuptools python3-systemd rrdtool snmp snmpd whois acl curl composer fping git graphviz imagemagick mtr-tiny

Una volta installati tutti i pacchetti, modifica il file php.ini e imposta il tuo fuso orario:

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

Modifica la seguente riga:

date.timezone = UTC

Salva e chiudi il file quando hai finito.

Installare e configurare LibreNMS

Innanzitutto, crea un utente dedicato per LibreNMS usando il seguente comando useradd:

useradd librenms -d /opt/librenms -M -r -s /bin/bash

Quindi, aggiungi l'utente LibreNMS al gruppo www-data con il seguente comando usermod:

usermod -a -G librenms www-data

Quindi, scarica l'ultima versione di LibreNMS dal repository GitHub nella directory /opt:

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

Quindi, imposta la proprietà e i permessi della directory LibreNMS con i comandi chown e chmod:

chown -R librenms:librenms /opt/librenms
chmod 775 /opt/librenms setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/

Quindi, cambia l'utente in LibreNMS con il seguente comando su:

su - librenms

Successivamente, installa il compositore PHP utilizzando il seguente comando cd:

cd /opt/librenms
./scripts/composer_wrapper.php install --no-dev

Una volta installati Composer e altre dipendenze PHP, dovresti vedere il seguente output:

> @php artisan optimize
Configuration cache cleared!
Configuration cached successfully!
Route cache cleared!
Routes cached successfully!
Files cached successfully!
> @php artisan config:clear
Configuration cache cleared!
> scripts/dynamic_check_requirements.py || pip3 install --user -r requirements.txt || :
Requirement already satisfied: PyMySQL!=1.0.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 1)) (0.9.3)
Requirement already satisfied: python-dotenv in /usr/lib/python3/dist-packages (from -r requirements.txt (line 2)) (0.15.0)
Requirement already satisfied: redis>=3.0 in /usr/lib/python3/dist-packages (from -r requirements.txt (line 3)) (3.5.3)
Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from -r requirements.txt (line 4)) (52.0.0)
Collecting psutil>=5.6.0
  Downloading psutil-5.8.0-cp39-cp39-manylinux2010_x86_64.whl (293 kB)
Collecting command_runner>=1.3.0
  Downloading command_runner-1.3.0-py3-none-any.whl (17 kB)
Installing collected packages: psutil, command-runner
Successfully installed command-runner-1.3.0 psutil-5.8.0

Quindi, esci dall'utente LibreNMS usando il comando seguente:

exit

Successivamente, dovrai creare un file di configurazione separato per PHP-FPM. Puoi crearlo con il seguente comando cp:

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

Quindi, modifica il file di configurazione librenms.conf con il tuo editor preferito:

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

Cambia [www-data] in [librenms] e aggiorna anche il socket di ascolto:

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

Salva e chiudi il file, quindi riavvia il servizio PHP-FPM per applicare le modifiche alla configurazione:

systemctl restart php7.4-fpm

Una volta terminato, puoi procedere al passaggio successivo.

Configurare Nginx per LibreNMS

Successivamente, dovrai creare un file di configurazione dell'host virtuale Nginx per LibreNMS. Puoi crearlo con il seguente comando:

nano /etc/nginx/conf.d/librenms.conf

Aggiungi le seguenti righe:

server {
  listen 80;
  server_name libre.yourdomain.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 ~ [^/]\.php(/|$) {
   fastcgi_pass unix:/run/php-fpm-librenms.sock;
   fastcgi_split_path_info ^(.+\.php)(/.+)$;
   include fastcgi.conf;
  }
  location ~ /\.(?!well-known).* {
   deny all;
  }
}

Salva e chiudi il file, quindi verifica Nginx per eventuali errori di sintassi con il seguente comando:

nginx -t

Se tutto va bene, otterrai il seguente output:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Infine, riavvia Nginx per applicare le modifiche.

systemctl restart nginx php7.4-fpm

Puoi anche verificare lo stato di Nginx usando il seguente comando:

systemctl status nginx

Dovresti vedere il seguente output:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-12-03 14:39:18 UTC; 18s ago
       Docs: man:nginx(8)
    Process: 39888 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 39892 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 39893 (nginx)
      Tasks: 2 (limit: 2341)
     Memory: 2.7M
        CPU: 42ms
     CGroup: /system.slice/nginx.service
             ??39893 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??39894 nginx: worker process

Dec 03 14:39:18 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server...
Dec 03 14:39:18 debian11 systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Dec 03 14:39:18 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.

Quindi, copia il file di configurazione del cron job per abilitare il rilevamento automatico e il polling per i dispositivi appena aggiunti.

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

Quindi, copia il file di configurazione di logrotate per ruotare i vecchi registri.

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

Una volta terminato, puoi procedere al passaggio successivo.

Accedere alla procedura guidata di installazione Web di LibreNMS

A questo punto, LibreNMS è installato e configurato con Nginx. Ora puoi accedere alla configurazione basata sul web di LibreNMS utilizzando l'URL http://libre.yourdomain.com . Dovresti vedere la pagina di controllo della preinstallazione.

Assicurati che tutti i controlli siano andati a buon fine, quindi fai clic sull'icona del database. Dovresti vedere la pagina di configurazione del database.

Fornisci le informazioni del tuo database e fai clic su Verifica credenziali.

Ora, fai clic sull'icona della chiave per configurare un utente amministratore.

Fornisci il nome utente e la password dell'amministratore, quindi fai clic sul pulsante Aggiungi utente. Una volta creato l'utente, dovresti vedere la seguente pagina.

Fare clic sul  pulsante icona .

Ora apri un'altra scheda nel tuo browser web e digita l'URL https://libre.yourdomain.com/validate  per convalidare l'installazione.

Fornisci il nome utente, la password dell'amministratore e fai clic sul pulsante Accedi.

Conclusione

Congratulazioni! hai installato con successo LibreNMS con Nginx su Debian 11. Ora puoi iniziare ad aggiungere dispositivi remoti a LibreNMS e iniziare a monitorarli dalla posizione centrale. Sentiti libero di chiedermi se hai domande.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.