LibreNMS è uno strumento di monitoraggio open source basato su PHP/MYSQL/SNMP. È un sistema di monitoraggio della rete completo che fornisce supporto per un'ampia gamma di hardware di rete e sistemi operativi tra cui FreeBSD, Cisco, Linux, HP e altri.
In questo tutorial, ti mostreremo come installare e configurare LibreNMS usando Nginx come server web e MariaDB come database. Utilizzeremo il server CentOS 7 come server principale.
Cosa faremo
- Installa i pacchetti richiesti
- Installa il server Web Nginx
- Installa e configura PHP-FPM
- Installa e configura MariaDB
- Scarica e configura LibreNMS
- Installazione basata sul Web di LibreNMS
- Configurazione finale
Prerequisito
- Server CentOS 7
- Privilegi di root
Passaggio 1:installa i pacchetti richiesti
Prima di installare LibreNMS sul server, dobbiamo installare alcuni pacchetti, incluso ImageMagick , rrdtool , SNMP , git , e altro ancora. Il seguente comando dovrebbe fare il necessario:
yum -y install net-snmp ImageMagick jwhois nmap mtr rrdtool MySQL-python net-snmp-utils cronie fping git
Se tutto va bene, vai al passaggio successivo.
Passaggio 2:installa il server Web Nginx
In questo passaggio, installeremo epel-repository per l'installazione del server web nginx. Il repository EPEL (Extra Packages for Enterprise Linux) è un repository aggiuntivo per sistemi operativi basati su rpm, incluso CentOS 7.
Installa il repository EPEL utilizzando yum comando qui sotto.
yum -y install epel-release
Ora installa nginx.
yum -y install nginx
Dopo l'installazione di nginx, avvia il servizio e abilitalo all'esecuzione automatica all'avvio utilizzando il seguente systemctl comandi.
systemctl start nginx
systemctl enable nginx
Quindi il server web Nginx è stato installato sul sistema dal repository EPEL.
Fase 3 - Installa e configura PHP-FPM
Prima di procedere, ecco alcune informazioni che vale la pena condividere:
Utilizzeremo PHP-FPM versione 7 per l'installazione di LibreNMS. Tutti i pacchetti PHP 7 per CentOS 7 sono disponibili su repository di terze parti e utilizzeremo la versione PHP 7 dal repository 'webtatic'.
Allora cominciamo.
Aggiungi il repository webtatic PHP 7 al sistema usando il seguente comando rpm.
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Installa PHP 7 e tutte le estensioni necessarie dal repository wetatic usando yum.
yum -y install php70w php70w-cli php70w-gd php70w-mysql php70w-snmp php70w-pear php70w-curl php70w-common php70w-fpm php70w-mcrypt
Ora aggiorna il repository PEAR e installa alcune estensioni PEAR (PHP Extension and Application Repository) usando pear comando.
pear channel-update pear.php.net
pear install Net_IPv4-1.3.4
pear install Net_IPv6-1.2.2b2
Quindi in questo modo puoi installare tutti i pacchetti PHP richiesti.
Quindi, configura PHP-FPM per l'installazione di LibreNMS. Dobbiamo definire il fuso orario predefinito nel file php.ini e assicurarci che il fuso orario corrisponda al fuso orario corrente utilizzato dal sistema. Puoi controllare il fuso orario corrente utilizzato dal tuo sistema tramite il comando seguente.
timedatectl
Lo screenshot seguente mostra il comando precedente in azione:
Quindi stiamo usando "Europa/Parigi ' fuso orario.
Ora, modifica il file '/etc/php.ini' usando vim.
vim /etc/php.ini
Quindi, decommenta la riga 'date.timezone' e assegna un valore con il fuso orario del server 'Europe/Paris'.
data.timezone = Europe/Paris
Allo stesso modo, decommenta la riga cgi e cambia il valore in '0 '.
cgi.fix_pathinfo=0
Questo è tutto. Ora salva le modifiche ed esci dall'editor.
Successivamente, dobbiamo definire come funziona PHP-FPM sul sistema. Nel nostro caso, PHP-FPM verrà eseguito nel file "sock" anziché nella porta del server.
Modifica il file 'www.conf' con vim per configurare PHP-FPM.
vim /etc/php-fpm.d/www.conf
Cambia la linea della porta "ascolta" nel file sock come di seguito.
listen = /var/run/php-fpm/php7.0-fpm.sock
Decommenta la riga "ascolta" per il proprietario, il gruppo e l'autorizzazione del file sock come configurazione di seguito.
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Questo è tutto. Ora salva le modifiche ed esci dall'editor.
Quindi la configurazione PHP-FPM è ora completa. Avvia il servizio e abilitalo all'esecuzione automatica all'avvio utilizzando i seguenti comandi.
systemctl start php-fpm
systemctl enable php-fpm
Ora PHP-FPM è in esecuzione nel file sock. Puoi verificarlo con il comando netstat.
netstat -pl | grep php
Assicurati di avere il risultato del file '/var/run/php-fpm/php7.0-fpm.sock'.
Fase 4 - Installa e configura MariaDB
LibreNMS utilizza il database MySQL per archiviare tutti i dati. Per questa guida, utilizzeremo la versione del database MariaDB. È disponibile nel repository e dobbiamo installare e aggiungere alcune configurazioni per l'installazione di LibreNMS, inclusa l'aggiunta del database e dell'utente per LibreNMS.
Installa MariaDB utilizzando il comando yum di seguito.
yum -y install mariadb mariadb-server
Avvia il servizio MariaDB e abilita l'avvio automatico all'avvio.
systemctl start mariadb
systemctl enable mariadb
Ora configura la password di root di MariaDB utilizzando il comando 'mysql_secure_installation' di seguito.
mysql_secure_installation
Ti verrà chiesto della nuova password di root per il database di MariaDB insieme ad alcune altre domande.
Digita 'Y' e premi Invio per confermare.
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
Quindi MariaDB è stato installato. Ora dobbiamo creare un nuovo database e un nuovo utente per LibreNMS. Accedi alla riga di comando della shell mysql utilizzando il client mysql e con la tua nuova password.
mysql -u root -p
Crea un nuovo database denominato 'librenms ', un nuovo utente 'librens ' con password 'hakase-labs123 '.
Crea tutto usando le query MySQL di seguito.
CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'hakase-labs123';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
Sono stati creati un nuovo utente e database per l'installazione di LibreNMS.
Ora devi modificare il file my.cnf per aggiungere una nuova configurazione mysql. Modifica il file '/etc/my.cnf' usando vim.
vim /etc/my.cnf
Incolla la seguente configurazione aggiuntiva sotto '[mysqld] sezione '.
innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0
Salva ed esci da vim, quindi riavvia il server mariadb.
systemctl restart mariadb
Fase 5 - Scarica e configura LibreNMS
In questo passaggio, configureremo il sistema per l'installazione di LibreNMS.
- Aggiungi utente e scarica il codice sorgente di LibreNMS
Crea un nuovo utente di sistema chiamato 'librenms', quindi definisci la home directory per l'utente nella directory '/opt/librenms' e infine aggiungi l'utente 'librenms' al gruppo 'nginx'.
useradd librenms -d /opt/librenms -M -r
usermod -a -G librenms nginx
Vai alla directory '/opt/' e scarica il codice sorgente di LibreNMS usando git clone comando come di seguito.
cd /opt/
git clone https://github.com/librenms/librenms.git librenms
Crea una nuova directory per i log di LibreNMS e i file rrd.
mkdir -p /opt/librenms/logs/
mkdir -p /opt/librenms/rrd/
chmod 775 /opt/librenms/rrd/
Ora cambia la proprietà di tutti i file e le directory nella directory '/opt/librenms' nell'utente e nel gruppo 'librenms'.
chown -R librenms:librenms /opt/librenms/
- Configura l'host virtuale LibreNMS
LibreNMS è un'applicazione basata sul Web e stiamo utilizzando un server Web Nginx per ospitarla.
Crea un nuovo file host virtuale 'librenms.conf' nella directory nginx 'conf.d'.
vim /etc/nginx/conf.d/librenms.conf
Incolla la configurazione di seguito.
server {
# Add your own domain name
listen 80;
server_name librenms.irsyadf.me;
# LibreNMS Webroot directory
root /opt/librenms/html;
index index.php;
# LibreNMS logs
access_log /opt/librenms/logs/access_log;
error_log /opt/librenms/logs/error_log;
# Enabling Gzip compression on Nginx
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;
}
# PHP-FPM handle all .php files requests
location ~ \.php {
include fastcgi.conf;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Questo è tutto. Ora salva ed esci da Vim.
Verifica la configurazione di nginx e assicurati che non ci siano errori. Quindi riavvia il server web.
nginx -t
systemctl restart nginx
- Configurazione del firewall
Assicurati che il firewalld i pacchetti sono installati sul tuo sistema. In caso contrario, puoi installare firewalld usando il seguente comando yum.
yum -y install firewalld
Avvia firewalld e consentirne l'esecuzione all'avvio utilizzando i seguenti comandi systemctl.
systemctl start firewalld
systemctl enable firewalld
Apri il nuovo HTTP, HTTPS e la porta SNMP 161/udp utilizzando il comando firewall-cmd come mostrato di seguito.
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --add-port=161/udp --permanent
Applica la configurazione ricaricando firewalld e controlla tutti i servizi.
firewall-cmd --reload
firewall-cmd --list-all
Assicurati che i servizi HTTP e HTTPS siano nell'elenco.
Fase 6 - Installazione basata sul web di LibreNMS
Apri il tuo browser web e digita l'URL di LibreNMS sulla barra degli indirizzi.
http://librenms.hakase-labs.me/
Verrai reindirizzato alla pagina di installazione 'install.php'.
- Verifica il supporto del modulo PHP
Assicurati che tutti i moduli e le estensioni php richiesti siano installati sul sistema.
Quindi fai clic su "Fase successiva" per continuare.
- Configurazione database
Digita i dettagli del database di seguito:
- Utente DB:'librens '
- Nome DB:'librens '
- Pass DB:'hakase-labs123 '
E fai clic su "Fase successiva" per continuare.
- Importa database MySQL
Non chiudere la pagina di installazione poiché verrà visualizzata l'importazione del database. Assicurati che non ci siano errori.
Al termine del processo, fai clic su "Vai ad Aggiungi utente" per aggiungere un nuovo utente amministratore.
- Aggiungi utente amministratore
Digita il tuo utente amministratore, email e password.
Fai clic su "Aggiungi utente" per continuare con l'installazione.
- Genera file di configurazione
Fai clic sul pulsante "Genera configurazione" e vedrai una pagina simile alla seguente.
Copia il codice php che si trova nella casella e crea un nuovo file 'config.php' nella directory '/opt/librenms/'.
cd /opt/librenms/
vim config.php
Incolla nel nuovo file il codice appena copiato, quindi salva ed esci dall'editor. Ora cambia i permessi di proprietà del file config.php nell'utente e nel gruppo 'librenms'.
chown librenms:librenms config.php
Torna al tuo browser e fai clic sul pulsante "Termina installazione" presente in fondo alla pagina. Vedrai un messaggio di benvenuto simile al seguente.
A questo punto, abbiamo finito con l'installazione basata sul web. Torna al terminale/shell e aggiungi altra configurazione.
Fase 7 - Configurazione finale
A questo punto, aggiungeremo alcune configurazioni per la nostra installazione di LibreNMS.
- Definisci comando fping
Definisci il comando 'fping' modificando il file di configurazione di LibreNMS. Vai alla directory '/opt/librenms/' e modifica il file config.php usando l'editor vim.
cd /opt/librenms/
vim config.php
Aggiungi la riga seguente in fondo al file.
$config['fping'] = "/usr/sbin/fping";
Salva ed esci dall'editor.
- Configurazione SNMP
Eseguire il backup del file snmp.conf predefinito nella directory '/etc/snmp/' e copiarne uno nuovo dalla directory librenms.
mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.asli
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
Modifica la nuova configurazione.
vim /etc/snmp/snmpd.conf
Modifica il testo "RANDOMSTRINGGOESHERE" con il nome della tua comunità come di seguito.
com2sec readonly default hakaselabs
Questo è tutto. Salva ed esci da Vim.
Quindi, scarica librenms-agent script per rilevare quale sistema operativo è stato aggiunto. Se aggiungi il sistema operativo Linux, lo script rileverà anche la distribuzione Linux specifica.
Scarica lo script usando curl e rendilo eseguibile.
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x /usr/bin/distro
Ora riavvia il servizio SNMP usando il seguente comando systemctl.
systemctl restart snmpd
- Configura Logrotate per LibreNMS
LibreNMS fornisce la configurazione per la configurazione logrotate ed è nella directory '/opt/librenms/misc'.
Copia l'esempio di configurazione nella directory '/etc/logrotate.d'.
cp misc/librenms.logrotate /etc/logrotate.d/librenms
- Configurazione cronjob di LibreNMS
Vai alla directory 'opt/librenms' e copia il file dello script crontab 'librenms.nonroot.cron' nella directory 'cron.d'.
cd /opt/librenms/
cp librenms.nonroot.cron /etc/cron.d/librenms
Attendi qualche minuto affinché lo script venga eseguito automaticamente.
- Convalida la configurazione di LibreNMS
Per verificare l'installazione, utilizzare validate.php sceneggiatura. Vai alla directory '/opt/librenms/' ed esegui lo script.
cd /opt/librenms/
./validate.php
Supponendo che non si verifichino errori, dovresti vedere un output simile al seguente:
Quindi questo completa l'installazione di LibreNMS con il server web Nginx su CentOS 7.