LibreNMS - potpuno opremljen alat za nadzor mreže za Linux


LibreNMS je moćan i značajkama bogat sustav za praćenje mreže temeljen na PHP-u koji automatski otkriva i koristi SNMP protokol. Podržava širok raspon operativnih sustava uključujući Linux, FreeBSD, kao i mrežne uređaje uključujući Cisco, Juniper, Brocade, Foundry, HP i mnoge druge.

Značajke LibreNMS-a:

  1. Automatski otkriva cijelu mrežu pomoću ovih protokola: CDP, FDP, LLDP, OSPF, BGP, SNMP i ARP.
  2. Ima web sučelje prilagođeno mobilnim uređajima, s prilagodljivim nadzornim pločama.
  3. Podržava Unix agenta.
  4. Podržava horizontalno skaliranje za proširenje s vašom mrežom.
  5. Podržava vrlo fleksibilan i prilagodljiv sustav upozorenja; šalje obavijesti putem e-pošte, irc-a, slacka i više.
  6. Podržava API za upravljanje, grafički prikaz i dohvaćanje podataka iz vašeg sustava.
  7. Nudi sustav naplate prometa.
  8. Također podržava Android i iOS aplikacije koje nude osnovne funkcije.
  9. Podržava integraciju s NfSen, collectd, SmokePing, RANCID i Oxidized.
  10. Podržava višestruke metode provjere autentičnosti kao što su MySQL, HTTP, LDAP, Radius i Active Directory.
  11. Omogućuje automatsko ažuriranje i mnoge druge značajke.

Dostupan je demo na mreži koji možete isprobati prije instaliranja LibreNMS na Linux sustave.

Demo URL: https://demo.librenms.org/
Username: demo
Password: demo

Testno okruženje:

  1. Ubuntu 16.04 s LEMP Stackom
  2. CentOS 7 s LEMP Stackom

U ovom vodiču naučit ćemo kako instalirati LibreNMS alat za nadzor mreže na svježe instaliran Ubuntu ili CentOS Linux (iste upute vrijede i na Debian i RHEL distribucije).

NAPOMENA: Sve ove upute u ovom članku trebate pokrenuti kao root korisnik, ako niste, upotrijebite naredbu sudo da dobijete root korisničke privilegije.

Korak 1: Instalirajte potrebne pakete

1. Najprije započnite instaliranjem svih potrebnih paketa pomoću zadanog upravitelja paketima kao što je prikazano.

Na Ubuntu/Debianu

sudo apt install composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.0-cli php7.0-curl php7.0-fpm php7.0-gd php7.0-mcrypt php7.0-mysql php7.0-snmp php7.0-xml php7.0-zip python-memcache python-mysqldb rrdtool snmp snmpd whois

Na CentOS/RHEL

yum install epel-release
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install composer cronie fping git ImageMagick jwhois mariadb mariadb-server mtr MySQL-python net-snmp net-snmp-utils nginx nmap php72w php72w-cli php72w-common php72w-curl php72w-fpm php72w-gd php72w-mysql php72w-process php72w-snmp php72w-xml php72w-zip python-memcached rrdtool

2. Nakon što su svi paketi instalirani, nginx, php-fpm, mariadb i snmp< usluge će se pokrenuti i omogućiti automatsko pokretanje prilikom podizanja sustava (to je obično slučaj s Ubuntu), u suprotnom, možete pokrenuti naredbe ispod da ih pokrenete i omogućite.

------------ On Debian/Ubuntu ------------ 
sudo systemctl nginx start php7.0-fpm mysql snmp 
sudo systemctl enable nginx php7.0-fpm mysql snmp

------------ On CentOS/RHEL ------------ 
systemctl nginx start php-fpm mariadb snmpd 
systemctl enable nginx php-fpm mariadb snmpd

Korak 2: Instalirajte LibreNMS alat za praćenje

3. Zatim kreirajte korisnika sustava pod nazivom librenms, pomoću naredbe useradd; pri čemu zastavica -M onemogućuje stvaranje korisničkog matičnog direktorija, a -r omogućuje stvaranje računa sustava. Zatim dodajte korisnika librenms u grupu www-data (na Ubuntu) ili nginx (na CentOS) kako slijedi.

------------ On Debian/Ubuntu ------------ 
sudo useradd librenms -d /opt/librenms -M -r
sudo usermod -a -G librenms www-data   

------------ On CentOS/RHEL ------------ 
useradd librenms -d /opt/librenms -M -r
usermod -a -G librenms nginx           

4. Zatim instalirajte LibreNMS putem naredbe composer kao što je prikazano.

------------ On Debian/Ubuntu ------------ 
cd /opt
sudo composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master

------------ On CentOS/RHEL ------------ 
cd /opt
composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master

Korak 3: Stvorite LibreNMS bazu podataka

5. Prije nego počnete koristiti MariaDB poslužitelj, morate osigurati svoju instalaciju, pokrenuti sigurnosnu skriptu koja se nalazi u binarnom paketu. Tražit će od vas da postavite root lozinku, uklonite anonimne korisnike, onemogućite root prijavu na daljinu i uklonite testnu bazu podataka.

Možete pokrenuti skriptu izdavanjem donje naredbe i na sva pitanja odgovoriti s yes/y.

sudo mysql_secure_installation   [On Debian/Ubuntu]
mysql_secure_installation        [On CentOS/RHEL]

6. Zatim se prijavite u bazu podataka MariaDB kako biste stvorili bazu podataka za LibreNMS (ne zaboravite koristiti jaku/sigurnu lozinku u proizvodnom okruženju).

sudo mysql -u root -p
MariaDB [(none)]> CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci;
MariaDB [(none)]> CREATE USER 'librenms'@'localhost' IDENTIFIED BY '=@!#@%$libre';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

7. Nakon toga za sada onemogućite strogi način rada MySQL (kompatibilnost sa strogim načinom rada MySQL tek treba biti dodana).

sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf    [On Debian/Ubuntu]
vi /etc/my.cnf        [On CentOS/RHEL]

Unutar odjeljka [mysqld] dodajte.

innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0

Zatim ponovno pokrenite poslužitelj baze podataka da izvršite promjene.

sudo systemctl restart mysql     [On Debian/Ubuntu]
systemctl restart mariadb        [On CentOS/RHEL]

Korak 4: Konfigurirajte i pokrenite PHP-FPM

8. Zatim postavite date.timezone u php.ini na svoju trenutnu vremensku zonu, na primjer “Africa/Kampala ”, kao što je prikazano na sljedećoj snimci zaslona.

------------ On Debian/Ubuntu ------------ 
sudo vim /etc/php/7.0/fpm/php.ini
sudo vim /etc/php/7.0/cli/php.ini

------------ On CentOS/RHEL ------------ 
vi /etc/php.ini

9. Zatim omogućite PHP modul mcrypt u Ubuntu i ponovno pokrenite php-fpm kao što je prikazano.

------------ On Debian/Ubuntu ------------ 
sudo phpenmod mcrypt
sudo systemctl restart php7.0-fpm

10. Na CentOS/RHEL trebate napraviti sljedeće promjene u php-fpm konfiguracijskoj datoteci.

vi /etc/php-fpm.d/www.conf

Napravite sljedeće promjene.

;user = apache
user = nginx

group = apache   ; keep group as apache

;listen = 127.0.0.1:9000
listen = /var/run/php-fpm/php7.2-fpm.sock

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

11. Ponovno pokrenite uslugu php-fpm kao što je prikazano.

systemctl restart php-fpm

Korak 5: Konfigurirajte Nginx za LibreNMS

12. U ovom koraku trebate konfigurirati blok poslužitelja Nginx za librenms kako biste pristupili web sučelju. Stvorite .conf datoteku za njega kao što je prikazano.

sudo vim /etc/nginx/conf.d/librenms.conf     [On Debian/Ubuntu]
vi /etc/nginx/conf.d/librenms.conf           [On CentOS/RHEL]         

Dodajte sljedeću konfiguraciju, uredite server_name prema potrebi.

server {
 listen      80;
 server_name librenms.example.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 /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/php7.0-fpm.sock;
 }
 location ~ /\.ht {
  deny all;
 }
}

13. Zatim spremite i izađite iz datoteke. Također uklonite zadanu konfiguraciju bloka poslužitelja i ponovno pokrenite Nginx poslužitelj.

------------ On Debian/Ubuntu ------------ 
sudo rm /etc/nginx/sites-enabled/default
sudo systemctl restart nginx

------------ On CentOS/RHEL ------------ 
systemctl restart nginx

NAPOMENA: Na CentOS/RHEL, morat ćete onemogućiti odjeljak zadana stranica, ako je ovo jedino mjesto koje hostirate. Izbrišite odjeljak poslužitelja iz datoteke /etc/nginx/nginx.conf.

14. Također na CentOS/RHEL morate instalirati alat za pravila za SELinux i konfigurirati konteksti potrebni LibreNMS-u pomoću sljedećih naredbi.

------------ On CentOS/RHEL ------------ 
yum install policycoreutils-python
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/logs(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/logs(/.*)?'
restorecon -RFvv /opt/librenms/logs/
semanage fcontext -a -t httpd_sys_content_t '/opt/librenms/rrd(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/opt/librenms/rrd(/.*)?'
restorecon -RFvv /opt/librenms/rrd/
setsebool -P httpd_can_sendmail=1
setsebool -P httpd_execmem 1

15. Omogućite fping stvaranjem datoteke http_fping.tt sa sljedećim sadržajem.

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

16. Zatim pokrenite ove naredbe.

------------ On CentOS/RHEL ------------ 
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

17. Ako koristite vatrozid na CentOS/RHEL, omogućite HTTP/HTTPS pristup kroz vatrozid.

------------ On CentOS/RHEL ------------ 
firewall-cmd --zone public --add-service http
firewall-cmd --permanent --zone public --add-service http
firewall-cmd --zone public --add-service https
firewall-cmd --permanent --zone public --add-service https

Korak 6: Konfigurirajte SNMPD za LibreNMS

18. Sada upotrijebite oglednu snmp konfiguraciju za stvaranje vaše konfiguracijske datoteke i otvorite je za uređivanje, kako slijedi.

------------ On Debian/Ubuntu ------------ 
sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
sudo vim /etc/snmp/snmpd.conf

------------ On CentOS/RHEL ------------ 
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
vi /etc/snmp/snmpd.conf

Pronađite niz RANDOMSTRINGGOESHERE i promijenite ga u vlastiti niz zajednice kao što je prikazano na snimci zaslona.

19. Zatim preuzmite shell skriptu na svoj sustav, koja pomaže u otkrivanju OS-a i ako se radi o Linuxu, otkrit će koju distribuciju Linuxa koristite:

------------ On Debian/Ubuntu ------------ 
sudo curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
sudo chmod +x /usr/bin/distro
sudo systemctl restart snmpd

------------ On CentOS/RHEL ------------ 
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x /usr/bin/distro
systemctl restart snmpd

Korak 7: Stvorite Cron i konfigurirajte Logrotate

20. Sada pokrenite naredbu u nastavku da postavite cron posao za LibreNMS.

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

21. Dalje, svi LibreNMS zapisnici se bilježe u /opt/librenms/logs, možete konfigurirati ove zapisnike da se automatski rotiraju , koristeći isporučenu konfiguracijsku datoteku logrotate, ovako.

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

Zatim postavite odgovarajuće dozvole za korijenski direktorij instalacije LibreNMS-a i datoteke dnevnika.

------------ On Debian/Ubuntu ------------
sudo chown -R librenms:librenms  /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

------------ On CentOS/RHEL ------------ 
chown -R librenms:librenms /opt/librenms
setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs
setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs

Korak 8: Pristupite LibreNMS web instalacijskom programu

22. Zatim upotrijebite sljedeći URL za pristup web-instalacijskom programu i slijedite upute na zaslonu.

http://librenms.tecmint.lan/install.php

Da bi ova adresa radila na lokalnom računalu, morate postaviti lokalni DNS koristeći hosts datoteku (/etc/hosts), za razrješenje lokalne domene ili u svrhu testiranja prije pokretanja uživo.

192.168.43.31 tecmint.lan
192.168.43.31 librenms.tecmint.lan

23. Vidjet ćete stranicu dobrodošlice instalacije kao što je prikazano na sljedećoj snimci zaslona, kliknite Sljedeća faza za nastavak.

24. Zatim unesite postavke (domaćin baze podataka, port, korisničko ime i korisnička lozinka) za LibreNMS bazu podataka i kliknite Sljedeća faza za nastavak.

25. Web instalacijski program će sada početi uvoziti MySQL bazu podataka, to će potrajati neko vrijeme. Imajte na umu da će se proces pokušati pauzirati u određenim točkama, jednostavno kliknite na Pokušaj ponovo da biste nastavili s postupkom uvoza.

26. Nakon završetka uvoza baze podataka, trebali biste vidjeti poruku "Baza podataka je ažurirana! ", kao što je prikazano na slici ispod. Zatim kliknite Idi na dodavanje korisnika za nastavak.

27. Zatim dodajte korisnika LibreNMS, navedite korisničko ime, zaporku i e-poštu, a zatim kliknite na Dodaj korisnika da izvršite promjene.

28. Sada kliknite na kreiranje konfiguracije LibreNMS za vaš sustav klikom na Generiraj konfiguraciju.

29. Nakon što je konfiguracija generirana, kao što je prikazano na prethodnoj snimci zaslona, kopirajte je i spremite u korijenski direktorij svoje instalacije, u datoteku pod nazivom /opt/librenms/config.php .

vi /opt/librenms/config.php
<?php
## Have a look in defaults.inc.php for examples of settings you can set here. DO NOT EDIT defaults.inc.php!

### Database config
$config['db_host'] = 'localhost';
$config['db_port'] = '3306';
$config['db_user'] = 'librenms';
$config['db_pass'] = '=@!#@%$libre';
$config['db_name'] = 'librenms';
$config['db_socket'] = '';

// This is the user LibreNMS will run as
//Please ensure this user is created and has the correct permissions to your install
$config['user'] = 'librenms';

### Locations - it is recommended to keep the default
#$config['install_dir']  = "/opt/librenms";

### This should *only* be set if you want to *force* a particular hostname/port
### It will prevent the web interface being usable form any other hostname
#$config['base_url']        = "http://librenms.company.com";

### Enable this to use rrdcached. Be sure rrd_dir is within the rrdcached dir
### and that your web server has permission to talk to rrdcached.
#$config['rrdcached']    = "unix:/var/run/rrdcached.sock";

### Default community
$config['snmp']['community'] = array("public");

### Authentication Model
$config['auth_mechanism'] = "mysql"; # default, other options: ldap, http-auth
#$config['http_auth_guest'] = "guest"; # remember to configure this user if you use http-auth

### List of RFC1918 networks to allow scanning-based discovery
#$config['nets'][] = "10.0.0.0/8";
#$config['nets'][] = "172.16.0.0/12";
#$config['nets'][] = "192.168.0.0/16";

Update configuration
#$config['update_channel'] = 'release';  # uncomment to follow the monthly release channel
#$config['update'] = 0;  # uncomment to completely disable updates

30. Spremite i zatvorite datoteku. Zatim se vratite na web instalacijski program kako biste nastavili s postupkom instalacije klikom na Završi instalaciju.

31. Sada je vaša LibreNMS instalacija dovršena, možete kliknuti na “potvrdite svoju instalaciju i popravite sve probleme”, trebala bi se pojaviti stranica za prijavu.

32. Zatim unesite svoje korisničke vjerodajnice za pristup stranici za provjeru valjanosti.

33. U procesu provjere valjanosti instalacije, LibreNMS je otkrio dva problema, jedan je da uređaji nisu dodani (ovo je za sada upozorenje), a drugi, imamo nije postavio odgovarajuću dozvolu za konfiguracijsku datoteku (/opt/librenms/config.php) koja je ručno dodana, kao što je prikazano na snimci zaslona u nastavku.

Sada pokrenite sljedeću naredbu da postavite ispravnu dozvolu za konfiguracijsku datoteku.

sudo chown -R librenms:librenms /opt/librenms/config.php 

34. Za dodavanje uređaja idite na: http://librenms.tecmint.lan/addhost. Nakon dodavanja uređaja, možete otići na početnu stranicu i dodati razne nadzorne ploče.

To je to! Više informacija, uključujući instalaciju i postavljanje, možete pronaći u LibreNMS dokumentaciji na https://docs.librenms.org/.

LibreNMS je potpuno opremljen sustav za nadzor mreže koji podržava različite mrežne hardvere. Nadamo se da je ovo bio jasan vodič za instalaciju, ako imate bilo kakvih pitanja, obratite nam se putem obrasca za povratne informacije u nastavku.