LibreNMS - Popolnoma opremljeno orodje za nadzor omrežja za Linux


LibreNMS je odprtokodni, zmogljiv in s funkcijami bogat sistem za samodejno odkrivanje omrežja za spremljanje omrežja PHP, ki uporablja protokol SNMP. Podpira široko paleto operacijskih sistemov, vključno z Linuxom, FreeBSD -om, pa tudi omrežne naprave, vključno s Cisco, Juniper, Brocade, Foundry, HP in mnogimi drugimi.

  1. Samodejno odkrije celotno omrežje s temi protokoli: CDP, FDP, LLDP, OSPF, BGP, SNMP in ARP.
  2. Ima mobilni uporabniku prijazen spletni uporabniški vmesnik s prilagodljivimi nadzornimi ploščami.
  3. Podpira agenta Unix.
  4. Podpira vodoravno povečanje za razširitev v omrežju.
  5. podpira zelo prilagodljiv in prilagodljiv sistem opozarjanja; pošilja obvestila po e -pošti, irc, slack in še več.
  6. Podpira API za upravljanje, grafikoniranje in pridobivanje podatkov iz vašega sistema.
  7. Ponuja sistem obračunavanja prometa.
  8. Prav tako podpira aplikacije za Android in iOS, ki ponujajo osnovne funkcije.
  9. Podpira integracijo z NfSen, collectd, SmokePing, RANCID in Oxidized.
  10. Podpira več načinov preverjanja pristnosti, kot so MySQL, HTTP, LDAP, Radius in Active Directory.
  11. Omogoča samodejno posodabljanje in številne druge funkcije.

Pred namestitvijo LibreNMS v sisteme Linux je na voljo spletni demo.

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

  1. Ubuntu 16.04 z nizom LEMP
  2. CentOS 7 z nizom LEMP

V tej vadnici se bomo naučili, kako namestiti LibreNMS Network Monitoring Tool na sveže nameščen Ubuntu ali CentOS Linux (ista navodila delujejo tudi na distribucijah, ki temeljijo na Debianu in RHEL -u).

OPOMBA: Vsa ta navodila v tem članku je treba izvajati kot korenski uporabnik. Če niste, uporabite ukaz sudo, da pridobite korenske uporabniške pravice.

1. korak: Namestite potrebne pakete

1. Najprej začnite z namestitvijo vseh zahtevanih paketov z uporabo privzetega upravitelja paketov, kot je prikazano.

$ 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
# 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. Ko so vsi paketi nameščeni, se bodo zagnale storitve nginx, php-fpm, mariadb in snmp in omogočile samodejni zagon ob zagonu (to običajno velja za Ubuntu), sicer lahko zaženete spodnje ukaze, da zaženite in omogoč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

2. korak: Namestite orodje za spremljanje LibreNMS

3. Nato ustvarite sistemskega uporabnika z imenom librenms z ukazom useradd; kjer zastavica -M onemogoča ustvarjanje domačega imenika uporabnika, -r pa omogoča ustvarjanje sistemskega računa. Nato uporabnika librenms dodajte v skupino www-data (v Ubuntu) ali nginx (v CentOS), kot sledi.

------------ 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. Nato namestite LibreNMS prek ukaza composer, kot 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

3. korak: Ustvarite zbirko podatkov LibreNMS

5. Preden lahko začnete uporabljati strežnik MariaDB, morate zavarovati namestitev, zagnati varnostni skript, ki je na voljo v binarnem paketu. Od vas bo zahteval, da nastavite korensko geslo, odstranite anonimne uporabnike, oddaljeno onemogočite prijavo v root in odstranite testno bazo podatkov.

Skript lahko zaženete tako, da izdate spodnji ukaz in na vsa vprašanja odgovorite z yes/y .

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

6. Nato se prijavite v zbirko MariaDB, da ustvarite bazo podatkov za LibreNMS (ne pozabite uporabiti močnega/varnega gesla v proizvodnem okolju).

$ 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 '[email !#@%$libre';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

7. Nato za zdaj onemogočite strog način MySQL (združljivost s strogim načinom MySQL še ni dodana).

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

Prosimo, dodajte v razdelek [mysqld] .

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

Nato znova zaženite strežnik zbirke podatkov, da spremembe učinkujete.

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

4. korak: Konfigurirajte in zaženite PHP-FPM

8. Nato nastavite svoj date.timezone v php.ini na svoj trenutni časovni pas, na primer\"Africa/Kampala", kot je prikazano na naslednjem posnetku 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. Nato omogočite modul mcrypt PHP v Ubuntu in znova zaženite php-fpm, kot je prikazano.

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

10. V CentOS/RHEL morate narediti naslednje spremembe v konfiguracijski datoteki php-fpm.

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

Naredite naslednje spremembe.

;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. Znova zaženite storitev php-fpm, kot je prikazano.

# systemctl restart php-fpm

5. korak: Konfigurirajte Nginx za LibreNMS

12. V tem koraku morate za dostop do spletnega vmesnika za splet konfigurirati strežniški blok Nginx. Ustvarite datoteko .conf zanjo, kot je prikazano.

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

Dodajte naslednjo konfiguracijo in po potrebi uredite ime_strežnika .

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. Nato shranite datoteko in jo zaprite. Odstranite tudi privzeto konfiguracijo strežniškega bloka in znova zaženite strežnik Nginx.

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

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

OPOMBA: V sistemu CentOS/RHEL boste morali onemogočiti privzeti razdelek o spletnih mestih, če je to edino spletno mesto, ki ga gostite. Izbrišite razdelek strežnika iz datoteke /etc/nginx/nginx.conf.

14. Tudi na CentOS/RHEL morate namestiti orodje pravilnika za SELinux in z naslednjimi ukazi konfigurirati kontekste, ki jih potrebuje LibreNMS.

------------ 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. Dovolite fping tako, da ustvarite datoteko http_fping.tt z naslednjo vsebino.

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. Nato zaženite te ukaze.

------------ 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. Če uporabljate požarni zid na CentOS/RHEL, omogočite dostop HTTP/HTTPS prek požarnega zidu.

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

6. korak: Konfigurirajte SNMPD za LibreNMS

18. Zdaj z vzorčno konfiguracijo snmp ustvarite konfiguracijsko datoteko in jo odprite za urejanje, kot sledi.

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

Poiščite niz RANDOMSTRINGGOESHERE in ga spremenite v svoj niz skupnosti, kot je prikazano na posnetku zaslona.

19. Nato v svoj sistem naložite lupinski skript, ki pomaga odkriti kateri OS in če je Linux, potem bo zaznal, katero distribucijo Linuxa uporabljate:

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

7. korak: Ustvarite Cron in konfigurirajte Logrotate

20. Zdaj zaženite spodnji ukaz, da nastavite opravilo cron za LibreNMS.

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

21. Nato se vsi dnevniki LibreNMS zabeležijo v/opt/librenms/logs, te dnevnike lahko konfigurirate tako, da se samodejno vrtijo, s pomočjo priložene konfiguracijske datoteke logrotate, kot je ta.

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

Nato nastavite ustrezna dovoljenja za korenski imenik namestitvenega programa LibreNMS in 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

8. korak: dostopajte do spletnega namestitvenega programa LibreNMS

22. Nato za dostop do spletnega namestitvenega programa uporabite naslednji URL in sledite navodilom na zaslonu.

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

Če želite, da ta naslov deluje na lokalnem računalniku, morate pred začetkom objave nastaviti lokalno DNS z datoteko hosts (/etc/hosts ) za ločitev lokalne domene ali namene testiranja.

192.168.43.31 tecmint.lan
192.168.43.31 librenms.tecmint.lan

23. Videli boste pozdravno stran za namestitev, kot je prikazano na naslednjem posnetku zaslona, za nadaljevanje kliknite Naprej.

24. Nato vnesite nastavitve (gostitelj baze podatkov, vrata, uporabniško ime in geslo uporabnika) za bazo podatkov LibreNMS in za nadaljevanje kliknite Naprej.

25. Spletni namestitveni program bo zdaj začel uvoziti bazo podatkov MySQL, kar bo trajalo nekaj časa. Upoštevajte, da se bo postopek poskušal ustaviti na določenih točkah. Če želite nadaljevati s postopkom uvoza, preprosto kliknite Ponovni poskus.

26. Ko je uvoz baze podatkov končan, se prikaže sporočilo\"Baza podatkov je posodobljena!", Kot je prikazano na spodnjem posnetku zaslona. Nato kliknite Pojdi na dodajanje uporabnika za nadaljevanje.

27. Nato dodajte uporabnika LibreNMS, podajte uporabniško ime, geslo in e -poštni naslov, nato kliknite Dodaj uporabnika, da izvedete spremembe.

28. Zdaj kliknite na ustvarjanje konfiguracije LibreNMS za vaš sistem, tako da kliknete Ustvari konfiguracijo.

29. Ko je konfiguracija ustvarjena, kot je prikazano na prejšnjem posnetku zaslona, jo kopirajte in shranite v korenski imenik namestitve v datoteko z imenom /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'] = '[email !#@%$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. Shranite in zaprite datoteko. Nato se vrnite v spletni namestitveni program, da nadaljujete s postopkom namestitve, tako da kliknete Dokončaj namestitev.

31. Zdaj je namestitev LibreNMS končana, lahko kliknete\"potrdi namestitev in odpravi morebitne težave", prikazala bi se stran za prijavo.

32. Nato vnesite svoje uporabniške poverilnice za dostop do strani za preverjanje.

33. V postopku preverjanja namestitve je LibreNMS odkril dve težavi, eno je, da naprave niso bile dodane (to je zaenkrat opozorilo), in drugič, v konfiguracijski datoteki nismo nastavili ustreznega dovoljenja (/opt/librenms /config.php), ki je bil ročno dodan, kot je prikazano na spodnjem posnetku zaslona.

Zdaj zaženite naslednji ukaz, da nastavite pravilno dovoljenje za konfiguracijsko datoteko.

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

34. Če želite dodati naprave, pojdite na: http://librenms.tecmint.lan/addhost. Po dodajanju naprav lahko odprete domačo stran in dodate različne nadzorne plošče.

To je To! Več informacij, vključno z namestitvijo in nastavitvijo, najdete v dokumentaciji LibreNMS na naslovu https://docs.librenms.org/.

LibreNMS je popoln sistem za spremljanje omrežja, ki podpira različno omrežno strojno opremo. Upamo, da je bil to luciden vodnik za namestitev. Če imate kakršna koli vprašanja, nam pišite preko spodnjega obrazca za povratne informacije.