Ricerca nel sito web

Come installare la soluzione di monitoraggio LibreNMS su Rocky Linux


Su questa pagina

  1. Prerequisiti
  2. Impostazione dei repository
  3. Installazione delle dipendenze dei pacchetti
  4. Impostazione di Firewalld
  5. Download del codice sorgente di LibreNMS
  6. Installazione delle dipendenze PHP per LibreNMS
  7. Configurazione di PHP-FPM
  8. Configurazione del server MariaDB
  9. Impostazione dei blocchi server Nginx
  10. Configurazione di SELinux
  11. Terminamento delle configurazioni di LibreNMS
  12. Accesso all'installazione Web di LibreNMS
  13. Conclusione

LibreNMS è uno strumento di monitoraggio che supporta il rilevamento automatico con più protocolli, inclusi SNMP, ARP, OSPF e BGP. Per monitorare i sistemi operativi, puoi utilizzare il protocollo SNMP, disponibile sulla maggior parte dei sistemi operativi, inclusi Linux, Windows e BSD.

Esistono tre versioni del protocollo SNMP, v1 e v2 che sono protette solo con una password della comunità e il protocollo v3 che supporta le password per l'autenticazione e la crittografia. Per l'ambiente di produzione, si consiglia di utilizzare il protocollo SNMP v3, che è più sicuro di v2 e v1.

In questa guida imparerai come installare lo strumento di monitoraggio LibreNMS sul server Rocky Linux. Questa guida include l'installazione dello stack LEMP (Nginx, MariaDB e PHP-FPM) e la configurazione di base del servizio SNMP.

Alla fine, avrai la soluzione di monitoraggio pronta per la produzione LibreNMS e potrai semplicemente aggiungere un nuovo host o server o dispositivo per monitorare LibreNMS.

Prerequisiti

Per completare questa guida, avrai bisogno dei seguenti requisiti:

  • Un server Rocky Linux - Questo esempio utilizza Rocky Linux 8.
  • Un utente non root con privilegi sudo root/amministratore.
  • Un nome di dominio locale per l'implementazione locale.

Configurazione dei repository

Prima di iniziare a installare i pacchetti, ora configurerai i repository sul tuo sistema Rocky Linux. Dovrai aggiungere il repository EPEL (Extra Packages for Enterprise Linux) e il repository PHP Remi.

Esegui il seguente comando dnf per aggiungere il repository EPEL al tuo sistema.

sudo dnf install epel-release

Immettere Y quando viene richiesta la conferma e premere INVIO per procedere.

Successivamente, esegui il seguente comando dnf per aggiungere il repository PHP Remi. Questo repository fornisce più versioni di PHP, che include l'ultimo PHP 8.1 richiesto per l'installazione di LibreNMS.

sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm

Ora inserisci Y e premi INVIO per procedere.

Dopo aver aggiunto il repository EPEL e Remi, verifica utilizzando il comando dnf di seguito.

sudo dnf repolist

Dovresti vedere il repository EPEL e Remi aggiunto e disponibile sul tuo sistema Rocky Linux.

Installazione delle dipendenze dei pacchetti

Dopo aver aggiunto i repository EPEL e Remi, inizierai ora a installare le dipendenze dei pacchetti per LibreNMS. Ciò include lo stack LEMP, i pacchetti SNMP e alcune dipendenze Python di base.

Prima di iniziare l'installazione, eseguire il seguente comando per abilitare il modulo repository PHP remi-8.1. L'ultima versione di LibreNMS richiedeva almeno PHP 8.

sudo dnf reset php
sudo dnf module enable php:remi-8.1

Immettere y per confermare e abilitare il repository PHP Remi 8.1.

Successivamente, esegui il seguente comando dnf per installare le dipendenze del pacchetto per LibreNMS. Quando viene richiesto di confermare l'installazione, immettere y e premere INVIO per procedere e l'installazione avrà inizio.

sudo dnf install bash-completion cronie fping git ImageMagick mariadb-server mtr net-snmp net-snmp-utils nginx nmap php-fpm php-cli php-common php-curl php-gd php-gmp php-json php-mbstring php-process php-snmp php-xml php-zip php-mysqlnd python3 python3-PyMySQL python3-devel python3-redis python3-memcached python3-pip python3-systemd rrdtool unzip

Dopo aver installato le dipendenze, esegui il seguente comando per avviare e abilitare alcuni servizi come Nginx, MariaDB, PHP-FPM e snmpd.

sudo systemctl enable nginx php-fpm mariadb snmpd
sudo systemctl start nginx php-fpm mariadb snmpd

A questo punto, alcuni servizi di base Nginx, MariaDB, PHP-FPM e snmpd verranno avviati automaticamente all'avvio del sistema. E tutti questi servizi sono in esecuzione.

Configurazione di Firewalld

Per questo esempio, stiamo usando Rocky Linux con firewalld abilitato. Ora aggiungerai sia il protocollo HTTP che HTTPS al firewalld.

Eseguire il seguente comando firewall-cmd per aggiungere i servizi HTTP e HTTPS a firewalld. Dovresti ricevere il messaggio di output success, il che significa che la nuova regola è stata aggiunta.

sudo firewall-cmd --permanent --zone public --add-service http
sudo firewall-cmd --permanent --zone public --add-service https

Successivamente, ricarica il firewalld per applicare le nuove modifiche. Quindi, verifica lo stato di firewalld utilizzando il seguente comando.

sudo firewall-cmd --reload
sudo firewall-cmd --list-all

Riceverai l'output di entrambi i protocolli HTTP e HTTPS aggiunti al firewalld.

Download del codice sorgente di LibreNMS

In questo passaggio, scaricherai il codice sorgente di LibreNMS da GitHub. Ma prima, creerai anche un nuovo utente dedicato librems che verrà utilizzato per eseguire l'applicazione LibreNMS.

Eseguire il seguente comando per creare un nuovo utente di sistema librenms. Questo utente verrà utilizzato per eseguire l'applicazione LibreNMS.

sudo useradd librenms -d /opt/librenms -M -r -s "$(which bash)"

Ora sposta la tua directory di lavoro in /opt e scarica il codice sorgente di LibreNMS tramite il comando git di seguito. Ora dovresti ottenere una nuova directory /opt/librems, che verrà utilizzata come directory di installazione di LibreNMS.

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

Cambia la proprietà e l'autorizzazione della directory di installazione di LibreNMS /opt/librems. La proprietà dell'installazione dovrebbe essere l'utente librenms e anche l'autorizzazione 771 consentirà all'utente di leggere, scrivere ed eseguire sulla directory.

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

Infine, esegui il seguente comando per impostare gli elenchi di controllo degli accessi per alcune directory di LibreNMS. Ciò consentirà al gruppo librems di leggere, scrivere ed eseguire su alcune specifiche directory di 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/

Installazione delle dipendenze PHP per LibreNMS

Dopo aver scaricato il codice sorgente di LibreNMS e configurato l'autorizzazione corretta, ora installerai le dipendenze PHP per LibreNMS.

Accedi come utente librems utilizzando il seguente comando.

su - librenms

Ora, installa le dipendenze PHP tramite lo script di installazione come di seguito.

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

Ora vedrai l'installazione delle dipendenze PHP richieste per LibreNMS. Vedrai anche l'installazione dei pacchetti Python per LibreNMS.

Al termine dell'installazione delle dipendenze PHP, ora puoi uscire dall'utente librems premendo Ctrl+d oppure puoi digitare il comando exit.

Configurazione di PHP-FPM

In questo passaggio, configurerai la tua installazione PHP-FPM per LibreNMS. Modificherai la configurazione predefinita /etc/php.ini e imposterai uno specifico pool PHP-FPM per LibreNMS.

Esegui il seguente comando per impostare il fuso orario corretto per il tuo sistema Rocky Linux.

sudo timedatectl set-timezone Europe/Stockholm

Ora modifica la configurazione PHP /etc/php.ini usando il seguente editor nano.

sudo nano /etc/php.ini

Rimuovere il commento dall'opzione date.timezone e modificare il valore con il fuso orario del server corrente.

date.timezone = Europe/Stockholm

Salva il file e chiudi l'editor quando hai finito.

Successivamente, copia la configurazione predefinita del pool PHP-FPM www.conf in librems.conf. In questo esempio, configurerai il pool PHP-FPM specifico per lo strumento di monitoraggio LibreNMS.

cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/librenms.conf

Ora modifica la configurazione del pool PHP-FPM /etc/php-fpm.d/librenms.conf utilizzando il seguente editor nano.

sudo nano /etc/php-fpm.d/librenms.conf

Cambia il nome del pool predefinito da [www] a [librenms].

[librenms]

Cambia l'utente e il gruppo predefiniti in librems. Questo eseguirà il processo PHP-FPM come utente e gruppo librenms.

user = librenms
group = librenms

Infine, modifica l'opzione di ascolto in /run/php-fpm-librenms.sock. Questo specificherà il file sock per il pool librenms PHP-FPM.

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

Salva il file ed esci dall'editor quando hai finito.

Ora esegui il seguente comando systemctl per riavviare il servizio PHP-FPM e applicare le nuove modifiche.

sudo systemctl restart php-fpm

Configurazione del server MariaDB

Dopo aver configurato PHP-FPM, ora configurerai il server del database MariaDB e creerai un nuovo database e un nuovo utente per LibreNMS.

Il LibreNMS richiedeva il server di database MariaDB con InnoDB abilitato. Quindi ora dovrai abilitarlo. Quindi, creerai un nuovo database e utente per LibreNMS.

Modifica la configurazione del server MariaDB /etc/my.cnf.d/mariadb-server.cnf utilizzando il seguente editor nano.

sudo nano /etc/my.cnf.d/mariadb-server.cnf

Inserisci la seguente configurazione nella sezione [mysqld].

[mysqld]
....
innodb_file_per_table=1
lower_case_table_names=0

Salva il file ed esci dall'editor quando hai finito.

Ora esegui il seguente comando systemctl di seguito per riavviare il servizio MariaDB e applicare le nuove modifiche. Il server MariaDB è ora in esecuzione con il motore di database InnoDB abilitato.

sudo systemctl restart mariadb

Successivamente, accedi alla shell MariaDB tramite il comando mysql di seguito. Quando viene richiesta la password, puoi semplicemente premere INVIO o digitare la password di root di MariaDB.

sudo mysql -u root -p

Esegui le seguenti query per creare un nuovo database e un nuovo utente per LibreNMS. In questo esempio, creerai un nuovo database e un utente librems, e assicurati di cambiare la password del database con la tua password.

CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;

Successivamente, esegui la seguente query per verificare i privilegi per l'utente del database [email .

SHOW GRANTS FOR ;

Dovresti vedere che l'utente librems@localhost ha privilegi sul database librems.

Ora digita exit per uscire dalla shell MariaDB.

Configurazione dei blocchi server Nginx

Dopo aver configurato il server MariaDB e creato il database e l'utente, ora creerai una nuova configurazione del blocco del server Nginx per LibreNMS.

Prima di iniziare, assicurati di aver deciso il dominio locale che verrà utilizzato per LibreNMS. In questo esempio, LibreNMS dovrebbe essere eseguito con il dominio librenms.hwdomain.io.

Crea una nuova configurazione dei blocchi del server Nginx /etc/nginx/conf.d/librenms.conf utilizzando il seguente editor nano.

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

Aggiungi la seguente configurazione al file e assicurati di cambiare il nome del dominio con il tuo dominio.

server {
    listen      80;
    server_name librenms.hwdomain.io;
    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 il file ed esci dall'editor quando hai finito.

Successivamente, esegui il seguente comando per verificare la configurazione di Nginx e assicurarti che sia corretta.

sudo nginx -t

Se la tua configurazione Nginx è corretta, vedrai il messaggio di output come test riuscito - Sintassi OK.

Ora riavvia il servizio Nginx per applicare la nuova configurazione del blocco del server.

sudo systemctl restart nginx

A questo punto, hai completato la configurazione LEMP Stack (Nginx, database MariaDB e PHP-FPM) per LibreNMS. Inoltre, LibreNMS dovrebbe ora essere in esecuzione sul tuo sistema Rocky Linux.

Configurazione di SELinux

Per questa guida, eseguirai LibreNMS con SELinux abilitato in modalità di applicazione. Quindi ora imposterai le regole di SELinux per LibreNMS.

Per cominciare, esegui il seguente comando dnf qui sotto per installare il pacchetto policycoreutils-python-utils sul tuo sistema Rocky Linux. Questo pacchetto fornisce più righe di comando per la gestione di SELinux.

sudo dnf install policycoreutils-python-utils

Quando richiesto, inserire y per confermare e premere INVIO per procedere.

Successivamente, esegui il seguente comando per impostare le etichette per il codice sorgente di LibreNMS.

semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/html(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/(rrd|storage)(/.*)?'
semanage fcontext -a -t httpd_log_t "/opt/librenms/logs(/.*)?"
semanage fcontext -a -t bin_t '/opt/librenms/librenms-service.py'
restorecon -RFvv /opt/librenms
chcon -t httpd_sys_rw_content_t /opt/librenms/.env

Eseguire il seguente comando per consentire l'accesso ad alcuni servizi per il server Web Nginx.

setsebool -P httpd_can_sendmail=1
setsebool -P httpd_execmem 1

Ora crea un nuovo file http_fping.tt utilizzando il seguente editor nano.

nano http_fping.tt

Aggiungere la seguente configurazione al file.

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 };

Salva il file ed esci dall'editor quando hai finito.

Quindi, esegui il seguente comando per convertire http_fping.tt nel formato per SELinux. Quindi, aggiungi la nuova regola compilata al file SELinux.

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

Ora che hai terminato la configurazione di SELinux per LibreNMS. Successivamente, imposterai alcune configurazioni aggiuntive per LibreNMS.

Completamento delle configurazioni di LibreNMS

Per completare la configurazione di LibreNMS, dovrai ora configurare la riga di comando lnms, copiare alcune configurazioni predefinite di LibreNMS, comprese le configurazioni per cron e logrotate. Inoltre, configurerai il servizio SNMP per LibreNMS.

Esegui il seguente comando per abilitare la riga di comando lnms e copia il completamento bash del comando lnms.

ln -s /opt/librenms/lnms /usr/bin/lnms
cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/

Copia la configurazione di esempio del cron di LibreNMS in /etc/cron.d/librenms.

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

Copia la configurazione logrotate predefinita per LibreNMS in /etc/logrotate.d/librenms.

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

Ora copia la configurazione predefinita del servizio snmpd in /etc/snmp/snmpd.conf. Quindi, modifica il nuovo file /etc/snmp/snmpd.conf utilizzando l'editor nano.

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

Modificare la password predefinita della comunità per il servizio snmpd RANDOMSTRINGGOESHERE con la propria password.

# Change RANDOMSTRINGGOESHERE to your preferred SNMP community string
com2sec readonly  default         RANDOMSTRINGGOESHERE

Salva il file ed esci dall'editor quando hai finito.

Successivamente, scarica il file binario che verrà utilizzato da LibreNMS per rilevare automaticamente il sistema operativo di ogni host di destinazione. Quindi, rendilo eseguibile modificando l'autorizzazione predefinita.

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

Infine, riavvia il servizio snmpd per applicare le nuove modifiche e le nuove configurazioni.

systemctl restart snmpd

Ora che tutte le configurazioni di base sono state completate. Successivamente, avvierai l'installazione di LibreNMS tramite il browser web.

Accesso all'installazione Web di LibreNMS

Sulla tua macchina locale, modifica il file /etc/hosts e definisci il nome di dominio locale della tua installazione di LibreNMS. Inoltre, assicurati di cambiare l'indirizzo IP con l'indirizzo IP del tuo server.

192.168.5.100   librenms.hwdomain.io

Ora apri il browser web e visita il nome di dominio della tua installazione di LibreNMS (ad esempio: http://librenms.hwdomain.io/).

Inizialmente, il programma di installazione di LibreNMS controllerà gli ambienti per l'installazione. Assicurati che tutti i requisiti siano contrassegnati in verde, il che significa che il sistema è pronto per l'installazione di LibreNMS.

Fare clic sull'icona del database per continuare.

Ora inserisci il database dei dettagli e l'utente per il tuo LibreNMS e fai clic su Verifica credenziali. Se le credenziali del database sono corrette, la sezione sarà contrassegnata in verde.

Ora fai clic su Crea database per avviare la migrazione del database per LibreNMS.

Al termine della migrazione del database, vedrai la sezione Crea database contrassegnata in verde.

Fare clic sull'icona della chiave per avviare la configurazione dell'utente amministratore per LibreNMS.

Ora inserisci il nuovo utente amministratore, la password e l'indirizzo e-mail per l'installazione di LibreNMS e fai clic su Aggiungi utente.

Ora l'installazione è terminata e vedrai la pagina seguente. Puoi vedere che l'installazione è terminata e le configurazioni vengono scritte nel file .env.

Ora fai clic sul link convalida la tua installazione per verificare l'installazione di LibreNMS.

Ora dovresti essere reindirizzato alla pagina di accesso di LibreNMS. Inserisci il tuo utente amministratore e la password, quindi fai clic su Accedi.

Ora assicurati che tutte le configurazioni siano contrassegnate come OK, il che significa che la configurazione non ha errori.

Puoi anche correggere tutti gli errori o gli avvisi seguendo le istruzioni consigliate da LibreNMS.

Ora puoi aggiungere un nuovo host di destinazione, una macchina virtuale o un dispositivo di rete per monitorare la soluzione di monitoraggio LibreNMS.

Conclusione

Congratulazioni! Hai installato la soluzione di monitoraggio LibreNMS sul server Rocky Linux. Hai anche appreso la configurazione di base dello stack LEMP (Nginx, MariaDB e PHP-FPM) su Rocky Linux.

Da qui, puoi continuare ad aggiungere un host o una macchina di destinazione da monitorare, configurare l'agente LibreNMS, configurare avvisi o notifiche, configurare l'integrazione di terze parti con Graylog ed eseguire altre attività.