Monitora i tuoi dispositivi usando LibreNMS su CentOS 7

LibreNMS è un sistema di monitoraggio della rete open source con funzionalità complete. Utilizza SNMPper ottenere i dati da diversi dispositivi. Una vasta gamma di dispositivi è supportata in LibreNMS come Cisco, Linux, FreeBSD, Juniper, Brocade, Foundry, HP e molti altri. Supporta molteplici meccanismi di autenticazione e supporta l'autenticazione a due fattori. Ha un sistema di allerta personalizzabile che può avvisare l'amministratore di rete via e-mail, IRC o slack.

Prerequisiti

  • Un'istanza del server Vultr CentOS 7.
  • Un utente sudo .

Per questo tutorial, useremo nms.example.comcome nome di dominio puntato verso l'istanza Vultr. Assicurati di sostituire tutte le occorrenze del nome di dominio di esempio con quello effettivo.

Aggiorna il tuo sistema di base usando la guida Come aggiornare CentOS 7 . Dopo aver aggiornato il sistema, procedere con l'installazione delle dipendenze.

Installa Nginx e PHP

Il front-end di LibreNMS è sostanzialmente scritto in PHP, quindi dovremo installare un web server e PHP. In questo tutorial, installeremo Nginx insieme a PHP 7.2 per ottenere la massima sicurezza e prestazioni.

Installa Nginx.

sudo yum -y install nginx

Avvia Nginx e abilita l'avvio automatico all'avvio.

sudo systemctl start nginx
sudo systemctl enable nginx

Aggiungi e abilita il repository Remi, poiché il repository YUM predefinito contiene una versione precedente di PHP.

sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum -y install yum-utils
sudo yum-config-manager --enable remi-php72

Installa PHP versione 7.2 insieme ai moduli richiesti da LibreNMS.

sudo yum -y install php php-cli php-common php-curl php-fpm php-gd php-mcrypt php-mysql php-process php-snmp php-xml php-zip

Apri il file di configurazione caricato da PHP in un editor.

sudo nano /etc/php.ini

Trova le seguenti righe, decommenta e modifica il loro valore come mostrato.

;cgi.fix_pathinfo=1
memory_limit = 128M
;date.timezone =

Usa invece questi valori, sostituiscili Asia/Kolkatacon il tuo fuso orario locale.

cgi.fix_pathinfo=0
memory_limit = -1
date.timezone = Asia/Kolkata

Sarà inoltre necessario modificare il fuso orario del sistema eseguendo il comando seguente.

sudo ln -sf /usr/share/zoneinfo/Asia/Kolkata /etc/localtime

Ora apri il file di configurazione PHP-FPM.

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

Trova la seguente riga.

listen = 127.0.0.1:9000

Sostituirlo con la seguente riga.

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

Per impostazione predefinita, PHP-FPM è configurato per l'utente del server Web Apache. Cambia l'utente in nginx.

user = nginx
group = nginx

Inoltre, decommenta le seguenti righe.

listen.owner = nobody
listen.group = nobody

Salvare il file ed uscire dall'editor. Riavvia PHP-FPM e abilitalo all'avvio.

sudo systemctl restart php-fpm
sudo systemctl enable php-fpm

Impostare la proprietà appropriata sul file socket.

sudo chown nginx:nginx /var/run/php-fpm/php-fpm.sock

Installa MariaDB

MariaDB è un fork di MySQL. Aggiungi il repository MariaDB nel tuo sistema. Il yumrepository predefinito contiene una versione precedente di MariaDB.

echo "[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1" | sudo tee /etc/yum.repos.d/mariadb.repo

Installa MariaDB.

sudo yum -y install mariadb mariadb-server

Ora apri il file di configurazione di MySQL.

sudo nano /etc/my.cnf

Aggiungi le seguenti righe alla fine del blocco.

[mysqld]
innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0

Riavvia MariaDB e abilita l'avvio automatico all'avvio.

sudo systemctl restart mariadb
sudo systemctl enable mariadb

Prima di configurare il database, è necessario prima proteggere MariaDB.

sudo mysql_secure_installation

Ti verrà chiesta la password di root di MariaDB corrente. Per impostazione predefinita, non esiste una password di root in una nuova installazione di MariaDB. Premere il tasto " Enter" per procedere. Imposta una password complessa per l' rootutente del tuo server MariaDB e rispondi " Y" a tutte le altre domande che vengono poste. Le domande poste sono autoesplicative.

Accedi alla shell MySQL come root.

mysql -u root -p

Fornire la password per l'utente root MariaDB per accedere.

Eseguire le seguenti query per creare un database e un utente del database per l'installazione di LibreNMS.

CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
EXIT;

È possibile sostituire il nome del database librenmse il nome utente in librenmsbase alla propria scelta. Assicurati di passare StrongPassworda una password molto sicura .

Installa LibreNMS

Oltre alle dipendenze di cui sopra, LibreNMS ha bisogno di poche altre dipendenze. Installali eseguendo.

sudo yum -y install cronie fping git ImageMagick jwhois mtr MySQL-python net-snmp net-snmp-utils nmap  python-memcached rrdtool

Aggiungi un nuovo utente senza privilegi per l'applicazione LibreNMS.

sudo useradd librenms -d /opt/librenms -M -r
sudo usermod -a -G librenms nginx

LibreNMS può essere installato direttamente clonando il suo repository Github.

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

Correggi la proprietà.

sudo chown librenms:librenms -R /opt/librenms

LibreNMS si affida a SNMP per molte attività. Poiché abbiamo già installato SNMP, copia il file di configurazione di esempio nella sua posizione.

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

Apri il file di configurazione nell'editor.

sudo nano /etc/snmp/snmpd.conf

Trova questa linea.

com2sec readonly  default         RANDOMSTRINGGOESHERE

Modifica il testo RANDOMSTRINGGOESHEREe sostituisci la stringa di comunità con qualsiasi stringa di tua scelta. Per esempio.

com2sec readonly  default         my-org

Ricorda la stringa poiché sarà richiesta in seguito quando aggiungiamo il primo dispositivo SNMP.

SNMP necessita anche di informazioni sulla versione di distribuzione. Scarica e installa lo script per trovare la versione di distribuzione.

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

Avviare il servizio daemon SNMP e abilitarlo ad avviarsi automaticamente all'avvio.

sudo systemctl enable snmpd
sudo systemctl restart snmpd

Ora dovrai aggiungere alcune voci crontab per eseguire le attività pianificate. Crea un nuovo file di lavoro cron.

sudo nano /etc/cron.d/librenms

Popolare il file con il seguente testo.

33   */6  * * *   librenms    /opt/librenms/cronic /opt/librenms/discovery-wrapper.py 1
*/5  *    * * *   librenms    /opt/librenms/discovery.php -h new >> /dev/null 2>&1
*/5  *    * * *   librenms    /opt/librenms/cronic /opt/librenms/poller-wrapper.py 16
15   0    * * *   librenms    /opt/librenms/daily.sh >> /dev/null 2>&1
*    *    * * *   librenms    /opt/librenms/alerts.php >> /dev/null 2>&1
*/5  *    * * *   librenms    /opt/librenms/poll-billing.php >> /dev/null 2>&1
01   *    * * *   librenms    /opt/librenms/billing-calculate.php >> /dev/null 2>&1
*/5  *    * * *   librenms    /opt/librenms/check-services.php >> /dev/null 2>&1

Riavvia il servizio daemon cron.

sudo systemctl restart crond

Configurare in logrotatemodo che i file di registro vengano aggiornati automaticamente nel tempo.

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

Infine, imposta la proprietà e le autorizzazioni appropriate.

sudo chown -R librenms:nginx /opt/librenms
sudo chmod g+w -R /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

Configurazioni SSL e Nginx VHost

Gli accessi e le altre informazioni inviate tramite l'interfaccia Web di LibreNMS non sono protetti se la connessione non è crittografata con SSL. Configureremo Nginx per utilizzare SSL generato con Let's Encrypt SSL gratuito.

Installa Certbot, che è l'applicazione client per Let's Encrypt CA.

sudo yum -y install certbot

Prima di poter richiedere i certificati, è necessario consentire la porta 80e 443, o standard HTTPe HTTPSservizi attraverso il firewall.

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

Nota : per ottenere certificati da Let's Encrypt CA, il dominio per il quale devono essere generati i certificati deve essere puntato verso il server. In caso contrario, apportare le modifiche necessarie ai record DNS del dominio e attendere la propagazione del DNS prima di effettuare nuovamente la richiesta di certificato. Certbot controlla l'autorità di dominio prima di fornire i certificati.

Genera i certificati SSL:

sudo certbot certonly --webroot -w /usr/share/nginx/html -d nms.example.com

È probabile che i certificati generati siano archiviati nella /etc/letsencrypt/live/nms.example.com/directory. Il certificato SSL verrà archiviato come fullchain.peme la chiave privata verrà archiviata come privkey.pem.

Let's Encrypt certificati scadranno tra 90 giorni, quindi si consiglia di impostare il rinnovo automatico per i certificati utilizzando un processo cron.

Apri il file di lavoro cron.

sudo crontab -e

Aggiungi la seguente riga alla fine del file.

30 5 * * 1 /usr/bin/certbot renew --quiet

Il cron job sopra verrà eseguito ogni lunedì alle 5:30 ora locale. Se il certificato è in scadenza, verrà automaticamente rinnovato.

Crea un nuovo host virtuale.

sudo nano /etc/nginx/conf.d/nms.example.com.conf

Popolare il file.

server {
    listen 80;
    server_name nms.example.com;
    return 301 https://$host$request_uri;
}
server {

    listen 443;
    server_name nms.example.com;

    ssl_certificate           /etc/letsencrypt/live/nms.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/nms.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log    /opt/librenms/logs/librenms.nginx.access.log;
    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-fpm/php-fpm.sock;
    }
    location ~ /\.ht {
        deny all;
    }
 }

Sostituisci nms.example.comcon il tuo dominio attuale nella configurazione sopra.

Riavvia Nginx.

sudo chown nginx:nginx /var/lib/php/session
sudo systemctl restart nginx

Installazione tramite WebUI

Per completare l'installazione, apri https://nms.example.comil tuo browser preferito. Vedrai che i requisiti sono soddisfatti. Fornire i dettagli del database e creare un nuovo account amministrativo. Una volta installato, riceverai un messaggio per convalidare l'installazione. Fare clic sul collegamento e accedere utilizzando l'account amministratore. Vedrai che tutto tranne lo " Poller" ha uno stato " Ok".

Monitora i tuoi dispositivi usando LibreNMS su CentOS 7

Ora, fai clic sul collegamento per aggiungere un dispositivo. Sull'interfaccia " Add Device", fornire il nome host come localhost e lasciare tutto così com'è. Fornisci la stringa della community nel campo della community. Deve essere esattamente la stessa stringa fornita snmpd.confdurante la configurazione di SNMP.

Monitora i tuoi dispositivi usando LibreNMS su CentOS 7

Una volta aggiunto il dispositivo, è possibile visualizzare i dettagli andando alla Devicesscheda " ".

Monitora i tuoi dispositivi usando LibreNMS su CentOS 7

Allo stesso modo, è possibile aggiungere più dispositivi nell'applicazione LibreNMS per il monitoraggio "24 ore su 24".



Leave a Comment

Come installare e configurare CyberPanel sul server CentOS 7

Come installare e configurare CyberPanel sul server CentOS 7

Usi un sistema diverso? Introduzione CyberPanel è uno dei primi pannelli di controllo sul mercato che è sia open source che utilizza OpenLiteSpeed. Che cosa

Come installare e configurare Sensu Monitoring su CentOS 7

Come installare e configurare Sensu Monitoring su CentOS 7

Introduzione Sensu è una soluzione di monitoraggio gratuita e open source che può essere utilizzata per monitorare server, applicazioni e vari servizi di sistema. Sensu i

Come installare OpenMeetings su CentOS 7

Come installare OpenMeetings su CentOS 7

Usi un sistema diverso? Apache OpenMeetings è unapplicazione per conferenze Web open source. È scritto in Java e supporta più server di database. io

Come usare Sudo su Debian, CentOS e FreeBSD

Come usare Sudo su Debian, CentOS e FreeBSD

Luso di un utente sudo per accedere a un server ed eseguire comandi a livello di root è una pratica molto comune tra Linux e Unix Systems Administrator. Luso di un sud

Come installare RabbitMQ su CentOS 7

Come installare RabbitMQ su CentOS 7

Usando un sistema diverso? RabbitMQ è un broker di messaggi open source ampiamente utilizzato scritto nel linguaggio di programmazione Erlang. Come middleware orientato ai messaggi

Installazione di Nginx-RTMP su CentOS 7

Installazione di Nginx-RTMP su CentOS 7

Usi un sistema diverso? RTMP è ottimo per pubblicare contenuti live. Quando RTMP è associato a FFmpeg, i flussi possono essere convertiti in varie qualità. Vultr i

Come installare TaskBoard 0.3.1 su CentOS 7

Come installare TaskBoard 0.3.1 su CentOS 7

TaskBoard è unapp Web di gestione del tempo gratuita e open source. Ispirato da Kanban, TaskBoard può aiutarti a tenere traccia delle cose che devono essere fatte in a

Come installare Gradle su CentOS 7

Come installare Gradle su CentOS 7

Usi un sistema diverso? Gradle è un set di strumenti di automazione di build gratuito e open source basato sui concetti di Apache Ant e Apache Maven. Gradle fornisce

Installa un server FTP con ProFTPd su CentOS 6 o CentOS 7

Installa un server FTP con ProFTPd su CentOS 6 o CentOS 7

Usi un sistema diverso? In questa guida, vedremo come configurare un server FTP (ProFTPd) per trasferire file tra il tuo PC e il tuo server.

Installazione di Netdata su CentOS 7

Installazione di Netdata su CentOS 7

Usando un sistema diverso? Netdata è una stella nascente nel campo del monitoraggio delle metriche di sistema in tempo reale. Rispetto ad altri strumenti dello stesso tipo, Netdata:

Come installare Apache Cassandra 3.11.x su CentOS 7

Come installare Apache Cassandra 3.11.x su CentOS 7

Usi un sistema diverso? Apache Cassandra è un sistema di gestione di database NoSQL gratuito e open source progettato per fornire scalabilità, alta

Come installare Just Cause 2 (JC2-MP) Server su CentOS 7

Come installare Just Cause 2 (JC2-MP) Server su CentOS 7

In questo tutorial imparerai bene come configurare un server multiplayer Just Cause 2. Prerequisiti Assicurarsi che il sistema sia completamente aggiornato prima di iniziare

Come installare Starbound Server su CentOS 7

Come installare Starbound Server su CentOS 7

Usando un sistema diverso? In questo tutorial, spiegherò come impostare un server Starbound su CentOS 7. Prerequisiti Devi possedere questo gioco su di te

Installazione e configurazione di ZNC su CentOS 7

Installazione e configurazione di ZNC su CentOS 7

ZNC è un buttafuori IRC gratuito e open source che rimane permanentemente connesso a una rete in modo che i client possano ricevere messaggi inviati mentre sono offline. Thi

Come installare Django su CentOS 7

Come installare Django su CentOS 7

Django è un popolare framework Python per la scrittura di applicazioni Web. Con Django, puoi creare applicazioni più velocemente, senza reinventare la ruota. Se vuoi

Come impostare lautenticazione a due fattori (2FA) per SSH su CentOS 6 utilizzando Google Authenticator

Come impostare lautenticazione a due fattori (2FA) per SSH su CentOS 6 utilizzando Google Authenticator

Dopo aver modificato la porta SSH, configurato il port knocking e apportato altre modifiche per la sicurezza SSH, cè forse un altro modo per proteggerti

Come installare MyCLI su Linux (CentOS, Debian, Fedora e Ubuntu)

Come installare MyCLI su Linux (CentOS, Debian, Fedora e Ubuntu)

Introduzione MyCLI è un client da riga di comando per MySQL e MariaDB che ti consente di completare automaticamente e ti aiuta con la sintassi dei tuoi comandi SQL. MyCL

Come installare Directus 6.4 CMS su un VPS CentOS 7 LAMP

Come installare Directus 6.4 CMS su un VPS CentOS 7 LAMP

Usi un sistema diverso? Directus 6.4 CMS è un sistema di gestione dei contenuti senza testa (CMS) potente e flessibile, gratuito e open source che fornisce agli sviluppatori

Creare una rete di server Minecraft con BungeeCord su Debian 8, Debian 9 o CentOS 7

Creare una rete di server Minecraft con BungeeCord su Debian 8, Debian 9 o CentOS 7

Cosa ti serve Un VPS Vultr con almeno 1 GB di RAM. Accesso SSH (con privilegi di root / amministrativi). Passaggio 1: installare prima BungeeCord

Come installare MaraDNS su CentOS 6

Come installare MaraDNS su CentOS 6

MaraDNS è un programma server DNS open source leggero ma robusto. Rispetto ad altre applicazioni dello stesso tipo, come ISC BIND, PowerDNS e djbdns

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane

ReactOS: è questo il futuro di Windows?

ReactOS: è questo il futuro di Windows?

ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.

Rimani connesso tramite lapp desktop WhatsApp 24*7

Rimani connesso tramite lapp desktop WhatsApp 24*7

Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per l'estrazione dei dati dai Big Data

Che cosè un file system di journaling e come funziona?

Che cosè un file system di journaling e come funziona?

Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true

Singolarità tecnologica: un lontano futuro della civiltà umana?

Singolarità tecnologica: un lontano futuro della civiltà umana?

Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Limpatto dellintelligenza artificiale nella sanità 2021

Limpatto dellintelligenza artificiale nella sanità 2021

L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.