LibreNMS - Potpuno opremljen alat za praćenje mreže za Linux


LibreNMS je open source, moćan i bogat funkcijama koji automatski otkriva PHP baziran sistem za praćenje mreže koji koristi SNMP protokol. Podržava širok spektar operativnih sistema uključujući Linux, FreeBSD, kao i mrežne uređaje uključujući Cisco, Juniper, Brocade, Foundry, HP i mnoge druge.

LibreNMS karakteristike:

  1. Automatski otkriva cijelu mrežu koristeći ove protokole: CDP, FDP, LLDP, OSPF, BGP, SNMP i ARP.
  2. Ima web korisničko 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 veoma fleksibilan i prilagodljiv sistem upozorenja; šalje obavještenja putem e-pošte, irc-a, slack-a i još mnogo toga.
  6. Podržava API za upravljanje, crtanje i preuzimanje podataka iz vašeg sistema.
  7. Nudi sistem naplate saobraćaja.
  8. Također podržava Android i iOS aplikacije koje nude osnovne funkcije.
  9. Podržava integraciju sa 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ćava automatsko ažuriranje i mnoge druge funkcije.

Dostupan je online demo koji možete isprobati prije instaliranja LibreNMS-a na Linux sistemima.

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

Testno okruženje:

  1. Ubuntu 16.04 sa LEMP stackom
  2. CentOS 7 sa LEMP stekom

U ovom vodiču ćemo naučiti kako instalirati LibreNMS Network Monitoring Tool na svježe instalirani Ubuntu ili CentOS Linux (iste upute također rade na >Debian i RHEL distribucije).

NAPOMENA: Sva ova uputstva u ovom članku bi trebala biti pokrenuta kao root korisnik, ako niste, koristite naredbu sudo da dobijete root privilegije korisnika.

Korak 1: Instalirajte potrebne pakete

1. Prvo počnite instaliranjem svih potrebnih paketa koristeći zadani upravitelj paketa 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 biti pokrenute i omogućene za automatsko pokretanje prilikom pokretanja (ovo je uobičajen slučaj sa Ubuntu), u suprotnom, možete pokrenuti donje naredbe 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 sistemskog korisnika pod nazivom librenms, sa naredbom useradd; gdje oznaka -M onemogućava kreiranje korisničkog kućnog direktorija, a -r omogućava kreiranje sistemskog računa. 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: Kreirajte LibreNMS bazu podataka

5. Prije nego počnete koristiti MariaDB server, morate osigurati svoju instalaciju, pokrenuti sigurnosnu skriptu koja se nalazi u binarnom paketu. Od vas će se tražiti 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 odgovoriti na sva pitanja sa yes/y.

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

6. Zatim se prijavite na MariaDB bazu podataka da kreirate bazu podataka za LibreNMS (ne zaboravite da koristite 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 dodati).

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 ponovo pokrenite server baze podataka da izvršite promjene.

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

Korak 4: Konfigurišite i pokrenite PHP-FPM

8. Zatim postavite date.timezone u php.ini na vašu trenutnu vremensku zonu, na primjer “Afrika/Kampala ”, kao što je prikazano na sljedećem snimku ekrana.

------------ 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 mcrypt PHP modul u Ubuntuu i ponovo pokrenite php-fpm kao što je prikazano.

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

10. Na CentOS/RHEL morate napraviti sljedeće promjene u php-fpm konfiguracijskom fajlu.

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. Ponovo pokrenite uslugu php-fpm kao što je prikazano.

systemctl restart php-fpm

Korak 5: Konfigurirajte Nginx za LibreNMS

12. U ovom koraku trebate konfigurirati Nginx blok servera za librenms da biste pristupili web korisničkom sučelju. Kreirajte datoteku .conf za to 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 sačuvajte i izađite iz datoteke. Također uklonite zadanu konfiguraciju bloka servera i ponovo pokrenite Nginx server.

------------ 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 podrazumevana stranica, ako je ovo jedina stranica koju hostujete. Izbrišite odjeljak servera 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 koristeći sljedeće komande.

------------ 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. Dozvolite fping kreiranjem 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 komande.

------------ 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 zaštitni zid na CentOS/RHEL, omogućite HTTP/HTTPS pristup preko zaštitnog zida.

------------ 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 koristite uzorak snmp konfiguracije da kreirate svoju konfiguracijsku datoteku 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 string RANDOMSTRINGGOESHERE i promijenite ga u svoj vlastiti niz zajednice kao što je prikazano na snimku ekrana.

19. Zatim preuzmite shell skriptu na svoj sistem, koja pomaže da se otkrije koji OS i ako je Linux onda će otkriti 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: Kreirajte Cron i konfigurišite Logrotate

20. Sada pokrenite naredbu ispod da postavite cron posao za LibreNMS.

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

21. Zatim, svi LibreNMS dnevnici se snimaju u /opt/librenms/logs, možete konfigurirati ove dnevnike da se automatski rotiraju , koristeći priloženu konfiguracijsku datoteku logrotate, ovako.

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

Zatim postavite odgovarajuće dozvole na 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 Installeru

22. Zatim koristite sljedeći URL da pristupite web instalateru i slijedite upute na ekranu.

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

Da bi ova adresa radila na lokalnoj mašini, potrebno je da podesite lokalni DNS koristeći hosts fajl (/etc/hosts), za rezoluciju lokalne domene ili svrhe testiranja pre nego što se pokrene.

192.168.43.31 tecmint.lan
192.168.43.31 librenms.tecmint.lan

23. Vidjet ćete stranicu dobrodošlice za instalaciju kao što je prikazano na sljedećem snimku ekrana, kliknite na Sljedeća faza da nastavite.

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

25. Web instalater će sada početi uvoziti MySQL bazu podataka, što će potrajati. Imajte na umu da će proces pokušati pauzirati u određenim trenucima, jednostavnim klikom na Pokušaj ponovo da nastavite s procesom uvoza.

26. Kada se uvoz baze podataka završi, trebali biste vidjeti poruku “Baza podataka je ažurirana!”, kao što je prikazano na slici ispod. Zatim kliknite na Goto Add User da nastavite.

27. Zatim dodajte LibreNMS korisnika, navedite korisničko ime, lozinku i email, a zatim kliknite na Dodaj korisnika da izvršite promjene.

28. Sada kliknite na kreiranje LibreNMS konfiguracije za vaš sistem, tako što ćete kliknuti na Generiraj konfiguraciju.

29. Nakon što je konfiguracija generirana, kao što je prikazano na prethodnom snimku ekrana, kopirajte je i sačuvajte u korijenskom direktoriju vaše 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. Sačuvajte i zatvorite fajl. Zatim se vratite na web instalater da nastavite s procesom instalacije klikom na Završi instalaciju.

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

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

33. Iz procesa validacije instalacije, LibreNMS je otkrio dva problema, jedan je da uređaji nisu dodani (ovo je za sada upozorenje), a drugo, imamo nije postavila odgovarajuću dozvolu za konfiguracioni fajl (/opt/librenms/config.php) koji je ručno dodat, kao što je prikazano na snimku ekrana ispod.

Sada pokrenite sljedeću naredbu da postavite ispravnu dozvolu za konfiguracijski fajl.

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 podešavanje, možete pronaći u LibreNMS dokumentaciji na https://docs.librenms.org/.

LibreNMS je potpuno opremljen sistem za nadgledanje mreže koji podržava razni mrežni hardver. Nadamo se da je ovo bio lucidan vodič za instalaciju, ako imate bilo kakvih pitanja, obratite nam se putem obrasca za povratne informacije u nastavku.