
Cum să instalezi și să configurezi LibreNMS pe Serverul tău Virtual
Monitorizarea rețelei este un aspect crucial în gestionarea oricărei infrastructuri IT. La ENGINYRING, înțelegem importanța utilizării unor instrumente de monitorizare fiabile pentru a ține sub observație performanța și starea rețelei tale. LibreNMS este o soluție puternică de monitorizare a rețelei, open-source, care oferă informații comprehensive despre infrastructura ta. În acest tutorial pas cu pas, te vom ghida prin procesul de instalare și configurare a LibreNMS pe Serverul tău Virtual.
Ce este LibreNMS?
LibreNMS este un sistem complet de monitorizare a rețelei care oferă o gamă largă de funcționalități, inclusiv descoperirea automată a dispozitivelor din rețea, metrici detaliate de performanță, capabilități de alertare și o interfață web intuitivă. Acesta suportă o varietate mare de dispozitive și sisteme de operare, fiind o alegere excelentă pentru monitorizarea mediilor de rețea diverse.
Principalele avantaje ale LibreNMS includ:
- Descoperirea automată a dispozitivelor de rețea folosind CDP, LLDP, OSPF, BGP, SNMP și ARP
- Sistem de alertare personalizabil cu multiple metode de notificare
- Grafice și statistici detaliate de performanță
- Suport pentru o gamă largă de tipuri de dispozitive (routere, switch-uri, servere etc.)
- Comunitate activă și actualizări regulate
Cerințe preliminare
Înainte de a începe, asigură-te că Serverul tău Virtual îndeplinește următoarele cerințe:
- Un sistem de operare bazat pe Linux (recomandăm Ubuntu 22.04 LTS pentru acest tutorial)
- Minimum 2GB RAM (4GB recomandat pentru rețele mai mari)
- Cel puțin 20GB spațiu de stocare
- O adresă IP statică
- Acces root sau sudo la server
Dacă ai nevoie de asistență cu Gestionarea Serverului Proxmox sau configurarea mediului tău virtual, echipa noastră de la ENGINYRING te poate ajuta să configurezi infrastructura perfectă pentru nevoile tale de monitorizare.
Pasul 1: Actualizarea sistemului
Începe prin actualizarea pachetelor din sistem pentru a te asigura că ai cele mai recente versiuni. Acest lucru ajută la prevenirea problemelor de compatibilitate și a vulnerabilităților de securitate în timpul procesului de instalare.
sudo apt update
sudo apt upgrade -y
Explicație: Prima comandă reîmprospătează listele de pachete, în timp ce a doua actualizează toate pachetele instalate la cele mai recente versiuni. Flag-ul -y
răspunde automat "da" la orice solicitare din timpul procesului de actualizare.
Pasul 2: Instalarea dependențelor necesare
LibreNMS necesită mai multe dependențe pentru a funcționa corect. Instalează-le folosind următoarele comenzi:
sudo apt install -y software-properties-common
sudo add-apt-repository universe
sudo apt update
sudo apt install -y acl curl composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php-cli php-curl php-fpm php-gd php-json php-mbstring php-mysql php-snmp php-xml php-zip rrdtool snmp snmpd whois unzip python3-pymysql python3-dotenv python3-redis python3-setuptools
Explicație: Această instalare completă de pachete include:
- Componente pentru serverul web: Nginx și module PHP pentru servirea interfeței web LibreNMS
- Software pentru baza de date: MariaDB pentru stocarea datelor LibreNMS
- Instrumente SNMP: Pentru colectarea datelor de la dispozitivele din rețea
- Utilitare adiționale: Instrumente precum fping, nmap și mtr pentru operațiuni în rețea
- Dependențe Python: Necesare pentru funcționalități specifice LibreNMS
Pasul 3: Configurarea MariaDB
În continuare, trebuie să configurăm serverul MariaDB pentru LibreNMS. Aceasta include configurarea unei baze de date dedicate și a unui utilizator cu permisiunile corespunzătoare.
Mai întâi, securizează instalarea MariaDB (recomandat pentru instalări noi):
sudo mysql_secure_installation
Urmează instrucțiunile pentru a seta o parolă de root și răspunde 'Y' la toate întrebările de securitate.
Acum, să creăm baza de date și utilizatorul pentru LibreNMS:
sudo mysql -u root -p
Introdu parola de root MariaDB când ți se solicită. La promptul MariaDB, execută următoarele comenzi:
CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'parola_ta_securizată';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
exit;
Explicație detaliată:
- Prima linie creează o nouă bază de date numită "librenms" cu codificarea de caractere UTF8MB4, care suportă toate caracterele Unicode, inclusiv emoji
- A doua linie creează un utilizator dedicat pentru LibreNMS cu o parolă securizată (înlocuiește 'parola_ta_securizată' cu o parolă puternică)
- A treia linie acordă acestui utilizator acces complet la baza de date librenms
- A patra linie aplică modificările imediat
Notă de securitate: Folosește o parolă puternică și unică și nu folosi niciodată utilizatorul root al bazei de date pentru accesul aplicației. Păstrează parola într-un loc sigur deoarece vei avea nevoie de ea mai târziu.
Pasul 4: Instalarea LibreNMS
Acum vom instala LibreNMS prin clonarea repository-ului și setarea permisiunilor corespunzătoare:
sudo mkdir -p /opt/librenms
sudo chown www-data:www-data /opt/librenms
sudo git clone https://github.com/librenms/librenms.git /opt/librenms
Setează permisiunile corecte folosind Listele de Control al Accesului (ACL) pentru a te asigura că LibreNMS poate scrie în directoarele sale:
sudo chmod 770 /opt/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/
Explicație: Aceste comenzi setează ACL-uri implicite și recursive pentru directoarele critice în care LibreNMS trebuie să scrie. Flag-ul -d
setează ACL-uri implicite pentru fișiere/directoare noi, -R
se aplică recursiv conținutului existent, iar -m g::rwx
acordă permisiuni de citire, scriere și executare grupului.
Pasul 5: Configurarea PHP
Creează un pool PHP-FPM dedicat pentru LibreNMS pentru a izola procesele sale PHP:
sudo cp /etc/php/8.1/fpm/pool.d/www.conf /etc/php/8.1/fpm/pool.d/librenms.conf
Notă: Dacă folosești o versiune diferită de PHP, ajustează calea în mod corespunzător (de ex., înlocuiește "8.1" cu versiunea ta).
Editează fișierul de configurare:
sudo nano /etc/php/8.1/fpm/pool.d/librenms.conf
Schimbă următoarele setări (caută fiecare setare și modific-o):
[librenms]
user = www-data
group = www-data
listen = /run/php-fpm-librenms.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
Explicație detaliată:
- Schimbarea
[www]
în[librenms]
redenumește pool-ul - Directiva
listen
schimbă calea socket-ului pentru a evita conflictele - Setările de gestionare a proceselor (
pm
) controlează modul în care PHP-FPM generează și gestionează procesele de lucru:pm.max_children
: Numărul maxim de procese copilpm.start_servers
: Numărul de procese copil create la pornirepm.min_spare_servers
: Numărul minim de procese inactivepm.max_spare_servers
: Numărul maxim de procese inactive
Ajustează setările PHP pentru LibreNMS:
sudo nano /etc/php/8.1/fpm/php.ini
Găsește și modifică următoarele valori (folosește Ctrl+W pentru a căuta în nano):
date.timezone = UTC
memory_limit = 512M
upload_max_filesize = 16M
post_max_size = 16M
Sfat: Setează fusul orar pentru a se potrivi cu fusul tău orar local în loc de UTC, dacă preferi. De exemplu, folosește 'Europe/Bucharest' pentru ora României.
Repornește PHP-FPM pentru a aplica modificările:
sudo systemctl restart php8.1-fpm
Pasul 6: Configurarea Nginx
Creează un nou fișier de configurare pentru blocul de server Nginx pentru LibreNMS:
sudo nano /etc/nginx/sites-available/librenms
Adaugă următoarea configurare:
server {
listen 80;
server_name librenms.exemplu.ro;
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 {
include fastcgi.conf;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php-fpm-librenms.sock;
}
location ~ /\.ht {
deny all;
}
}
Important: Înlocuiește librenms.exemplu.ro
cu numele de domeniu sau adresa IP reală a serverului tău.
Detalii despre configurație:
- Directiva
listen
spune Nginx să asculte pe portul 80 server_name
specifică ce cereri gestionează această configurațieroot
indică spre directorul HTML al LibreNMS- Setările
gzip
activează compresia pentru încărcări mai rapide ale paginilor - Blocurile
location
definesc modul în care sunt gestionate diferitele tipuri de cereri - Blocul PHP transmite cererile PHP către socket-ul PHP-FPM dedicat LibreNMS pe care l-am configurat anterior
Activează site-ul și repornește Nginx:
sudo ln -s /etc/nginx/sites-available/librenms /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default
sudo systemctl restart nginx
Pasul 7: Configurarea SNMP
Protocolul Simplu de Management al Rețelei (SNMP) este crucial pentru ca LibreNMS să colecteze date de la dispozitivele din rețea. Să configurăm daemonul SNMP pe serverul nostru:
sudo nano /etc/snmp/snmpd.conf
Înlocuiește conținutul său cu:
com2sec readonly default șirul_tău_comunitar
group MyROGroup v2c readonly
view all included .1
access MyROGroup "" any noauth exact all none none
syslocation Camera Serverelor, Sediul Principal, Numele Orașului [44.4268, 26.1025]
syscontact Admin
sysname Server-LibreNMS
extend distro /usr/local/bin/distro
extend hardware '/usr/bin/env bash -c "cat /sys/devices/virtual/dmi/id/product_name 2>/dev/null || echo unknown"'
extend manufacturer '/usr/bin/env bash -c "cat /sys/devices/virtual/dmi/id/sys_vendor 2>/dev/null || echo unknown"'
extend serial '/usr/bin/env bash -c "cat /sys/devices/virtual/dmi/id/product_serial 2>/dev/null || echo unknown"'
Elemente critice de configurare:
- Șirul comunitar: Înlocuiește
șirul_tău_comunitar
cu un șir securizat la alegerea ta. Acesta acționează ca o parolă pentru accesul SNMP și ar trebui tratat ca fiind sensibil. - Locația sistemului: Actualizează
syslocation
cu detaliile reale ale locației serverului tău și coordonatele. - Contactul sistemului: Înlocuiește
admin@exemplu.ro
cu adresa ta reală de email de contact. - Directivele "extend": Acestea permit LibreNMS să colecteze informații suplimentare despre sistem.
Descarcă scriptul distro solicitat de configurație:
sudo curl -o /usr/local/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
sudo chmod +x /usr/local/bin/distro
Repornește serviciul SNMP pentru a aplica modificările:
sudo systemctl restart snmpd
Verifică dacă SNMP funcționează corect:
snmpwalk -v 2c -c șirul_tău_comunitar localhost system
Ar trebui să vezi informațiile despre sistem afișate. Dacă primești erori, verifică din nou fișierul snmpd.conf pentru probleme de sintaxă.
Pasul 8: Configurarea LibreNMS
Copiază fișierul de configurare exemplu:
cd /opt/librenms
sudo cp config.php.default config.php
sudo chown www-data:www-data config.php
Editează fișierul de configurare:
sudo nano config.php
Actualizează detaliile de conectare la baza de date:
$config['db_host'] = 'localhost';
$config['db_user'] = 'librenms';
$config['db_pass'] = 'parola_ta_securizată';
$config['db_name'] = 'librenms';
Important: Înlocuiește 'parola_ta_securizată' cu parola pe care ai setat-o pentru utilizatorul bazei de date LibreNMS.
Poți personaliza și setări suplimentare în acest fișier:
// Fusul orar al serverului
$config['site_style'] = 'light'; // Tema interfeței (light/dark)
$config['update'] = 0; // Dezactivează actualizările automate dacă este necesar
$config['auth_mechanism'] = 'mysql'; // Metoda de autentificare
Pasul 9: Instalarea dependențelor LibreNMS
Instalează dependențele Composer necesare pentru LibreNMS:
sudo su - www-data -c "cd /opt/librenms && ./scripts/composer_wrapper.php install --no-dev"
Explicație: Această comandă rulează ca utilizatorul www-data pentru a asigura permisiunile corecte ale fișierelor și instalează dependențele PHP definite în fișierul composer.json al LibreNMS, excluzând dependențele de dezvoltare.
Pasul 10: Configurarea sarcinii Cron pentru LibreNMS
Creează un fișier cron pentru LibreNMS pentru a activa sarcinile programate, cum ar fi colectarea datelor și alertele:
sudo cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
Verifică dacă sarcina cron este configurată corect:
sudo cat /etc/cron.d/librenms
Ar trebui să vezi diverse sarcini programate cu intervale diferite. Aceste sarcini gestionează interogarea dispozitivelor, procesarea alertelor și operațiunile de întreținere.
Pasul 11: Configurarea rotației jurnalelor
Configurează rotația jurnalelor pentru a preveni creșterea excesivă a jurnalelor LibreNMS:
sudo cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
Pasul 12: Rularea scriptului de instalare LibreNMS
Acum, rulează scriptul de validare pentru a te asigura că totul este configurat corect:
cd /opt/librenms
sudo su - www-data -c "php /opt/librenms/validate.php"
Acest script va verifica instalarea ta pentru probleme comune și va oferi indicații despre cum să le remediezi. Acordă o atenție deosebită oricărui mesaj de "Error" și remediază-le înainte de a continua.
După rezolvarea oricăror probleme identificate de scriptul de validare, inițializează baza de date:
sudo su - www-data -c "php /opt/librenms/build-base.php"
Pasul 13: Finalizarea instalării web
Deschide browserul web și navighează la adresa IP sau numele de domeniu al serverului tău. Ar trebui să vezi asistentul de instalare LibreNMS. Urmează acești pași:
- Creează un utilizator admin cu o parolă puternică (folosește o combinație de litere mari, litere mici, cifre și caractere speciale)
- Setează șirul tău comunitar (folosește același pe care l-ai configurat în configurația SNMP)
- Configurează locația ta și alte preferințe
- Finalizează procesul de instalare
Notă de securitate: După instalare, ia în considerare configurarea HTTPS cu un certificat SSL valid pentru a cripta traficul către instanța ta LibreNMS. Poți folosi Let's Encrypt pentru certificate gratuite.
Pasul 14: Adăugarea dispozitivelor pentru monitorizare
Odată ce instalarea este completă, poți începe să adaugi dispozitive pentru monitorizare:
- Conectează-te la interfața web LibreNMS
- Mergi la Dispozitive > Adaugă Dispozitiv
- Introdu numele de gazdă sau adresa IP a dispozitivului
- Selectează versiunea SNMP (de obicei v2c pentru majoritatea dispozitivelor, ia în considerare v3 pentru securitate mai mare)
- Introdu șirul comunitar
- Opțional, selectează un grup de dispozitive sau o locație
- Dă click pe "Adaugă Dispozitiv"
Sfat Pro: Pentru rețele mari, poți folosi funcția de descoperire automată pentru a scana intervale de IP-uri:
- Mergi la Descoperă > Rețele
- Adaugă intervale IP în notația CIDR (de ex., 192.168.1.0/24)
- Configurează setările de descoperire
- Dă click pe "Adaugă" pentru a începe descoperirea
Pasul 15: Configurarea alertelor și notificărilor
Pentru a configura alertele:
- Mergi la Alerte > Reguli de alertă
- Dă click pe "Creează Regulă" pentru a defini condiții care declanșează alerte
- Mergi la Alerte > Transport pentru a configura modul în care sunt trimise notificările (email, Slack, Discord etc.)
- Configurează programele de alertă dacă este necesar
Configurarea notificărilor prin email:
- Mergi la Setări Globale > Alertare
- Configurează setările tale de email (server SMTP, port, credențiale)
- Trimite un email de test pentru a verifica configurația
Sfaturi comune de depanare
Iată soluții pentru probleme comune pe care le-ai putea întâlni:
Probleme de conexiune la baza de date
Simptom: Eroarea "Nu se poate conecta la baza de date" în interfața web
Soluții:
- Verifică credențialele bazei de date în config.php
- Verifică dacă MariaDB rulează:
sudo systemctl status mariadb
- Asigură-te că utilizatorul librenms are permisiunile corespunzătoare:
sudo mysql -u root -p GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost'; FLUSH PRIVILEGES;
SNMP nu funcționează
Simptom: Dispozitivele sunt adăugate, dar nu sunt colectate date
Soluții:
- Verifică dacă SNMP rulează:
sudo systemctl status snmpd
- Testează SNMP local:
snmpwalk -v 2c -c șirul_tău_comunitar localhost system
- Verifică regulile firewall pentru a te asigura că porturile UDP 161/162 sunt deschise
- Verifică dacă șirul comunitar se potrivește între dispozitive și configurație
Probleme de permisiuni
Simptom: Erori "Permission denied" în jurnale
Soluții:
- Resetează permisiunile directorului:
sudo chown -R www-data:www-data /opt/librenms sudo chmod 770 /opt/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/
Interfața web nu se încarcă
Simptom: Pagină goală sau eroare 502 Bad Gateway
Soluții:
- Verifică starea Nginx:
sudo systemctl status nginx
- Verifică starea PHP-FPM:
sudo systemctl status php8.1-fpm
- Verifică configurația Nginx:
sudo nginx -t
- Verifică jurnalele de erori:
sudo tail -f /var/log/nginx/error.log
Utilizare ridicată a CPU sau a memoriei
Simptom: Serverul devine lent sau nu răspunde
Soluții:
- Ajustează frecvența de interogare în Setări Globale > Poller
- Mărește limita de memorie PHP în php.ini
- Optimizează MariaDB pentru resursele serverului tău
- Ia în considerare utilizarea interogării distribuite pentru implementări mai mari
Sfaturi de optimizare a performanței
Pentru o performanță mai bună cu LibreNMS, ia în considerare aceste optimizări:
- Optimizarea bazei de date: Adaugă aceste setări la /etc/mysql/mariadb.conf.d/50-server.cnf:
- Interogare mai rapidă: Activează RRDCached pentru o performanță îmbunătățită cu instalări mari
- Reducerea frecvenței de interogare: Pentru dispozitive mai puțin critice, ajustează interogarea la 5 sau 15 minute în loc de 1 minut implicit
[mysqld]
innodb_file_per_table=1
innodb_buffer_pool_size=256M
max_connections=200
tmp_table_size=64M
max_heap_table_size=64M
Actualizarea LibreNMS
Pentru a menține LibreNMS actualizat cu cele mai recente funcționalități și remedieri de securitate:
cd /opt/librenms
sudo ./daily.sh
Ia în considerare adăugarea acestuia la un job cron săptămânal pentru actualizări automate.
Concluzie
Felicitări! Ai instalat și configurat cu succes LibreNMS pe Serverul tău Virtual de la ENGINYRING. Acum ai o soluție puternică de monitorizare a rețelei care oferă vizibilitate cuprinzătoare asupra performanței și stării rețelei tale.
Pentru gestionarea optimă a serverului, ia în considerare serviciile noastre de Gestionare Servere Proxmox sau Gestionare Servere cPanel. De asemenea, oferim soluții fiabile de Găzduire Web dacă cauți opțiuni de găzduire gestionate.
Dacă întâmpini probleme sau ai nevoie de asistență cu configurarea LibreNMS, nu ezita să contactezi echipa noastră de suport. La ENGINYRING, suntem dedicați să te ajutăm să obții maximum de la infrastructura ta virtuală.